task-quality-gate.test.ts
1 import assert from 'node:assert/strict' 2 import { test } from 'node:test' 3 import { normalizeTaskQualityGate } from '@/lib/server/tasks/task-quality-gate' 4 5 test('normalizeTaskQualityGate uses defaults when unset', () => { 6 const gate = normalizeTaskQualityGate(undefined, undefined) 7 assert.equal(gate.enabled, true) 8 assert.equal(gate.minResultChars, 80) 9 assert.equal(gate.minEvidenceItems, 1) 10 assert.equal(gate.requireVerification, false) 11 assert.equal(gate.requireArtifact, false) 12 assert.equal(gate.requireReport, false) 13 }) 14 15 test('normalizeTaskQualityGate respects app settings defaults', () => { 16 const gate = normalizeTaskQualityGate(null, { 17 taskQualityGateEnabled: false, 18 taskQualityGateMinResultChars: 120, 19 taskQualityGateMinEvidenceItems: 1, 20 taskQualityGateRequireVerification: true, 21 }) 22 assert.equal(gate.enabled, false) 23 assert.equal(gate.minResultChars, 120) 24 assert.equal(gate.minEvidenceItems, 1) 25 assert.equal(gate.requireVerification, true) 26 }) 27 28 test('normalizeTaskQualityGate allows per-task overrides on top of settings', () => { 29 const gate = normalizeTaskQualityGate({ 30 enabled: true, 31 minResultChars: 64, 32 minEvidenceItems: 3, 33 requireArtifact: true, 34 }, { 35 taskQualityGateEnabled: false, 36 taskQualityGateMinResultChars: 120, 37 taskQualityGateMinEvidenceItems: 1, 38 taskQualityGateRequireArtifact: false, 39 }) 40 assert.equal(gate.enabled, true) 41 assert.equal(gate.minResultChars, 64) 42 assert.equal(gate.minEvidenceItems, 3) 43 assert.equal(gate.requireArtifact, true) 44 })