import { test } from 'node:test'; import assert from 'node:assert/strict'; import { sourceFailure } from '../server/source-error.mjs'; test('EKAP human verification is a manual non-retryable gate', () => { const result = sourceFailure(new Error('EKAP 428: {"code":"HUMAN_VERIFICATION_REQUIRED"}')); assert.equal(result.status, 428); assert.equal(result.body.code, 'HUMAN_VERIFICATION_REQUIRED'); assert.equal(result.body.retryable, false); assert.equal(result.body.manualAction, true); assert.equal(result.body.manualUrl, 'https://ekap.kik.gov.tr/EKAP/'); assert.match(result.body.error, /kendi tarayıcınızda açıp doğrulamayı tamamlayın/); }); test('ordinary upstream failures stay retryable', () => { const result = sourceFailure(new Error('upstream timeout')); assert.equal(result.status, 502); assert.deepEqual(result.body, { success: false, error: 'upstream timeout', code: 'SOURCE_UNAVAILABLE', retryable: true, }); });