import test from 'node:test'; import assert from 'node:assert/strict'; import { boardScenes, informationBlocks } from '../src/lib/information.ts'; import { defaultSettings } from '../src/lib/storage.ts'; const off = { ...defaultSettings, infoServiceEnabled: false, infoWeatherEnabled: false, infoQrEnabled: false }; test('disabled information blocks are omitted without leaving gaps in the cycle', () => { assert.deepEqual(informationBlocks(defaultSettings).map(block => block.id), ['service', 'weather', 'qr']); assert.deepEqual(informationBlocks({ ...off, infoQrEnabled: true }).map(block => block.id), ['qr']); assert.deepEqual(informationBlocks({ ...defaultSettings, infoWeatherEnabled: false }).map(block => block.id), ['service', 'qr']); assert.deepEqual(informationBlocks(off), []); }); test('all blocks off keeps departures, retains optional advertising, and still surfaces alerts', () => { assert.deepEqual(boardScenes(off, false, false), ['departures']); assert.deepEqual(boardScenes({ ...off, adsEnabled: true }, false, false), ['departures', 'ad']); assert.deepEqual(boardScenes({ ...off, adsEnabled: true }, true, true), ['departures', 'info']); assert.deepEqual(boardScenes(off, true, false), ['departures', 'info']); });