diff --git a/src/commands/onboard-non-interactive.provider-auth.e2e.test.ts b/src/commands/onboard-non-interactive.provider-auth.e2e.test.ts index eb1d17f3cf5..188bfae6aa1 100644 --- a/src/commands/onboard-non-interactive.provider-auth.e2e.test.ts +++ b/src/commands/onboard-non-interactive.provider-auth.e2e.test.ts @@ -446,76 +446,60 @@ describe("onboard (non-interactive): provider auth", () => { }); }, 60_000); - it("stores Cloudflare AI Gateway API key and metadata", async () => { - await withOnboardEnv("openclaw-onboard-cf-gateway-", async ({ configPath, runtime }) => { - await runNonInteractive( - { - nonInteractive: true, - authChoice: "cloudflare-ai-gateway-api-key", - cloudflareAiGatewayAccountId: "cf-account-id", - cloudflareAiGatewayGatewayId: "cf-gateway-id", - cloudflareAiGatewayApiKey: "cf-gateway-test-key", - skipHealth: true, - skipChannels: true, - skipSkills: true, - json: true, - }, - runtime, - ); + it.each([ + { + name: "stores Cloudflare AI Gateway API key and metadata", + prefix: "openclaw-onboard-cf-gateway-", + options: { + authChoice: "cloudflare-ai-gateway-api-key", + }, + }, + { + name: "infers Cloudflare auth choice from API key flags", + prefix: "openclaw-onboard-cf-gateway-infer-", + options: {}, + }, + ])( + "$name", + async ({ prefix, options }) => { + await withOnboardEnv(prefix, async ({ configPath, runtime }) => { + await runNonInteractive( + { + nonInteractive: true, + cloudflareAiGatewayAccountId: "cf-account-id", + cloudflareAiGatewayGatewayId: "cf-gateway-id", + cloudflareAiGatewayApiKey: "cf-gateway-test-key", + skipHealth: true, + skipChannels: true, + skipSkills: true, + json: true, + ...options, + }, + runtime, + ); - const cfg = await readJsonFile<{ - auth?: { profiles?: Record }; - agents?: { defaults?: { model?: { primary?: string } } }; - }>(configPath); + const cfg = await readJsonFile<{ + auth?: { profiles?: Record }; + agents?: { defaults?: { model?: { primary?: string } } }; + }>(configPath); - expect(cfg.auth?.profiles?.["cloudflare-ai-gateway:default"]?.provider).toBe( - "cloudflare-ai-gateway", - ); - expect(cfg.auth?.profiles?.["cloudflare-ai-gateway:default"]?.mode).toBe("api_key"); - expect(cfg.agents?.defaults?.model?.primary).toBe("cloudflare-ai-gateway/claude-sonnet-4-5"); - await expectApiKeyProfile({ - profileId: "cloudflare-ai-gateway:default", - provider: "cloudflare-ai-gateway", - key: "cf-gateway-test-key", - metadata: { accountId: "cf-account-id", gatewayId: "cf-gateway-id" }, + expect(cfg.auth?.profiles?.["cloudflare-ai-gateway:default"]?.provider).toBe( + "cloudflare-ai-gateway", + ); + expect(cfg.auth?.profiles?.["cloudflare-ai-gateway:default"]?.mode).toBe("api_key"); + expect(cfg.agents?.defaults?.model?.primary).toBe( + "cloudflare-ai-gateway/claude-sonnet-4-5", + ); + await expectApiKeyProfile({ + profileId: "cloudflare-ai-gateway:default", + provider: "cloudflare-ai-gateway", + key: "cf-gateway-test-key", + metadata: { accountId: "cf-account-id", gatewayId: "cf-gateway-id" }, + }); }); - }); - }, 60_000); - - it("infers Cloudflare auth choice from API key flags", async () => { - await withOnboardEnv("openclaw-onboard-cf-gateway-infer-", async ({ configPath, runtime }) => { - await runNonInteractive( - { - nonInteractive: true, - cloudflareAiGatewayAccountId: "cf-account-id", - cloudflareAiGatewayGatewayId: "cf-gateway-id", - cloudflareAiGatewayApiKey: "cf-gateway-test-key", - skipHealth: true, - skipChannels: true, - skipSkills: true, - json: true, - }, - runtime, - ); - - const cfg = await readJsonFile<{ - auth?: { profiles?: Record }; - agents?: { defaults?: { model?: { primary?: string } } }; - }>(configPath); - - expect(cfg.auth?.profiles?.["cloudflare-ai-gateway:default"]?.provider).toBe( - "cloudflare-ai-gateway", - ); - expect(cfg.auth?.profiles?.["cloudflare-ai-gateway:default"]?.mode).toBe("api_key"); - expect(cfg.agents?.defaults?.model?.primary).toBe("cloudflare-ai-gateway/claude-sonnet-4-5"); - await expectApiKeyProfile({ - profileId: "cloudflare-ai-gateway:default", - provider: "cloudflare-ai-gateway", - key: "cf-gateway-test-key", - metadata: { accountId: "cf-account-id", gatewayId: "cf-gateway-id" }, - }); - }); - }, 60_000); + }, + 60_000, + ); it("infers Together auth choice from --together-api-key and sets default model", async () => { await withOnboardEnv("openclaw-onboard-together-infer-", async ({ configPath, runtime }) => {