chore: archive AgentDock v1 implementation
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
import assert from "node:assert/strict";
|
||||
import test from "node:test";
|
||||
import { buildLocalMulticaCallbackUrl, buildManagedMulticaLoginUrl, parseMulticaLoginOutput } from "./multica-oauth.js";
|
||||
|
||||
const output = `Waiting for authentication...\nhttps://mul.example/login?cli_callback=http%3A%2F%2Flocalhost%3A43239%2Fcallback&cli_state=nonce`;
|
||||
|
||||
test("parses Multica login output", () => {
|
||||
const parsed = parseMulticaLoginOutput(output);
|
||||
assert.equal(parsed.callbackUrl.port, "43239");
|
||||
assert.equal(parsed.state, "nonce");
|
||||
});
|
||||
|
||||
test("rewrites Multica login to the managed callback endpoint", () => {
|
||||
const loginUrl = new URL(buildManagedMulticaLoginUrl(output, "https://agent.example", "session-id"));
|
||||
assert.equal(loginUrl.searchParams.get("cli_callback"), "https://agent.example/api/integrations/multica/oauth/callback/session-id");
|
||||
});
|
||||
|
||||
test("builds the local callback only when state matches", () => {
|
||||
assert.equal(
|
||||
buildLocalMulticaCallbackUrl(output, { token: "secret", state: "nonce" }),
|
||||
"http://localhost:43239/callback?token=secret&state=nonce",
|
||||
);
|
||||
assert.throws(() => buildLocalMulticaCallbackUrl(output, { token: "secret", state: "wrong" }), /校验失败/);
|
||||
});
|
||||
Reference in New Issue
Block a user