Files
lzstealth aafe112c36
Publish Docker Image / build-and-push (./build/Dockerfile, git.lzstealth.com/lzstealth/pulse-signage-web, web) (push) Successful in 1m18s
Publish Docker Image / build-and-push (./build/Dockerfile.player, git.lzstealth.com/lzstealth/pulse-signage-player, player) (push) Successful in 32s
Release 2.7.5
2026-08-15 13:06:46 +01:00

65 lines
2.0 KiB
JavaScript

const test = require('node:test');
const assert = require('node:assert/strict');
require('../src/common');
const packageJson = require('../package.json');
const pages = require('../src/web/pages');
const registerAboutRoutes = require('../src/web/routes/settings/about/routes');
const renderAboutPage = require('../src/web/routes/settings/about');
test('about page renders the footer link beside the version and lists bundled libraries', () => {
const html = pages.renderAboutPage({ id: 1 });
const libraries = renderAboutPage.buildLibraryList();
const orderedNames = libraries.map(function (library) {
return library.name;
});
let previousIndex = -1;
orderedNames.forEach(function (name) {
const currentIndex = html.indexOf(name);
assert.ok(currentIndex >= 0, `missing ${name}`);
assert.ok(currentIndex > previousIndex, `${name} is out of order`);
previousIndex = currentIndex;
});
assert.match(html, new RegExp('v' + packageJson.version.split('.').join('\\.')));
assert.match(html, /About Pulse/);
assert.match(html, /href="\/settings\/about"/);
libraries.forEach(function (library) {
assert.ok(library.version, `${library.name} version is missing`);
assert.match(html, new RegExp(`>${library.version}<`));
});
assert.match(html, /card card-outline card-primary h-100 overflow-hidden/);
assert.doesNotMatch(html, /rounded-3 overflow-hidden border/);
});
test('about route sends the about page', async () => {
const handlers = {};
const app = {
get(path, ...routeHandlers) {
handlers[path] = routeHandlers;
}
};
registerAboutRoutes(app, {
pages: {
renderAboutPage(currentUser) {
return currentUser && currentUser.id === 7 ? 'about-page' : 'unexpected';
}
}
});
const response = {
body: null,
send(value) {
this.body = value;
return this;
}
};
await handlers['/settings/about'][0]({ currentUser: { id: 7 } }, response, function () {});
assert.equal(response.body, 'about-page');
});