Release v2.20.3
This commit is contained in:
1 parent
9dec1818a5
commit
7228406929
9 files changed
+101
-7
No files matched your search
@@ -5,6 +5,54 @@ require('../src/common');
|
||||
|
||||
const { buildPlaylistFormViewModel } = require('../src/web/routes/signage/playlists/form-view-model');
|
||||
|
||||
test('playlist schedule summaries show up to two short rules on separate lines and count longer summaries', () => {
|
||||
const fs = require('node:fs');
|
||||
const path = require('node:path');
|
||||
const vm = require('node:vm');
|
||||
const { formatScheduleRulesSummary } = require('../src/web/lib/playlist-schedule');
|
||||
const source = fs.readFileSync(path.join(__dirname, '../src/web/public/js/playlists/playlist-schedule.js'), 'utf8');
|
||||
const context = {};
|
||||
vm.runInNewContext(source.slice(0, source.indexOf(' function parseScheduleBoundary('))
|
||||
+ 'globalThis.formatSummary = formatScheduleRulesSummary; })();', context);
|
||||
|
||||
const cases = [
|
||||
[[], 'Always visible'],
|
||||
[[{ days: [1, 3], start_time: '09:00', end_time: '17:00' }], 'Rule 1: Mon, Wed 09:00-17:00'],
|
||||
[[{ start_time: '09:00', end_time: '17:00' }], 'Rule 1: Any day 09:00-17:00'],
|
||||
[[{ start_time: '09:00', end_time: '17:00' }, { days: [5] }],
|
||||
'Rule 1: Any day 09:00-17:00\nRule 2: Fri'],
|
||||
[[{ days: [1] }, { days: [5] }], 'Rule 1: Mon\nRule 2: Fri'],
|
||||
[[{ days: [1] }, { days: [3] }, { days: [5] }], '3 rules'],
|
||||
[[{ days: [1] }, { days: [2] }, { days: [3] }, { days: [4] }], '4 rules'],
|
||||
[[{ start_datetime: '2026-10-25T09:00', end_datetime: '2026-10-26T17:00', days: [1] }],
|
||||
'Rule 1: Dates 2026-10-25 09:00 to 2026-10-26 17:00: Mon'],
|
||||
[[{ start_datetime: '2026-10-25T09:00', end_datetime: '2026-10-26T17:00',
|
||||
days: [1, 2], start_time: '09:00', end_time: '17:00' }],
|
||||
'1 rule'],
|
||||
[[{ days: [0, 1, 2, 3, 4, 5, 6], start_time: '09:00', end_time: '17:00' },
|
||||
{ days: [1, 2, 3, 4, 5], start_time: '18:00', end_time: '19:00' }],
|
||||
'Rule 1: Sun, Mon, Tue, Wed, Thu, Fri, Sat 09:00-17:00\nRule 2: Mon, Tue, Wed, Thu, Fri 18:00-19:00'],
|
||||
[[{ start_datetime: '2026-10-25T09:00', end_datetime: '2026-10-26T17:00',
|
||||
days: [1, 2, 3] }], 'Rule 1: Dates 2026-10-25 09:00 to 2026-10-26 17:00: Mon, Tue, Wed'],
|
||||
[[{ start_datetime: '2026-10-25T09:00', end_datetime: '2026-10-26T17:00',
|
||||
days: [1, 2, 3, 4, 5] }], '1 rule'],
|
||||
[[{ days: [1] }, { start_datetime: '2026-10-25T09:00', end_datetime: '2026-10-26T17:00',
|
||||
days: [1, 2, 3, 4, 5] }], '2 rules'],
|
||||
[[{ start_datetime: '2026-10-25T09:00', end_datetime: '2026-10-26T17:00',
|
||||
days: [1, 2], start_time: '09:00', end_time: '17:00' }, { days: [5] }], '2 rules']
|
||||
];
|
||||
|
||||
for (const [rules, expected] of cases) {
|
||||
assert.equal(formatScheduleRulesSummary(rules), expected);
|
||||
assert.equal(context.formatSummary(rules), expected);
|
||||
assert.equal(formatScheduleRulesSummary(JSON.stringify(rules)), expected);
|
||||
assert.equal(context.formatSummary(JSON.stringify(rules)), expected);
|
||||
}
|
||||
|
||||
const css = fs.readFileSync(path.join(__dirname, '../src/web/public/css/theme-custom.css'), 'utf8');
|
||||
assert.match(css, /\.playlist-schedule-summary \.chip\s*\{[^}]*display:\s*inline-block;[^}]*white-space:\s*pre-line;[^}]*overflow-wrap:\s*anywhere;/);
|
||||
});
|
||||
|
||||
test('playlist rows show mute controls for RTMP slides', () => {
|
||||
const model = buildPlaylistFormViewModel(
|
||||
{ id: 22, name: 'Playlist 22' },
|
||||
|
||||
Reference in new issue
Block a user