test: cover review edge cases and repair paths

This commit is contained in:
2026-05-13 06:23:45 +00:00
parent 8f413439b3
commit 3f3ead0f08
8 changed files with 243 additions and 41 deletions
+49
View File
@@ -0,0 +1,49 @@
import { describe, it } from 'node:test';
import assert from 'node:assert/strict';
import fs from 'fs';
import os from 'os';
import path from 'path';
import { handleCriticalFindings, validateAndRepairJsonFile } from './main.js';
describe('main helpers', () => {
it('validateAndRepairJsonFile accepts valid JSON', () => {
const ws = fs.mkdtempSync(path.join(os.tmpdir(), 'main-valid-'));
const file = path.join(ws, 'data.json');
fs.writeFileSync(file, '[{}]\n');
assert.equal(validateAndRepairJsonFile(file, 'data.json'), true);
assert.equal(fs.readFileSync(file, 'utf8'), '[{}]\n');
fs.rmSync(ws, { recursive: true, force: true });
});
it('validateAndRepairJsonFile repairs invalid JSON to empty array', () => {
const ws = fs.mkdtempSync(path.join(os.tmpdir(), 'main-repair-'));
const file = path.join(ws, 'data.json');
fs.writeFileSync(file, '{invalid json');
assert.equal(validateAndRepairJsonFile(file, 'data.json'), true);
assert.equal(fs.readFileSync(file, 'utf8'), '[]\n');
assert.equal(fs.existsSync(`${file}.bak`), true);
fs.rmSync(ws, { recursive: true, force: true });
});
it('handleCriticalFindings exits when critical findings exist', () => {
let exitCode = null;
const findings = [
{ level: 'critical' },
{ level: 'warning' },
];
const result = handleCriticalFindings(findings, code => { exitCode = code; });
assert.equal(result, true);
assert.equal(exitCode, 1);
});
it('handleCriticalFindings passes when no critical findings exist', () => {
let exitCode = null;
const result = handleCriticalFindings([{ level: 'info' }], code => { exitCode = code; });
assert.equal(result, false);
assert.equal(exitCode, null);
});
});