31 lines
1.9 KiB
JavaScript
31 lines
1.9 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/native-composition-runtime.json'))
|
||
|
|
const registry = JSON.parse(read('contracts/numbered-ipc-registry.json'))
|
||
|
|
const modulePackage = JSON.parse(read('fixtures/module-packages/HLP-MOD-LOCAL-NATIVE-COMPOSITION-0001-0.1.0.ghmod'))
|
||
|
|
const rust = read('src-tauri/src/native_composition.rs')
|
||
|
|
const frontend = read('src/modules/native-composition/index.tsx')
|
||
|
|
|
||
|
|
test('native composition is an admitted numbered read-only adapter, not donor runtime code', () => {
|
||
|
|
assert.equal(contract.candidate_number, 'HLP-DONOR-CAND-0001')
|
||
|
|
assert.equal(contract.runtime_module_number, 'HLP-MOD-LOCAL-NATIVE-COMPOSITION-0001')
|
||
|
|
assert.equal(contract.module_contract.authority, 'CURRENT_AUTHENTICATED_ACCOUNT_READ_ONLY')
|
||
|
|
assert.equal(contract.admission.signed_package_required, true)
|
||
|
|
assert.equal(contract.admission.active_module_required_before_execution, true)
|
||
|
|
assert.equal(contract.provenance.current_mainline_reuses_bulk_source, false)
|
||
|
|
assert.equal(modulePackage.manifest.adapter, 'native-composition-v1')
|
||
|
|
assert.deepEqual(modulePackage.manifest.permissions, ['KNOWLEDGE_READ'])
|
||
|
|
assert.match(rust, /require_active_module_adapter/)
|
||
|
|
assert.doesNotMatch(rust, /#\[tauri::command\]/)
|
||
|
|
assert.match(frontend, /NativeCompositionStudio/)
|
||
|
|
})
|
||
|
|
|
||
|
|
test('native composition execution has one exact numbered coordinate pair', () => {
|
||
|
|
const routes = registry.operations.filter((route) => route.module_number === 'HLP-NIPC-MOD-0021')
|
||
|
|
assert.deepEqual(routes.map((route) => route.operation_number), ['HLP-NIPC-OP-0072', 'HLP-NIPC-OP-0073'])
|
||
|
|
assert.ok(routes.every((route) => route.target_number === 'HLP-NIPC-TGT-0021'))
|
||
|
|
assert.ok(routes.every((route) => route.admission === 'VERIFIED_HUMAN_ROUTE'))
|
||
|
|
})
|