Files
archy/neode-ui/scripts/tests/native-aiui-provenance.test.mjs

25 lines
1.4 KiB
JavaScript

import assert from 'node:assert/strict'
import test from 'node:test'
import { nativeAIUIProvenance } from '../../native-aiui-provenance.ts'
const commit = 'a'.repeat(40)
const missingGit = () => { throw new Error('Git checkout unavailable') }
test('explicit Docker demo binds CI revision without claiming clean production custody', () => {
assert.deepEqual(nativeAIUIProvenance('/', {DOCKER_BUILD:'true',VITE_DEMO:'1',ARCHY_SOURCE_REVISION:commit}, missingGit),
{mode:'native-demo',source_commit:commit,source_dirty:true})
})
test('demo provenance refuses missing, abbreviated and malformed revisions', () => {
for (const revision of ['', 'main', 'abc', 'A'.repeat(40)]) {
assert.throws(() => nativeAIUIProvenance('/',{DOCKER_BUILD:'true',VITE_DEMO:'true',ARCHY_SOURCE_REVISION:revision},missingGit),/full lowercase/)
}
})
test('source revision environment cannot bypass production Git requirements', () => {
for (const env of [{ARCHY_SOURCE_REVISION:commit},{DOCKER_BUILD:'true',VITE_DEMO:'0',ARCHY_SOURCE_REVISION:commit}]) {
assert.throws(() => nativeAIUIProvenance('/',env,missingGit),/Git checkout unavailable/)
}
})
test('production uses actual Git revision and dirty state', () => {
assert.deepEqual(nativeAIUIProvenance('/',{},args => args[0]==='rev-parse'?commit:''),
{mode:'native',source_commit:commit,source_dirty:false})
assert.equal(nativeAIUIProvenance('/',{},args => args[0]==='rev-parse'?commit:' M file').source_dirty,true)
})