Release 2.22.0: normalize playlist schedules and unify player sync
Publish Docker Image / build-and-push-existing-registry (./build/Dockerfile, web, pulse-signage-web) (push) Successful in 1m21s
Publish Docker Image / build-and-push-existing-registry (./build/Dockerfile.player, player, pulse-signage-player) (push) Successful in 32s

This commit is contained in:
lzstealth committed 2026-10-27 22:54:38 +00:00
1 parent 7748129307
commit b71958cb38
39 files changed
+1174 -314

No files matched your search

+14
View File
@@ -116,6 +116,20 @@ test('playlist groups rotate in order, fill every pass, and optionally shuffle',
assert.equal(sandbox.isSlideActive(gatedSlide, now), true);
assert.equal(sandbox.isSlideActive(gatedSlide, new Date(2026, 9, 14, 12, 30)), false);
assert.equal(sandbox.isSlideActive(gatedSlide, new Date(2026, 9, 15, 10, 30)), false);
const databaseRuleSlide = {
scheduleRules: [{ start_time: '10:00', end_time: '11:00', schedule_days_json: '[3]' }]
};
assert.equal(sandbox.isSlideActive(databaseRuleSlide, now), true);
assert.equal(sandbox.isSlideActive(databaseRuleSlide, new Date(2026, 9, 15, 10, 30)), false);
const startBoundSlide = { scheduleRules: [{ start_datetime: '2026-10-14T11:00' }] };
assert.equal(sandbox.isSlideActive(startBoundSlide, now), false);
assert.equal(sandbox.isSlideActive(startBoundSlide, new Date(2026, 9, 14, 11, 0)), true);
const endBoundSlide = { scheduleRules: [{ end_datetime: '2026-10-14T10:00' }] };
assert.equal(sandbox.isSlideActive(endBoundSlide, now), false);
assert.equal(sandbox.isSlideActive(endBoundSlide, new Date(2026, 9, 14, 10, 0)), true);
});
test('repeat groups play all eligible members in order and ignore Pick and shuffle', () => {