Files
BetterDesk/web-nodejs/tests/updateService.consoleSync.test.js
T
UNITRONIX a6ec256f57 feat(update): implement last update result reporting in settings
Added a new API endpoint to retrieve the last update result, enhancing the user interface by displaying detailed error messages for failed updates. Improved the update completion modal to reflect the status of services and console restarts, ensuring users are informed of any issues. Updated the settings JavaScript to load and display the last update result dynamically, improving overall user experience during updates.
2026-06-07 15:06:48 +02:00

54 lines
2.5 KiB
JavaScript

'use strict';
const { createConsoleDeployGraph } = require('../lib/consoleDeployGraph');
const {
GITHUB_COMPARE_FILE_LIMIT,
isCompareLikelyTruncated,
} = require('../services/updateService');
describe('updateService console sync helpers', () => {
test('detects truncated GitHub compare responses', () => {
expect(GITHUB_COMPARE_FILE_LIMIT).toBe(300);
expect(isCompareLikelyTruncated(299)).toBe(false);
expect(isCompareLikelyTruncated(300)).toBe(true);
expect(isCompareLikelyTruncated(450)).toBe(true);
});
test('resolves relative console require paths', () => {
const graph = createConsoleDeployGraph(require('path').join(__dirname, '..'));
expect(graph.resolveConsoleRequire('routes/auth.routes.js', '../services/serverAttestation'))
.toBe('services/serverAttestation.js');
expect(graph.resolveConsoleRequire('routes/index.js', './devices.routes'))
.toBe('routes/devices.routes.js');
expect(graph.resolveConsoleRequire('server.js', './routes'))
.toBe('routes/index.js');
expect(graph.resolveConsoleRequire('server.js', 'express')).toBeNull();
});
test('skips phantom routes.js when routes/index.js exists during repair scan', () => {
const graph = createConsoleDeployGraph(require('path').join(__dirname, '..'));
expect(graph.isResolvedByIndexModule('routes.js')).toBe(true);
expect(graph.isResolvedByIndexModule('routes/auth.routes.js')).toBe(false);
});
test('ignores require examples inside comments when scanning dependencies', () => {
const graph = createConsoleDeployGraph(require('path').join(__dirname, '..'));
const required = graph.collectConsoleRequiredFiles([
{ localPath: 'scripts/linux-ensure-console-user.js' },
]);
expect(required.has('scripts/linux-ensure-console-user.js')).toBe(true);
expect(required.has('scripts/scripts/linux-ensure-console-user.js')).toBe(false);
expect(required.has('routes.js')).toBe(false);
expect(required.has('routes/index.js')).toBe(true);
});
test('collects serverAttestation from auth.routes integrity seeds', () => {
const graph = createConsoleDeployGraph(require('path').join(__dirname, '..'));
const required = graph.collectConsoleRequiredFiles([
{ localPath: 'routes/auth.routes.js' },
]);
expect(required.has('routes/auth.routes.js')).toBe(true);
expect(required.has('services/serverAttestation.js')).toBe(true);
});
});