import { describe, it, expect } from 'vitest'; import { parseVitestJson } from './run-test-json.mjs'; describe('parseVitestJson (анти-вакуум SE-LB-1/11)', () => { it('зелёный прогон с тестами → allGreen true, numPassed>0', () => { const json = JSON.stringify({ numTotalTests: 3, numPassedTests: 3, numFailedTests: 0, testResults: [{ status: 'passed' }] }); expect(parseVitestJson(json)).toEqual({ allGreen: true, numTests: 3, numPassed: 3, numFailed: 0, loadError: false }); }); it('0 собранных тестов → allGreen FALSE (вакуум не считается зелёным)', () => { const json = JSON.stringify({ numTotalTests: 0, numPassedTests: 0, numFailedTests: 0, testResults: [] }); expect(parseVitestJson(json)).toEqual({ allGreen: false, numTests: 0, numPassed: 0, numFailed: 0, loadError: false }); }); it('провал ассерта → allGreen false, numFailed>0, loadError false', () => { const json = JSON.stringify({ numTotalTests: 2, numPassedTests: 1, numFailedTests: 1, testResults: [{ status: 'failed' }] }); const r = parseVitestJson(json); expect(r.allGreen).toBe(false); expect(r.numFailed).toBe(1); expect(r.loadError).toBe(false); }); it('битый/пустой json (ошибка сборки модуля) → loadError true, allGreen false', () => { expect(parseVitestJson('not json')).toEqual({ allGreen: false, numTests: 0, numPassed: 0, numFailed: 0, loadError: true }); expect(parseVitestJson('')).toEqual({ allGreen: false, numTests: 0, numPassed: 0, numFailed: 0, loadError: true }); }); });