hololake-system-architecture/product-source/hololake-native-desktop/scripts/dynamic-world-surface-admission.test.mjs

69 lines
4.2 KiB
JavaScript

import assert from 'node:assert/strict'
import { readFileSync } from 'node:fs'
import test from 'node:test'
const read = (path) => readFileSync(new URL(`../${path}`, import.meta.url), 'utf8')
const contract = JSON.parse(read('contracts/dynamic-language-world-visual-system.json'))
const registry = JSON.parse(read('contracts/numbered-ipc-registry.json'))
const modulePackage = JSON.parse(read('fixtures/module-packages/HLP-MOD-OFFICIAL-DYNAMIC-WORLD-SURFACE-0001-0.1.0.ghmod'))
const rust = read('src-tauri/src/world_climate.rs')
const frontend = read('src/main.tsx')
const styles = read('src/styles.css')
const starlake = read('src/modules/qoder-surface/StarlakeSurface.tsx')
const starlakeStyles = read('src/modules/qoder-surface/starlake-surface.css')
const traditional = read('src/modules/qoder-surface/TraditionalSurface.tsx')
const traditionalStyles = read('src/modules/qoder-surface/traditional-surface.css')
const visualBalance = read('src/modules/qoder-surface/visual-balance.ts')
const layoutProfile = read('src/modules/qoder-surface/layout-profile.ts')
test('dynamic world surface is signed, opt-in and cannot mutate world facts', () => {
assert.equal(modulePackage.manifest.moduleNumber, 'HLP-MOD-OFFICIAL-DYNAMIC-WORLD-SURFACE-0001')
assert.equal(modulePackage.manifest.registrationClass, 'OFFICIAL_LIGHTHOUSE')
assert.equal(modulePackage.manifest.adapter, 'dynamic-language-world-surface-v1')
assert.deepEqual(modulePackage.manifest.permissions, ['REALITY_TIME_READ', 'PUBLIC_WEATHER_QUERY'])
assert.equal(modulePackage.payload.adapterConfig.routingPermissionOrFactMutation, false)
assert.equal(contract.visual_lock.climate_changes_routing_permission_or_fact, false)
assert.equal(contract.visual_lock.daily_sampling_domain_changes_open_domain, false)
})
test('climate query crosses the unique numbered route and fails closed before activation', () => {
const route = registry.operations.find((item) => item.alias === 'get_world_climate')
assert.equal(route.operation_number, 'HLP-NIPC-OP-0147')
assert.equal(route.module_number, 'HLP-NIPC-MOD-0031')
assert.equal(route.target_number, 'HLP-NIPC-TGT-0031')
assert.equal(route.admission, 'VERIFIED_HUMAN_ROUTE')
assert.match(rust, /require_active_module_adapter/)
assert.doesNotMatch(rust, /#\[tauri::command\]/)
assert.doesNotMatch(frontend, /from ['"]@tauri-apps\/api\/core['"]/)
})
test('Qoder locked two-track surface is admitted without simulated product state', () => {
assert.equal(contract.visual_lock.layout, 'QODER_VISUAL_LANGUAGE_SEMANTICALLY_REASSEMBLED_ON_RESPONSIVE_HOLOLAKE_SHELL')
assert.equal(contract.visual_lock.language_world_themes.length, 5)
assert.equal(contract.visual_lock.traditional_finishes.length, 8)
assert.equal(contract.visual_lock.all_downstream_pages_inherit_active_surface_tokens, true)
assert.match(frontend, /夜湖星光/)
assert.match(frontend, /天气源暂不可用;湖面只使用北京时间,不生成假天气。/)
assert.match(styles, /\.world-climate-veil/)
assert.match(starlake, /ResizeObserver/)
assert.match(starlake, /data-layout=\{layout\.profile\}/)
assert.match(layoutProfile, /panoramic.*wide.*compact.*stacked/s)
assert.doesNotMatch(starlake, /naturalScale|sideCenters|onDuty \? 2/)
assert.match(starlakeStyles, /\.starlake-scene\.awake/)
assert.match(traditional, /broadcasts\.map/)
assert.match(traditionalStyles, /\.official-world\.surface-traditional/)
assert.match(visualBalance, /contrastRatio/)
assert.doesNotMatch(traditional, /语料库新增 217 条/)
assert.doesNotMatch(traditional, /const BROADCAST_POOL/)
})
test('ambient motion sleeps and the Qoder source hashes remain pinned', () => {
assert.equal(contract.visual_lock.ambient_motion_requires_recent_human_pointer_or_keyboard_activity, true)
assert.equal(contract.visual_lock.idle_visual_state, 'STATIC')
assert.match(frontend, /setTimeout\(\(\) => \{[\s\S]*setMotionAwake\(false\)/)
assert.match(starlake, /if \(!awake\) return/)
assert.match(traditional, /if \(!awake\) return/)
assert.match(starlakeStyles, /animation-play-state:paused/)
assert.match(traditionalStyles, /animation-play-state:paused/)
assert.equal(contract.qoder_source_provenance.main_tsx_sha256, '7dab8596ec0bd2609b1b23b175f1f14f15f2aa9af847eb605692c993d2e876e8')
})