mirror of
https://github.com/logancyang/obsidian-copilot.git
synced 2026-07-22 07:50:24 +00:00
Squashed from 8 commits on zero/acp-test: - feat(agent-mode): introduce Agent Mode feature (squashed) - Fix eslint - hide add context button - chore: ban parent-relative imports and rewrite existing ones to @/ aliases - wip(agent-mode): skills management + slash command revamp - fix(agent-mode): initialize SkillManager before preload probes - fix(build): align svgr jsxRuntime with tsconfig classic jsx - fix(test): stub ItemView/WorkspaceLeaf in ChatSingleMessage obsidian mock
42 lines
1.6 KiB
TypeScript
42 lines
1.6 KiB
TypeScript
import type { CopilotSettings } from "@/settings/model";
|
|
import { getActiveBackendDescriptor, listBackendDescriptors } from "./registry";
|
|
import { OpencodeBackendDescriptor } from "./opencode/descriptor";
|
|
|
|
jest.mock("@/agentMode/backends/opencode/OpencodeInstallModal", () => ({
|
|
OpencodeInstallModal: class {},
|
|
}));
|
|
jest.mock("@/components/modals/ConfirmModal", () => ({ ConfirmModal: class {} }));
|
|
jest.mock("@/components/ui/setting-item", () => ({ SettingItem: () => null }));
|
|
jest.mock("@/components/ui/button", () => ({ Button: () => null }));
|
|
jest.mock("@/components/ui/input", () => ({ Input: () => null }));
|
|
jest.mock("@/logger", () => ({ logInfo: jest.fn(), logWarn: jest.fn(), logError: jest.fn() }));
|
|
jest.mock("obsidian", () => ({
|
|
Modal: class {},
|
|
Notice: class {},
|
|
Platform: { isMobile: false },
|
|
}));
|
|
|
|
describe("backendRegistry", () => {
|
|
const baseSettings = (activeBackend?: string): CopilotSettings =>
|
|
({
|
|
agentMode: {
|
|
enabled: true,
|
|
byok: {},
|
|
mcpServers: [],
|
|
activeBackend: activeBackend ?? "opencode",
|
|
backends: { opencode: {} },
|
|
},
|
|
}) as unknown as CopilotSettings;
|
|
|
|
it("returns the OpenCode descriptor by default", () => {
|
|
expect(getActiveBackendDescriptor(baseSettings())).toBe(OpencodeBackendDescriptor);
|
|
});
|
|
|
|
it("falls back to OpenCode when an unknown backend is selected", () => {
|
|
expect(getActiveBackendDescriptor(baseSettings("nonexistent"))).toBe(OpencodeBackendDescriptor);
|
|
});
|
|
|
|
it("listBackendDescriptors includes OpenCode", () => {
|
|
expect(listBackendDescriptors()).toContain(OpencodeBackendDescriptor);
|
|
});
|
|
});
|