mirror of
https://github.com/mediacms-io/mediacms.git
synced 2026-01-20 07:12:58 -05:00
71 lines
3.1 KiB
TypeScript
71 lines
3.1 KiB
TypeScript
import { init, settings } from '../../../src/static/js/utils/settings/notifications';
|
||
|
||
const notificationsConfig = (sett?: any) => {
|
||
init(sett);
|
||
return settings();
|
||
};
|
||
|
||
describe('utils/settings', () => {
|
||
describe('notifications', () => {
|
||
test('Returns defaults when no settings provided', () => {
|
||
const cfg = notificationsConfig();
|
||
expect(cfg).toStrictEqual({
|
||
messages: {
|
||
addToLiked: 'Added to liked media',
|
||
removeFromLiked: 'Removed from liked media',
|
||
addToDisliked: 'Added to disliked media',
|
||
removeFromDisliked: 'Removed from disliked media',
|
||
},
|
||
});
|
||
});
|
||
|
||
// @todo: Revisit this behavior
|
||
test('Keep incoming message values without processing', () => {
|
||
const cfg = notificationsConfig({
|
||
messages: {
|
||
addToLiked: ' Yay ',
|
||
removeFromLiked: ' ',
|
||
addToDisliked: '\nNope',
|
||
removeFromDisliked: '\t OK\t',
|
||
},
|
||
});
|
||
expect(cfg.messages.addToLiked).toBe(' Yay ');
|
||
expect(cfg.messages.removeFromLiked).toBe(' ');
|
||
expect(cfg.messages.addToDisliked).toBe('\nNope');
|
||
expect(cfg.messages.removeFromDisliked).toBe('\t OK\t');
|
||
});
|
||
|
||
test('Ignores undefined, keeping defaults', () => {
|
||
const cfg = notificationsConfig({
|
||
messages: {
|
||
addToLiked: undefined,
|
||
removeFromLiked: undefined,
|
||
addToDisliked: undefined,
|
||
removeFromDisliked: undefined,
|
||
},
|
||
});
|
||
expect(cfg.messages.addToLiked).toBe('Added to liked media');
|
||
expect(cfg.messages.removeFromLiked).toBe('Removed from liked media');
|
||
expect(cfg.messages.addToDisliked).toBe('Added to disliked media');
|
||
expect(cfg.messages.removeFromDisliked).toBe('Removed from disliked media');
|
||
});
|
||
|
||
test('Allows partial overrides without affecting other keys', () => {
|
||
const cfg = notificationsConfig({ messages: { addToLiked: 'Nice!' } });
|
||
expect(cfg.messages.addToLiked).toBe('Nice!');
|
||
expect(cfg.messages.removeFromLiked).toBe('Removed from liked media');
|
||
expect(cfg.messages.addToDisliked).toBe('Added to disliked media');
|
||
expect(cfg.messages.removeFromDisliked).toBe('Removed from disliked media');
|
||
});
|
||
|
||
test('Handles extraneous keys by passing them through while keeping known defaults intact', () => {
|
||
const cfg = notificationsConfig({ messages: { addToLiked: 'A', notARealKey: 'x' } });
|
||
expect(cfg.messages.notARealKey).toBeUndefined();
|
||
expect(cfg.messages.addToLiked).toBe('A');
|
||
expect(cfg.messages.removeFromLiked).toBe('Removed from liked media');
|
||
expect(cfg.messages.addToDisliked).toBe('Added to disliked media');
|
||
expect(cfg.messages.removeFromDisliked).toBe('Removed from disliked media');
|
||
});
|
||
});
|
||
});
|