























@@ -6,10 +6,19 @@ import { registerModelsCli } from "./models-cli.js";
66const mocks = vi.hoisted(() => ({
77modelsStatusCommand: vi.fn().mockResolvedValue(undefined),
88noopAsync: vi.fn(async () => undefined),
9+modelsAuthAddCommand: vi.fn().mockResolvedValue(undefined),
910modelsAuthLoginCommand: vi.fn().mockResolvedValue(undefined),
11+modelsAuthPasteTokenCommand: vi.fn().mockResolvedValue(undefined),
12+modelsAuthSetupTokenCommand: vi.fn().mockResolvedValue(undefined),
1013}));
111412-const { modelsStatusCommand, modelsAuthLoginCommand } = mocks;
15+const {
16+ modelsAuthAddCommand,
17+ modelsAuthLoginCommand,
18+ modelsAuthPasteTokenCommand,
19+ modelsAuthSetupTokenCommand,
20+ modelsStatusCommand,
21+} = mocks;
13221423vi.mock("../commands/models.js", () => ({
1524modelsStatusCommand: mocks.modelsStatusCommand,
@@ -41,10 +50,10 @@ vi.mock("../commands/models/list.js", () => ({
4150modelsStatusCommand: mocks.modelsStatusCommand,
4251}));
4352vi.mock("../commands/models/auth.js", () => ({
44-modelsAuthAddCommand: mocks.noopAsync,
53+modelsAuthAddCommand: mocks.modelsAuthAddCommand,
4554modelsAuthLoginCommand: mocks.modelsAuthLoginCommand,
46-modelsAuthPasteTokenCommand: mocks.noopAsync,
47-modelsAuthSetupTokenCommand: mocks.noopAsync,
55+modelsAuthPasteTokenCommand: mocks.modelsAuthPasteTokenCommand,
56+modelsAuthSetupTokenCommand: mocks.modelsAuthSetupTokenCommand,
4857}));
4958vi.mock("../commands/models/auth-order.js", () => ({
5059modelsAuthOrderClearCommand: mocks.noopAsync,
@@ -80,7 +89,10 @@ vi.mock("../commands/models/set-image.js", () => ({
80898190describe("models cli", () => {
8291beforeEach(() => {
92+modelsAuthAddCommand.mockClear();
8393modelsAuthLoginCommand.mockClear();
94+modelsAuthPasteTokenCommand.mockClear();
95+modelsAuthSetupTokenCommand.mockClear();
8496modelsStatusCommand.mockClear();
8597});
8698@@ -108,16 +120,18 @@ describe("models cli", () => {
108120const login = auth?.commands.find((cmd) => cmd.name() === "login-github-copilot");
109121expect(login).toBeTruthy();
110122111-await program.parseAsync(["models", "auth", "login-github-copilot", "--yes"], {
112-from: "user",
113-});
123+await program.parseAsync(
124+["models", "auth", "--agent", "poe", "login-github-copilot", "--yes"],
125+{ from: "user" },
126+);
114127115128expect(modelsAuthLoginCommand).toHaveBeenCalledTimes(1);
116129expect(modelsAuthLoginCommand).toHaveBeenCalledWith(
117130expect.objectContaining({
118131provider: "github-copilot",
119132method: "device",
120133yes: true,
134+agent: "poe",
121135}),
122136expect.any(Object),
123137);
@@ -134,6 +148,43 @@ describe("models cli", () => {
134148);
135149});
136150151+it.each([
152+{
153+label: "add",
154+args: ["models", "auth", "--agent", "poe", "add"],
155+command: modelsAuthAddCommand,
156+expected: { agent: "poe" },
157+},
158+{
159+label: "login",
160+args: ["models", "auth", "--agent", "poe", "login", "--provider", "openai-codex"],
161+command: modelsAuthLoginCommand,
162+expected: { agent: "poe", provider: "openai-codex" },
163+},
164+{
165+label: "setup-token",
166+args: ["models", "auth", "--agent", "poe", "setup-token", "--provider", "anthropic"],
167+command: modelsAuthSetupTokenCommand,
168+expected: { agent: "poe", provider: "anthropic" },
169+},
170+{
171+label: "paste-token",
172+args: ["models", "auth", "--agent", "poe", "paste-token", "--provider", "anthropic"],
173+command: modelsAuthPasteTokenCommand,
174+expected: { agent: "poe", provider: "anthropic" },
175+},
176+{
177+label: "login-github-copilot",
178+args: ["models", "auth", "--agent", "poe", "login-github-copilot", "--yes"],
179+command: modelsAuthLoginCommand,
180+expected: { agent: "poe", provider: "github-copilot", method: "device", yes: true },
181+},
182+])("passes parent --agent to models auth $label", async ({ args, command, expected }) => {
183+await runModelsCommand(args);
184+185+expect(command).toHaveBeenCalledWith(expect.objectContaining(expected), expect.any(Object));
186+});
187+137188it("shows help for models auth without error exit", async () => {
138189const program = new Command();
139190program.exitOverride();
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。