mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-08-26 09:02:11 +03:00
⭐5 — Health-check failures compartilhavam o mesmo caminho de escrita de terminalStatus que requests reais, banindo conexão por health-check falho (403) por um ano. Novo helper origin-aware centraliza toda escrita terminal; health-check só loga, request real desativa como antes. TDD, 6/6 testes, lint/typecheck/cycles OK.
35 lines
1.9 KiB
TypeScript
35 lines
1.9 KiB
TypeScript
import { test } from "node:test";
|
|
import assert from "node:assert/strict";
|
|
import fs from "node:fs"; import os from "node:os"; import path from "node:path";
|
|
|
|
const DIR = fs.mkdtempSync(path.join(os.tmpdir(), "omniroute-t11-"));
|
|
process.env.DATA_DIR = DIR;
|
|
const core = await import("../../src/lib/db/core.ts");
|
|
const { createProviderConnection } = await import("../../src/lib/db/providers.ts");
|
|
const { runAsProbe } = await import("../../src/shared/utils/probeOrigin.ts");
|
|
const { writeTerminalStatus } = await import("../../src/shared/utils/terminalStatus.ts");
|
|
|
|
test.after(() => { core.resetDbInstance(); fs.rmSync(DIR, {recursive:true, force:true}); });
|
|
|
|
function row(id: string){ return (core.getDbInstance() as any).prepare("SELECT is_active, test_status FROM provider_connections WHERE id=?").get(id); }
|
|
|
|
test("probe-origin writeTerminalStatus records error but never deactivates", async () => {
|
|
const conn = await createProviderConnection({ provider:"openai", authType:"apikey", name:"t11", apiKey:"sk-t11", isActive:true, testStatus:"active" } as any);
|
|
const id = String((conn as any).id);
|
|
await runAsProbe(async () => {
|
|
await writeTerminalStatus(id, { testStatus:"banned", isActive:false, lastError:"probe 403", errorCode:"403", lastErrorType:"FORBIDDEN" }, "probe");
|
|
});
|
|
const r = row(id);
|
|
assert.equal(r.is_active, 1); // probe n'a jamais désactivé
|
|
assert.equal(r.test_status, "active"); // terminal non posé
|
|
});
|
|
|
|
test("production writeTerminalStatus deactivates on terminal", async () => {
|
|
const conn = await createProviderConnection({ provider:"openai", authType:"apikey", name:"t11b", apiKey:"sk-t11b", isActive:true, testStatus:"active" } as any);
|
|
const id = String((conn as any).id);
|
|
await writeTerminalStatus(id, { testStatus:"banned", isActive:false, lastError:"real 403", errorCode:"403", lastErrorType:"FORBIDDEN" }, "production");
|
|
const r = row(id);
|
|
assert.equal(r.is_active, 0);
|
|
assert.equal(r.test_status, "banned");
|
|
});
|