Release 2.8.0
Publish Docker Image / build-and-push-existing-registry (./build/Dockerfile, web, pulse-signage-web) (push) Successful in 1m49s
Publish Docker Image / build-and-push-existing-registry (./build/Dockerfile.player, player, pulse-signage-player) (push) Successful in 32s

This commit is contained in:
2026-08-16 17:15:31 +01:00
parent 1bdc122995
commit 203d0bfc01
105 changed files with 4185 additions and 677 deletions
+18
View File
@@ -18,6 +18,7 @@ Module._resolveFilename = function (request, parent, isMain, options) {
const { buildDuplicateAnnouncementName, buildDuplicateAnnouncement } = require('../src/web/routes/signage/announcements/duplicate');
const { buildAnnouncementFormViewModel } = require('../src/web/routes/signage/announcements/form-view-model');
const renderAnnouncementsPage = require('../src/web/routes/signage/announcements/list');
const announcementIcons = require('../src/data/announcement-icons');
test('announcement duplicate helper copies editable fields and resets runtime state', () => {
const source = {
@@ -98,6 +99,23 @@ test('announcement form template uses an icon-backed type picker', () => {
assert.match(template, /data-type-icon="\{\{icon\}\}"/);
});
test('announcement form template includes a searchable bootstrap icon catalog', () => {
const template = fs.readFileSync(path.join(__dirname, '..', 'src', 'web', 'views', 'signage', 'announcements', 'form.hbs'), 'utf8');
assert.match(template, /data-announcement-icon-search/);
assert.match(template, /announcementIconCatalog/);
assert.match(template, /data-announcement-icon-grid/);
assert.ok(!/data-announcement-icon-search-section/.test(template));
});
test('announcement icons accept catalog-only bootstrap icon keys', () => {
assert.equal(announcementIcons.normalizeAnnouncementIcon('bank'), 'bank');
assert.ok(announcementIcons.ANNOUNCEMENT_ICON_CATALOG.some(function (icon) {
return icon.value === 'bank';
}));
assert.equal(announcementIcons.ANNOUNCEMENT_ICON_LABELS.bank, 'Bank');
});
test('announcement form template uses a checkbox card grid for screen groups', () => {
const template = fs.readFileSync(path.join(__dirname, '..', 'src', 'web', 'views', 'signage', 'announcements', 'form.hbs'), 'utf8');