Files
diegosouzapw--omniroute/tests/unit/inspector-kind-detector.test.ts
2026-07-13 13:39:12 +08:00

98 lines
3.3 KiB
TypeScript

import test from "node:test";
import assert from "node:assert/strict";
import { detectKind } from "../../src/mitm/inspector/kindDetector.ts";
import type { InterceptedRequest } from "../../src/mitm/inspector/types.ts";
function makeReq(overrides: Partial<InterceptedRequest>): InterceptedRequest {
return {
id: "00000000-0000-0000-0000-000000000001",
source: "agent-bridge",
timestamp: new Date().toISOString(),
method: "POST",
host: "random.example.com",
path: "/api/data",
requestHeaders: {},
requestBody: null,
requestSize: 0,
responseHeaders: {},
responseBody: null,
responseSize: 0,
status: 200,
...overrides,
};
}
test("detectKind — api.openai.com → llm", () => {
assert.equal(detectKind(makeReq({ host: "api.openai.com" })), "llm");
});
test("detectKind — api.anthropic.com → llm", () => {
assert.equal(detectKind(makeReq({ host: "api.anthropic.com" })), "llm");
});
test("detectKind — generativelanguage.googleapis.com → llm", () => {
assert.equal(detectKind(makeReq({ host: "generativelanguage.googleapis.com" })), "llm");
});
test("detectKind — openrouter.ai → llm", () => {
assert.equal(detectKind(makeReq({ host: "openrouter.ai" })), "llm");
});
test("detectKind — azure openai subdomain → llm", () => {
assert.equal(detectKind(makeReq({ host: "mycompany.openai.azure.com" })), "llm");
});
test("detectKind — api.mistral.ai → llm", () => {
assert.equal(detectKind(makeReq({ host: "api.mistral.ai" })), "llm");
});
test("detectKind — api.groq.com → llm", () => {
assert.equal(detectKind(makeReq({ host: "api.groq.com" })), "llm");
});
test("detectKind — body with messages array → llm", () => {
const req = makeReq({
requestBody: JSON.stringify({ messages: [{ role: "user", content: "Hello" }] }),
});
assert.equal(detectKind(req), "llm");
});
test("detectKind — body with contents array (Gemini) → llm", () => {
const req = makeReq({
requestBody: JSON.stringify({ contents: [{ parts: [{ text: "Hello" }] }] }),
});
assert.equal(detectKind(req), "llm");
});
test("detectKind — UA 'antigravity/1.0' → llm", () => {
assert.equal(
detectKind(makeReq({ requestHeaders: { "user-agent": "antigravity/1.0" } })),
"llm",
);
});
test("detectKind — random.example.com with no clues → unknown", () => {
assert.equal(detectKind(makeReq({ host: "random.example.com" })), "unknown");
});
test("detectKind — returns 'unknown' when nothing is detectable (empty body, no UA, unknown host)", () => {
const req = makeReq({
host: "internal.example.corp",
path: "/api/v2/resource",
requestBody: null,
requestHeaders: {},
});
assert.equal(detectKind(req), "unknown");
});
test("detectKind — non-LLM JSON body → app", () => {
const req = makeReq({
requestBody: JSON.stringify({ userId: 42, action: "click" }),
});
assert.equal(detectKind(req), "app");
});
test("detectKind — path /v1/chat/completions → llm", () => {
assert.equal(detectKind(makeReq({ path: "/v1/chat/completions" })), "llm");
});
test("detectKind — path /v1/messages → llm", () => {
assert.equal(detectKind(makeReq({ path: "/v1/messages" })), "llm");
});
test("detectKind — path /generateContent → llm", () => {
assert.equal(detectKind(makeReq({ path: "/v1beta/models/gemini-pro:generateContent" })), "llm");
});