Files
iptvnator/libs/shared/interfaces/src/lib/external-player-arguments.utils.spec.ts
T
4gray a40d5447e7 feat(settings): add external player arguments (#932)
* feat(settings): add external player arguments

* fix(settings): address external player argument review

* fix(settings): require external player argument settings

* feat(settings): add external player argument placeholders

Closes https://github.com/4gray/iptvnator/issues/835
2026-05-14 11:04:01 +02:00

34 lines
1.2 KiB
TypeScript

import {
normalizeExternalPlayerArguments,
parseExternalPlayerArguments,
} from './external-player-arguments.utils';
describe('external player arguments utils', () => {
it('parses one argument per non-empty trimmed line', () => {
expect(
parseExternalPlayerArguments(
' --screen=1\n\n--geometry=1280x720\r\n --hwdec=auto-safe '
)
).toEqual(['--screen=1', '--geometry=1280x720', '--hwdec=auto-safe']);
});
it('normalizes arguments to newline-separated trimmed lines', () => {
expect(
normalizeExternalPlayerArguments([
' --screen=1 ',
'',
' --geometry=1280x720 ',
])
).toBe('--screen=1\n--geometry=1280x720');
});
it('treats missing or unsupported values as empty arguments', () => {
expect(parseExternalPlayerArguments(undefined)).toEqual([]);
expect(parseExternalPlayerArguments(null)).toEqual([]);
expect(parseExternalPlayerArguments(123 as unknown as string)).toEqual(
[]
);
expect(normalizeExternalPlayerArguments(' \n ')).toBe('');
});
});