feat: publish CodexPi contest snapshot
Some checks are pending
Qualité / tests (push) Waiting to run
Some checks are pending
Qualité / tests (push) Waiting to run
This commit is contained in:
25
frontend/tests/appearance.test.ts
Normal file
25
frontend/tests/appearance.test.ts
Normal file
@@ -0,0 +1,25 @@
|
||||
import assert from 'node:assert/strict'
|
||||
import test from 'node:test'
|
||||
|
||||
import {interfaceLanding,rememberAppearance,storedInterfaceType,storedTheme} from '../src/appearance.ts'
|
||||
|
||||
function memory(initial:Record<string,string>={}){
|
||||
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')
|
||||
})
|
||||
Reference in New Issue
Block a user