const test = require('node:test'); const assert = require('node:assert/strict'); const { pruneStaleOnboardingDevices } = require('../src/db/common'); test('prunes old unbound onboarding devices without deleting completed 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, /last_seen_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']); });