import assert from 'node:assert/strict' import test from 'node:test' import {interfaceLanding,rememberAppearance,storedInterfaceType,storedTheme} from '../src/appearance.ts' function memory(initial:Record={}){ const values=new Map(Object.entries(initial)) return{getItem:(key:string)=>values.get(key)??null,setItem:(key:string,value:string)=>values.set(key,value),values} } test('each interface type owns a distinct landing structure',()=>{ assert.deepEqual(interfaceLanding('dashboard'),{view:'activity',tab:'chat'}) assert.deepEqual(interfaceLanding('atelier'),{view:'workspace',tab:'chat'}) assert.deepEqual(interfaceLanding('review'),{view:'workspace',tab:'changes'}) }) test('interface and theme persist independently with safe defaults',()=>{ const storage=memory() rememberAppearance('review','light',storage) assert.equal(storedInterfaceType(storage),'review') assert.equal(storedTheme(storage),'light') const invalid=memory({'codexpi-interface-type':'palette','codexpi-theme':'neon'}) assert.equal(storedInterfaceType(invalid),'dashboard') assert.equal(storedTheme(invalid),'system') })