Files
pulse-signage/test/timetable-region.test.js
T
2026-08-09 11:57:40 +01:00

42 lines
1.5 KiB
JavaScript

const test = require('node:test');
const assert = require('node:assert/strict');
const { buildSlidePayload } = require('../src/data/slides');
test('buildSlidePayload normalizes timetable region fields', async () => {
const pool = {
async query(sql) {
if (sql.includes('FROM c_templates st')) {
return [[{ id: 9, name: 'Template 9', canvas_size_id: 1, canvas_size_width: 1920, canvas_size_height: 1080 }]];
}
if (sql.includes('FROM c_template_regions')) {
return [[{ id: 47, template_id: 9, region_key: 'timetable', region_type: 'timetable', label: 'Timetable' }]];
}
return [[]];
}
};
const payload = await buildSlidePayload(pool, {
body: {
title: 'Timetable slide',
template_id: '9',
region_text_47: '<p>{{title}}</p>',
region_timetable_group_id_47: '1',
region_timetable_display_mode_47: 'current',
region_timetable_max_items_47: '7'
},
files: []
}, null);
const content = JSON.parse(payload.contentJson);
assert.equal(content.timetable.type, 'timetable');
assert.equal(content.timetable.text, '<p>{{title}}</p>');
assert.equal(content.timetable.value, '<p>{{title}}</p>');
assert.equal(content.timetable.timetable_group_id, '1');
assert.equal(content.timetable.display_mode, 'current');
assert.equal(content.timetable.max_items, '7');
assert.equal(Object.prototype.hasOwnProperty.call(content.timetable, 'timetable_display_mode'), false);
assert.equal(Object.prototype.hasOwnProperty.call(content.timetable, 'timetable_max_items'), false);
});