Files
pulse-signage/test/onboarding-device-prune.test.js
lzstealth 7295f83f04
Publish Docker Image / build-and-push-existing-registry (./build/Dockerfile, web, pulse-signage-web) (push) Successful in 4m34s
Publish Docker Image / build-and-push-existing-registry (./build/Dockerfile.player, player, pulse-signage-player) (push) Successful in 57s
Release v2.15.2
2026-10-15 01:50:39 +01:00

40 lines
1.3 KiB
JavaScript

const test = require('node:test');
const assert = require('node:assert/strict');
const { pruneStaleOnboardingDevices } = require('../src/db/common');
test('prunes old unbound pairings and stale screen bindings', async () => {
let queryText = '';
const pool = {
async query(sql) {
queryText = sql;
return [[]];
}
};
await pruneStaleOnboardingDevices(pool);
assert.match(queryText, /screen_id IS NULL/);
assert.match(queryText, /modified_at < \(CURRENT_TIMESTAMP - INTERVAL 15 MINUTE\)/);
assert.match(queryText, /COALESCE\(last_seen_at, modified_at\) < \(CURRENT_TIMESTAMP - INTERVAL 24 HOUR\)/);
assert.doesNotMatch(queryText, /d_players\.identifier = d_onboarding_devices\.device_id/);
});
test('updates an onboarding device last-seen timestamp by device id', async () => {
let queryText = '';
let queryParams = null;
const pool = {
async query(sql, params) {
queryText = sql;
queryParams = params;
return [[]];
}
};
const { touchOnboardingDeviceLastSeen } = require('../src/db/common');
await touchOnboardingDeviceLastSeen(pool, ['device-123', 'client-123']);
assert.match(queryText, /SET last_seen_at = CURRENT_TIMESTAMP/);
assert.match(queryText, /WHERE device_id IN \(\?, \?\)/);
assert.deepEqual(queryParams, ['device-123', 'client-123']);
});