


























@@ -1046,6 +1046,81 @@ describe("applyAuthChoice", () => {
10461046);
10471047});
104810481049+it("enables the owning plugin for manifest provider auth choices", async () => {
1050+await setupTempState();
1051+const provider = createFixedChoiceProvider({
1052+providerId: "github-copilot",
1053+label: "GitHub Copilot",
1054+choiceId: "github-copilot-github",
1055+method: {
1056+id: "github",
1057+label: "GitHub Copilot",
1058+kind: "token",
1059+run: vi.fn(
1060+async (): Promise<ProviderAuthResult> => ({
1061+profiles: [
1062+{
1063+profileId: "github-copilot:github",
1064+credential: {
1065+type: "token",
1066+provider: "github-copilot",
1067+token: "gho_copilot_test",
1068+},
1069+},
1070+],
1071+defaultModel: "github-copilot/claude-opus-4.7",
1072+}),
1073+),
1074+},
1075+});
1076+const manifestSpy = vi
1077+.spyOn(providerAuthChoices, "resolveManifestProviderAuthChoice")
1078+.mockReturnValue({
1079+pluginId: "github-copilot",
1080+providerId: "github-copilot",
1081+methodId: "github",
1082+choiceId: "github-copilot-github",
1083+choiceLabel: "GitHub Copilot",
1084+});
1085+providerAuthChoiceTesting.setDepsForTest({
1086+loadPluginProviderRuntime: async () => ({
1087+ resolvePluginProviders,
1088+resolvePluginSetupProvider: () => provider,
1089+ resolveProviderPluginChoice,
1090+ runProviderModelSelectedHook,
1091+}),
1092+});
1093+try {
1094+const result = await applyAuthChoice({
1095+authChoice: "github-copilot-github",
1096+config: { plugins: { entries: { "github-copilot": { enabled: false } } } },
1097+prompter: createPrompter({}),
1098+runtime: createExitThrowingRuntime(),
1099+setDefaultModel: true,
1100+preserveExistingDefaultModel: true,
1101+});
1102+1103+expect(result.config.plugins?.entries?.["github-copilot"]).toEqual({ enabled: true });
1104+expect(result.config.auth?.profiles?.["github-copilot:github"]).toMatchObject({
1105+provider: "github-copilot",
1106+mode: "token",
1107+});
1108+expect(resolveAgentModelPrimaryValue(result.config.agents?.defaults?.model)).toBe(
1109+"github-copilot/claude-opus-4.7",
1110+);
1111+} finally {
1112+manifestSpy.mockRestore();
1113+providerAuthChoiceTesting.setDepsForTest({
1114+loadPluginProviderRuntime: async () => ({
1115+ resolvePluginProviders,
1116+resolvePluginSetupProvider: () => undefined,
1117+ resolveProviderPluginChoice,
1118+ runProviderModelSelectedHook,
1119+}),
1120+});
1121+}
1122+});
1123+10491124it("uses explicit env for plugin auth resolution instead of host env", async () => {
10501125await setupTempState();
10511126process.env.OPENAI_API_KEY = "sk-openai-host"; // pragma: allowlist secret
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。