36 lines
1.1 KiB
JavaScript
36 lines
1.1 KiB
JavaScript
'use strict';
|
|
|
|
const test = require('node:test');
|
|
const assert = require('node:assert/strict');
|
|
const { buildPlaylist } = require('../src/playlist');
|
|
|
|
function fakeRequest() {
|
|
return { headers: { host: 'example.test:8080' }, socket: {} };
|
|
}
|
|
|
|
const event = {
|
|
key: 'a',
|
|
title: 'Standard de Liège - SK Beveren',
|
|
startAt: new Date('2026-11-06T18:25:00Z'),
|
|
endAt: new Date('2026-11-06T20:55:00Z'),
|
|
};
|
|
|
|
test('playlist always contains three fixed channels', () => {
|
|
const scheduler = {
|
|
getSlotCount: () => 3,
|
|
getSlotEvent: (index) => (index === 0 ? event : null),
|
|
};
|
|
const body = buildPlaylist(fakeRequest(), scheduler);
|
|
const lines = body.trim().split('\n');
|
|
|
|
assert.equal(lines[0], '#EXTM3U');
|
|
assert.equal(
|
|
lines[1],
|
|
'#EXTINF:-1 tvg-id="jupiler-1" tvg-name="Jupiler 1",Jupiler 1 | Standard de Liège - SK Beveren (19:25)'
|
|
);
|
|
assert.equal(lines[2], 'http://example.test:8080/stream/1');
|
|
assert.ok(body.includes('Jupiler 2 | Geen wedstrijd'));
|
|
assert.ok(body.includes('Jupiler 3 | Geen wedstrijd'));
|
|
assert.ok(body.includes('http://example.test:8080/stream/3'));
|
|
});
|