refactor: reduce approval context overhead
CI / Client installer (macos-latest) (push) Canceled after 0s
CI / Client installer (ubuntu-latest) (push) Canceled after 0s
CI / Client installer (windows-latest) (push) Canceled after 0s
CI / test (22) (push) Canceled after 0s
CI / test (24) (push) Canceled after 0s
CI / release-smoke (push) Canceled after 0s
CI / Client installer (macos-latest) (push) Canceled after 0s
CI / Client installer (ubuntu-latest) (push) Canceled after 0s
CI / Client installer (windows-latest) (push) Canceled after 0s
CI / test (22) (push) Canceled after 0s
CI / test (24) (push) Canceled after 0s
CI / release-smoke (push) Canceled after 0s
This commit is contained in:
+23
-2
@@ -1,11 +1,32 @@
|
||||
import assert from "node:assert/strict";
|
||||
import { mkdtempSync, readFileSync, statSync, writeFileSync } from "node:fs";
|
||||
import { mkdirSync, mkdtempSync, readFileSync, readdirSync, statSync, writeFileSync } from "node:fs";
|
||||
import { tmpdir } from "node:os";
|
||||
import { join } from "node:path";
|
||||
import test from "node:test";
|
||||
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
|
||||
import { InMemoryTransport } from "@modelcontextprotocol/sdk/inMemory.js";
|
||||
import { APPROVAL_ONBOARDING_EXAMPLES, RemoteBridge, bridgeAuthToolResult, createBridgeMcpServer } from "../src/bridge.js";
|
||||
import {
|
||||
APPROVAL_ONBOARDING_EXAMPLES, RemoteBridge, bridgeAuthToolResult, createBridgeMcpServer,
|
||||
syncBundledSkillForLegacyUpdate,
|
||||
} from "../src/bridge.js";
|
||||
|
||||
test("legacy updater post-install syncs the complete bundled Skill", () => {
|
||||
const root = mkdtempSync(join(tmpdir(), "ding-bridge-skill-sync-"));
|
||||
const bundled = join(root, "package", "skill", "dingtalk-approval");
|
||||
const statePath = join(root, "client", "state", "session.json");
|
||||
const target = join(root, "client", "skill", "dingtalk-approval");
|
||||
mkdirSync(join(bundled, "references"), { recursive: true });
|
||||
mkdirSync(target, { recursive: true });
|
||||
writeFileSync(join(bundled, "SKILL.md"), "new skill");
|
||||
writeFileSync(join(bundled, "references", "create-approval.md"), "create rules");
|
||||
writeFileSync(join(target, "SKILL.md"), "old skill");
|
||||
|
||||
syncBundledSkillForLegacyUpdate(statePath, bundled);
|
||||
|
||||
assert.equal(readFileSync(join(target, "SKILL.md"), "utf8"), "new skill");
|
||||
assert.equal(readFileSync(join(target, "references", "create-approval.md"), "utf8"), "create rules");
|
||||
assert.deepEqual(readdirSync(join(root, "client", "skill")), ["dingtalk-approval"]);
|
||||
});
|
||||
|
||||
test("stdio bridge creates a messenger-friendly device login challenge and protects local state", async () => {
|
||||
const calls: string[] = [];
|
||||
|
||||
Reference in New Issue
Block a user