Release v2.5.6

This commit is contained in:
2026-08-05 19:38:16 +01:00
parent a8ef35b287
commit 9f831f04bc
161 changed files with 8487 additions and 1295 deletions
+43
View File
@@ -0,0 +1,43 @@
const test = require('node:test');
const assert = require('node:assert/strict');
const fs = require('node:fs');
const path = require('node:path');
require('../src/common');
const { buildDuplicateSlideName, buildDuplicateSlide } = require('../src/web/routes/signage/slides/duplicate');
const renderSlideAddPage = require('../src/web/routes/signage/slides/add');
test('buildDuplicateSlide copies slide fields for the create page', () => {
const duplicate = buildDuplicateSlide({
id: 11,
title: 'Morning Loop',
template_id: 7,
content: { hero: { type: 'text', value: 'Hello' } }
}, buildDuplicateSlideName('Morning Loop'));
assert.equal(duplicate.id, null);
assert.equal(duplicate.title, 'Copy of Morning Loop');
assert.equal(duplicate.template_id, 7);
assert.deepEqual(duplicate.content, { hero: { type: 'text', value: 'Hello' } });
});
test('slide duplicate add page renders the copied slide title', async () => {
const html = await renderSlideAddPage(
{ id: null, title: 'Copy of Morning Loop', template_id: 7, content: { hero: { type: 'text', value: 'Hello' } } },
{ templates: [], templateRegions: [], rssFeeds: [], apiSources: [], timetableGroups: [], fontLibrary: null },
'Review the copied values and save when ready.',
{ permissionKeys: ['slides.create'] }
);
assert.match(html, /Copy of Morning Loop/);
assert.match(html, /Create slide/);
assert.match(html, /Select a template to preview the slide\./);
});
test('slide list template includes duplicate action', () => {
const template = fs.readFileSync(path.join(__dirname, '..', 'src', 'web', 'views', 'signage', 'slides', 'list.hbs'), 'utf8');
assert.match(template, /\/slides\/\{\{id\}\}\/duplicate/);
assert.match(template, />Dupe<\/a>/);
});