mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-07-31 04:12:10 +03:00
* feat(homolog): scaffolding da suíte de homologação E2E (deps + npm run homolog) * feat(homolog): L0 avaliador de paridade de deploy (TDD) * feat(homolog): L1a ciclo de vida de API key efêmera (login admin -> create -> revoke) * feat(homolog): L1b suite httpYac de API (models, chat, auth de management, health) * feat(homolog): L1c checker SSE de streaming real (TDD no parser) * feat(homolog): L2 smoke de providers reais via promptfoo gerado do catálogo * feat(homolog): L4a Playwright homolog config + login storageState * feat(homolog): L4b smoke de todas as rotas do dashboard (descoberta via fs) * feat(homolog): L4c fluxo criar/revogar API key pela UI * fix(homolog): resiliencia real-environment — stream:false no smoke promptfoo, retry de socket keep-alive, key efemera com sufixo unico * feat(homolog): L5 orquestrador npm run homolog + relatorio CTRF unificado * docs(homolog): guia de operacao da suite + fragment de changelog + allowlist env-doc-sync * fix(homolog): paraleliza o sweep de rotas do dashboard (fullyParallel + 8 workers) * fix(homolog): isola outputs crus em homolog-report/raw para nao quebrar o ctrf merge * fix(homolog): outputDir absoluto do reporter CTRF da UI (path relativo escapava do worktree) * chore(quality): allowlist the 5 homolog-suite devDependencies (ctrf-io trio, httpyac, promptfoo) after registry verification * chore(quality): register the homolog Playwright suite as a test-discovery collector (run.mjs -> tests/homolog/ui)
16 lines
723 B
JavaScript
16 lines
723 B
JavaScript
/**
|
|
* Avaliação pura de paridade do deploy (testável sem rede).
|
|
* @param {{status?: string, version?: string}} health corpo de /api/monitoring/health
|
|
* @param {{expectedVersion: string, httpStatus: number}} ctx
|
|
* @returns {{ok: boolean, failures: string[]}}
|
|
*/
|
|
export function evaluateParity(health, ctx) {
|
|
const failures = [];
|
|
if (ctx.httpStatus !== 200) failures.push(`health HTTP ${ctx.httpStatus} (esperado 200)`);
|
|
if (health?.status !== "healthy")
|
|
failures.push(`status "${health?.status}" (esperado "healthy")`);
|
|
if (health?.version !== ctx.expectedVersion)
|
|
failures.push(`version "${health?.version}" (esperado "${ctx.expectedVersion}")`);
|
|
return { ok: failures.length === 0, failures };
|
|
}
|