mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-08-19 13:42:09 +03:00
Compare commits
1 Commits
feat/docke
...
test/mcp-e
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4e214dab99 |
@@ -1,4 +1,4 @@
|
||||
import { describe, it, beforeEach } from "node:test";
|
||||
import { describe, it, beforeEach, after } from "node:test";
|
||||
import assert from "node:assert/strict";
|
||||
import { mkdtempSync } from "node:fs";
|
||||
import { tmpdir } from "node:os";
|
||||
@@ -6,6 +6,24 @@ import { join } from "node:path";
|
||||
|
||||
process.env.DATA_DIR = mkdtempSync(join(tmpdir(), "omniroute-ccr-mcp-"));
|
||||
|
||||
// `resolveCcrPrincipal` dá precedência a `resolveMcpCallerApiKeyId()`, que cai em
|
||||
// `OMNIROUTE_API_KEY`/`ROUTER_API_KEY` no transporte stdio. Estes testes gravam blocos
|
||||
// com um principal LITERAL ("tenant-a") e leem pelos handlers MCP: com a env presente no
|
||||
// shell, o handler resolve um principal diferente e todo bloco vira "not found" — red
|
||||
// fantasma que não reproduz no CI, onde a env não existe. A precondição era implícita;
|
||||
// aqui ela passa a ser declarada. Mesmo idioma de api-key-lifecycle e cli-remote-mode.
|
||||
const ORIGINAL_OMNIROUTE_API_KEY = process.env.OMNIROUTE_API_KEY;
|
||||
const ORIGINAL_ROUTER_API_KEY = process.env.ROUTER_API_KEY;
|
||||
delete process.env.OMNIROUTE_API_KEY;
|
||||
delete process.env.ROUTER_API_KEY;
|
||||
|
||||
after(() => {
|
||||
if (ORIGINAL_OMNIROUTE_API_KEY === undefined) delete process.env.OMNIROUTE_API_KEY;
|
||||
else process.env.OMNIROUTE_API_KEY = ORIGINAL_OMNIROUTE_API_KEY;
|
||||
if (ORIGINAL_ROUTER_API_KEY === undefined) delete process.env.ROUTER_API_KEY;
|
||||
else process.env.ROUTER_API_KEY = ORIGINAL_ROUTER_API_KEY;
|
||||
});
|
||||
|
||||
const ccr = await import("../../../open-sse/services/compression/engines/ccr/index.ts");
|
||||
const tools = await import("../../../open-sse/mcp-server/tools/compressionTools.ts");
|
||||
const schemas = await import("../../../open-sse/mcp-server/schemas/tools.ts");
|
||||
|
||||
@@ -18,6 +18,22 @@ import assert from "node:assert/strict";
|
||||
// call. If `extra` is dropped, the caller resolves to "anonymous", the store key
|
||||
// misses, and retrieval errors out.
|
||||
|
||||
// A precondição deste teste é que NÃO exista um principal de API key resolvível: ele
|
||||
// prova que o `extra` chega ao handler comparando o principal derivado de `clientId`. Com
|
||||
// `OMNIROUTE_API_KEY` no shell, `resolveMcpCallerApiKeyId()` resolve primeiro e mascara
|
||||
// exatamente o que o teste mede — red fantasma local que não reproduz no CI.
|
||||
const ORIGINAL_OMNIROUTE_API_KEY = process.env.OMNIROUTE_API_KEY;
|
||||
const ORIGINAL_ROUTER_API_KEY = process.env.ROUTER_API_KEY;
|
||||
delete process.env.OMNIROUTE_API_KEY;
|
||||
delete process.env.ROUTER_API_KEY;
|
||||
|
||||
test.after(() => {
|
||||
if (ORIGINAL_OMNIROUTE_API_KEY === undefined) delete process.env.OMNIROUTE_API_KEY;
|
||||
else process.env.OMNIROUTE_API_KEY = ORIGINAL_OMNIROUTE_API_KEY;
|
||||
if (ORIGINAL_ROUTER_API_KEY === undefined) delete process.env.ROUTER_API_KEY;
|
||||
else process.env.ROUTER_API_KEY = ORIGINAL_ROUTER_API_KEY;
|
||||
});
|
||||
|
||||
const { createMcpServer } = await import("../../open-sse/mcp-server/server.ts");
|
||||
const { storeBlock, resetCcrStore } = await import(
|
||||
"../../open-sse/services/compression/engines/ccr/index.ts"
|
||||
|
||||
Reference in New Issue
Block a user