56 lines
1.6 KiB
JavaScript
56 lines
1.6 KiB
JavaScript
|
|
import { test } from 'node:test'
|
||
|
|
import assert from 'node:assert/strict'
|
||
|
|
|
||
|
|
import { renderPreflight } from '../src/preflight.mjs'
|
||
|
|
|
||
|
|
const config = {
|
||
|
|
project: '/repo',
|
||
|
|
agent: 'code-design',
|
||
|
|
model: '',
|
||
|
|
iterations: 3,
|
||
|
|
sharedContext: false,
|
||
|
|
hitl: 'on-question',
|
||
|
|
auto: true,
|
||
|
|
dryRun: false,
|
||
|
|
host: '127.0.0.1',
|
||
|
|
port: 7999,
|
||
|
|
}
|
||
|
|
|
||
|
|
const goal = {
|
||
|
|
title: 'My goal',
|
||
|
|
description: 'do things',
|
||
|
|
source: '/repo/.kilocode-loop/goal.json',
|
||
|
|
stages: [
|
||
|
|
{ id: 's1', title: 'One', done: false },
|
||
|
|
{ id: 's2', title: 'Two', done: true },
|
||
|
|
],
|
||
|
|
}
|
||
|
|
|
||
|
|
test('renderPreflight shows the scenario, stages and dashboard url', () => {
|
||
|
|
const out = renderPreflight(config, goal, 'http://127.0.0.1:7999')
|
||
|
|
assert.match(out, /About to run/)
|
||
|
|
assert.match(out, /My goal/)
|
||
|
|
assert.match(out, /fresh session per iteration/)
|
||
|
|
assert.match(out, /\[ \] One/)
|
||
|
|
assert.match(out, /\[x\] Two/)
|
||
|
|
assert.match(out, /127\.0\.0\.1:7999/)
|
||
|
|
})
|
||
|
|
|
||
|
|
test('renderPreflight lists verify, safety and limits rows', () => {
|
||
|
|
const out = renderPreflight(
|
||
|
|
{ ...config, verify: 'pnpm test', guard: true, checkpoint: true, redact: true, maxCost: 2, review: true, reviewAgent: 'code', notify: 'https://ntfy.sh/x' },
|
||
|
|
goal,
|
||
|
|
'http://127.0.0.1:7999',
|
||
|
|
)
|
||
|
|
assert.match(out, /pnpm test/)
|
||
|
|
assert.match(out, /checkpoint on · guard on · redact on/)
|
||
|
|
assert.match(out, /cost ≤ \$2/)
|
||
|
|
assert.match(out, /on \(code\)/)
|
||
|
|
})
|
||
|
|
|
||
|
|
test('renderPreflight reflects shared context and dry-run mode', () => {
|
||
|
|
const out = renderPreflight({ ...config, sharedContext: true, dryRun: true }, goal, 'http://127.0.0.1:7999')
|
||
|
|
assert.match(out, /shared between iterations/)
|
||
|
|
assert.match(out, /DRY-RUN/)
|
||
|
|
})
|