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) })