mirror of
https://github.com/4gray/iptvnator.git
synced 2026-10-11 11:06:16 -08:00
38 lines
1.1 KiB
TypeScript
38 lines
1.1 KiB
TypeScript
import { EpgProgram } from '@iptvnator/shared/interfaces';
|
|
import { normalizeEpgPrograms } from './epg-program-normalization.util';
|
|
|
|
function buildProgram(overrides: Partial<EpgProgram> = {}): EpgProgram {
|
|
return {
|
|
start: '2026-04-15T20:00:00Z',
|
|
stop: '2026-04-15T21:00:00Z',
|
|
channel: 'channel-1',
|
|
title: 'Sample',
|
|
desc: null,
|
|
category: null,
|
|
iconUrl: null,
|
|
rating: null,
|
|
episodeNum: null,
|
|
...overrides,
|
|
};
|
|
}
|
|
|
|
describe('normalizeEpgPrograms', () => {
|
|
it('keeps valid rows and normalizes dates', () => {
|
|
expect(normalizeEpgPrograms([buildProgram()])).toEqual([
|
|
expect.objectContaining({
|
|
start: '2026-04-15T20:00:00.000Z',
|
|
stop: '2026-04-15T21:00:00.000Z',
|
|
}),
|
|
]);
|
|
});
|
|
|
|
it('drops rows with invalid stop dates', () => {
|
|
expect(
|
|
normalizeEpgPrograms([
|
|
buildProgram({ title: 'ok' }),
|
|
buildProgram({ title: 'bad', stop: '' }),
|
|
])
|
|
).toEqual([expect.objectContaining({ title: 'ok' })]);
|
|
});
|
|
});
|