feat: frontend unit tests

This commit is contained in:
Yiannis Stergiou
2026-01-07 19:47:54 +02:00
committed by GitHub
parent ed5cfa1a84
commit 1c15880ae3
74 changed files with 6000 additions and 877 deletions

View File

@@ -0,0 +1,70 @@
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');
});
});
});