mattermost-mobile/test/service/selectors/preferences.test.js

140 lines
4.7 KiB
JavaScript

// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
import assert from 'assert';
import Config from 'assets/config.json';
import Themes from 'assets/themes.json';
import {Preferences} from 'service/constants';
import {getTheme} from 'service/selectors/entities/preferences';
describe('Selectors.Preferences', () => {
it('getTheme', () => {
it('should return default theme', () => {
assert.deepEqual(
getTheme({
entities: {
teams: {
currentId: ''
},
preferences: {
myPreferences: {}
}
}
}),
typeof Config.DefaultTheme === 'string' ? Themes[Config.DefaultTheme] : Config.DefaultTheme
);
});
it('should return global theme by name', () => {
assert.deepEqual(
getTheme({
entities: {
teams: {
currentId: ''
},
preferences: {
myPreferences: {
[`${Preferences.CATEGORY_THEME}--`]: {value: 'mattermost'}
}
}
}
}),
Themes.mattermost
);
});
it('should return global custom theme', () => {
assert.deepEqual(
getTheme({
entities: {
teams: {
currentId: ''
},
preferences: {
myPreferences: {
[`${Preferences.CATEGORY_THEME}--`]: {value: '{"sidebarBg": "#ff0000"}'}
}
}
}
}),
{sidebarBg: '#ff0000'}
);
});
it('should return global theme by name when on team', () => {
assert.deepEqual(
getTheme({
entities: {
teams: {
currentId: '1234'
},
preferences: {
myPreferences: {
[`${Preferences.CATEGORY_THEME}--`]: {value: 'mattermost'}
}
}
}
}),
Themes.mattermost
);
});
it('should return global custom theme when on team', () => {
assert.deepEqual(
getTheme({
entities: {
teams: {
currentId: '1234'
},
preferences: {
myPreferences: {
[`${Preferences.CATEGORY_THEME}--`]: {value: '{"sidebarBg": "#ff0000"}'}
}
}
}
}),
{sidebarBg: '#ff0000'}
);
});
it('should return team-specific theme by name when on team', () => {
assert.deepEqual(
getTheme({
entities: {
teams: {
currentId: '1234'
},
preferences: {
myPreferences: {
[`${Preferences.CATEGORY_THEME}--`]: {value: 'mattermost'},
[`${Preferences.CATEGORY_THEME}--1234`]: {value: 'mattermostDark'}
}
}
}
}),
Themes.mattermostDark
);
});
it('should return team-specific custom theme when on team', () => {
assert.deepEqual(
getTheme({
entities: {
teams: {
currentId: '1234'
},
preferences: {
myPreferences: {
[`${Preferences.CATEGORY_THEME}--`]: {value: '{"sidebarBg": "#ff0000"}'},
[`${Preferences.CATEGORY_THEME}--1234`]: {value: '{"sidebarBg": "#00ff00"}'}
}
}
}
}),
{sidebarBg: '#00ff00'}
);
});
});
});