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') 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('official shell and five lake themes remain the only admitted layout', () => { assert.equal(contract.visual_lock.layout, 'EXISTING_OFFICIAL_FIVE_LAKE_SHELL_UNCHANGED') assert.equal(contract.visual_lock.themes.length, 5) assert.equal(contract.donor_disposition.traditional_surface, 'REJECTED_DUPLICATE_SHELL_EIGHT_THEMES_AND_SIMULATED_STATUS') assert.match(frontend, /夜湖星光/) assert.match(frontend, /天气源暂不可用;湖面只使用北京时间,不生成假天气。/) assert.match(styles, /\.world-climate-veil/) assert.doesNotMatch(frontend, /语料库新增 217 条/) assert.doesNotMatch(frontend, /频道活动 · 七日/) })