Skip to content

Commit e86f57b

Browse files
committed
chore(ai-config): add framework to analytics post
1 parent 2e65cd7 commit e86f57b

2 files changed

Lines changed: 10 additions & 9 deletions

File tree

packages/cli/lib/commands/ai-config.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,8 @@ const command: CommandModule = {
199199
GoogleAnalytics.post({
200200
t: "event",
201201
ec: "$ig ai-config",
202-
ea: `agent: ${result.agents.join(", ") || "none"}; assistant: ${result.assistants.join(", ") || "none"}`
202+
ea: `agent: ${result.agents.join(", ") || "none"}; assistant: ${result.assistants.join(", ") || "none"}`,
203+
cd1: framework
203204
});
204205
}
205206
};

spec/unit/ai-config-spec.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -293,7 +293,7 @@ describe("Unit - ai-config command", () => {
293293
required: true
294294
}));
295295
expect(GoogleAnalytics.post).toHaveBeenCalledWith(jasmine.objectContaining({ t: "screenview", cd: "Ai Config" }));
296-
expect(GoogleAnalytics.post).toHaveBeenCalledWith(jasmine.objectContaining({ t: "event", ea: "agent: claude; assistant: vscode" }));
296+
expect(GoogleAnalytics.post).toHaveBeenCalledWith(jasmine.objectContaining({ t: "event", ea: "agent: claude; assistant: vscode", cd1: "angular" }));
297297
});
298298

299299
it("uses defaults without prompting when canPrompt returns false", async () => {
@@ -304,7 +304,7 @@ describe("Unit - ai-config command", () => {
304304
await aiConfig.default.handler({ _: ["ai-config"], $0: "ig", framework: "angular" });
305305

306306
expect(InquirerWrapper.checkbox).not.toHaveBeenCalled();
307-
expect(GoogleAnalytics.post).toHaveBeenCalledWith(jasmine.objectContaining({ t: "event", ea: "agent: generic, claude; assistant: generic" }));
307+
expect(GoogleAnalytics.post).toHaveBeenCalledWith(jasmine.objectContaining({ t: "event", ea: "agent: generic, claude; assistant: generic", cd1: "angular" }));
308308
});
309309

310310
it("logs skipping and does not post analytics when none is selected", async () => {
@@ -316,7 +316,7 @@ describe("Unit - ai-config command", () => {
316316

317317
expect(Util.log).toHaveBeenCalledWith(jasmine.stringContaining("Skipping"));
318318
expect(GoogleAnalytics.post).toHaveBeenCalledWith(jasmine.objectContaining({ t: "screenview", cd: "Ai Config" }));
319-
expect(GoogleAnalytics.post).toHaveBeenCalledWith(jasmine.objectContaining({ t: "event", ea: "agent: none; assistant: none" }));
319+
expect(GoogleAnalytics.post).toHaveBeenCalledWith(jasmine.objectContaining({ t: "event", ea: "agent: none; assistant: none", cd1: "angular" }));
320320
});
321321

322322
it("still configures MCP when none is selected for skills", async () => {
@@ -334,7 +334,7 @@ describe("Unit - ai-config command", () => {
334334
const config = writtenConfig(mockFs);
335335
expect(config.servers).toBeDefined();
336336
expect(GoogleAnalytics.post).toHaveBeenCalledWith(jasmine.objectContaining({ t: "screenview", cd: "Ai Config" }));
337-
expect(GoogleAnalytics.post).toHaveBeenCalledWith(jasmine.objectContaining({ ea: "agent: none; assistant: vscode" }));
337+
expect(GoogleAnalytics.post).toHaveBeenCalledWith(jasmine.objectContaining({ ea: "agent: none; assistant: vscode", cd1: "angular" }));
338338
expect(InquirerWrapper.checkbox).toHaveBeenCalledTimes(2);
339339
expect(
340340
(Util.log as jasmine.Spy).calls.allArgs()
@@ -356,7 +356,7 @@ describe("Unit - ai-config command", () => {
356356
expect(InquirerWrapper.checkbox).toHaveBeenCalledWith(jasmine.objectContaining({
357357
message: "Which AI agents do you want to generate skills and instructions for?"
358358
}));
359-
expect(GoogleAnalytics.post).toHaveBeenCalledWith(jasmine.objectContaining({ ea: "agent: claude, cursor; assistant: vscode" }));
359+
expect(GoogleAnalytics.post).toHaveBeenCalledWith(jasmine.objectContaining({ ea: "agent: claude, cursor; assistant: vscode", cd1: "angular" }));
360360
});
361361

362362
it("skips prompt when --agent is provided", async () => {
@@ -369,7 +369,7 @@ describe("Unit - ai-config command", () => {
369369
expect(InquirerWrapper.checkbox).not.toHaveBeenCalledWith(jasmine.objectContaining({
370370
message: "Which AI agents do you want to generate skills and instructions for?"
371371
}));
372-
expect(GoogleAnalytics.post).toHaveBeenCalledWith(jasmine.objectContaining({ ea: "agent: cursor; assistant: vscode" }));
372+
expect(GoogleAnalytics.post).toHaveBeenCalledWith(jasmine.objectContaining({ ea: "agent: cursor; assistant: vscode", cd1: "angular" }));
373373
});
374374

375375
it("skips assistant prompt when --assistant is provided", async () => {
@@ -440,7 +440,7 @@ describe("Unit - ai-config command", () => {
440440

441441
expect(coreDetect.detectFramework).toHaveBeenCalled();
442442
expect(InquirerWrapper.select).not.toHaveBeenCalled();
443-
expect(GoogleAnalytics.post).toHaveBeenCalledWith(jasmine.objectContaining({ t: "event" }));
443+
expect(GoogleAnalytics.post).toHaveBeenCalledWith(jasmine.objectContaining({ t: "event", cd1: "react" }));
444444
});
445445

446446
it("prompts for framework when --framework is absent and detection returns null", async () => {
@@ -453,7 +453,7 @@ describe("Unit - ai-config command", () => {
453453
expect(InquirerWrapper.select).toHaveBeenCalledWith(jasmine.objectContaining({
454454
message: "Choose framework:"
455455
}));
456-
expect(GoogleAnalytics.post).toHaveBeenCalledWith(jasmine.objectContaining({ t: "event" }));
456+
expect(GoogleAnalytics.post).toHaveBeenCalledWith(jasmine.objectContaining({ t: "event", cd1: "angular" }));
457457
});
458458

459459
it("shows framework choices from template manager when prompting", async () => {

0 commit comments

Comments
 (0)