diff --git a/package-lock.json b/package-lock.json index 900f85f1ae8..232fa31fc13 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,7 +20,7 @@ "vscode-nls-dev": "^4.0.4" }, "devDependencies": { - "@aws-toolkits/telemetry": "^1.0.289", + "@aws-toolkits/telemetry": "^1.0.293", "@playwright/browser-chromium": "^1.43.1", "@stylistic/eslint-plugin": "^2.11.0", "@types/he": "^1.2.3", @@ -6047,9 +6047,9 @@ } }, "node_modules/@aws-toolkits/telemetry": { - "version": "1.0.289", - "resolved": "https://registry.npmjs.org/@aws-toolkits/telemetry/-/telemetry-1.0.289.tgz", - "integrity": "sha512-srzr3JGMprOX2rrUAhribVBrUMfvR6uOhwksaxu63/GMTBjEWjwfcKzpgQzxu1+InmGioBa4zKdKKV/hAaUCmw==", + "version": "1.0.294", + "resolved": "https://registry.npmjs.org/@aws-toolkits/telemetry/-/telemetry-1.0.294.tgz", + "integrity": "sha512-Hy/yj93pFuHhKCqAA9FgNjdJHRi4huUnyl13dZLzzICDlFVl/AHlm9iWmm9LR22KOuXUyu3uX40VtXLdExIHqw==", "dev": true, "dependencies": { "ajv": "^6.12.6", diff --git a/package.json b/package.json index cb669449f9d..e14641a45c4 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,7 @@ "mergeReports": "ts-node ./scripts/mergeReports.ts" }, "devDependencies": { - "@aws-toolkits/telemetry": "^1.0.289", + "@aws-toolkits/telemetry": "^1.0.293", "@playwright/browser-chromium": "^1.43.1", "@stylistic/eslint-plugin": "^2.11.0", "@types/he": "^1.2.3", diff --git a/packages/amazonq/.changes/next-release/Bug Fix-cb743d9a-67da-41a2-bda3-9bc8bfa19b75.json b/packages/amazonq/.changes/next-release/Bug Fix-cb743d9a-67da-41a2-bda3-9bc8bfa19b75.json new file mode 100644 index 00000000000..b7532f7a199 --- /dev/null +++ b/packages/amazonq/.changes/next-release/Bug Fix-cb743d9a-67da-41a2-bda3-9bc8bfa19b75.json @@ -0,0 +1,4 @@ +{ + "type": "Bug Fix", + "description": "/test: for unsupported languages was sometimes unreliable" +} diff --git a/packages/core/src/amazonqTest/chat/controller/controller.ts b/packages/core/src/amazonqTest/chat/controller/controller.ts index 35e234cc01a..18bda05a87c 100644 --- a/packages/core/src/amazonqTest/chat/controller/controller.ts +++ b/packages/core/src/amazonqTest/chat/controller/controller.ts @@ -246,6 +246,7 @@ export class TestController { TelemetryHelper.instance.sendTestGenerationToolkitEvent( session, true, + true, isCancel ? 'Cancelled' : 'Failed', session.startTestGenerationRequestId, performance.now() - session.testGenerationStartTime, @@ -456,7 +457,14 @@ export class TestController { unsupportedMessage = `I'm sorry, but /test only supports Python and Java
I will still generate a suggestion below.` } this.messenger.sendMessage(unsupportedMessage, tabID, 'answer') - await this.onCodeGeneration(session, message.prompt, tabID, fileName, filePath) + await this.onCodeGeneration( + session, + message.prompt, + tabID, + fileName, + filePath, + workspaceFolder !== undefined + ) } else { this.messenger.sendCapabilityCard({ tabID }) this.messenger.sendMessage(testGenSummaryMessage(fileName), message.tabID, 'answer-part') @@ -722,6 +730,7 @@ export class TestController { TelemetryHelper.instance.sendTestGenerationToolkitEvent( session, true, + true, 'Succeeded', session.startTestGenerationRequestId, session.latencyOfTestGeneration, @@ -799,20 +808,21 @@ export class TestController { message: string, tabID: string, fileName: string, - filePath: string + filePath: string, + fileInWorkspace: boolean ) { try { // TODO: Write this entire gen response to basiccommands and call here. const editorText = await fs.readFileText(filePath) const triggerPayload = { - query: `Generate unit tests for the following part of my code: ${message}`, + query: `Generate unit tests for the following part of my code: ${message?.trim() || fileName}`, codeSelection: undefined, trigger: ChatTriggerType.ChatMessage, fileText: editorText, fileLanguage: session.fileLanguage, filePath: filePath, - message: `Generate unit tests for the following part of my code: ${message}`, + message: `Generate unit tests for the following part of my code: ${message?.trim() || fileName}`, matchPolicy: undefined, codeQuery: undefined, userIntent: UserIntent.GENERATE_UNIT_TESTS, @@ -827,7 +837,8 @@ export class TestController { tabID, randomUUID.toString(), triggerPayload, - fileName + fileName, + fileInWorkspace ) } finally { this.messenger.sendChatInputEnabled(tabID, true) @@ -843,6 +854,7 @@ export class TestController { TelemetryHelper.instance.sendTestGenerationToolkitEvent( session, true, + true, 'Succeeded', session.startTestGenerationRequestId, session.latencyOfTestGeneration, diff --git a/packages/core/src/amazonqTest/chat/controller/messenger/messenger.ts b/packages/core/src/amazonqTest/chat/controller/messenger/messenger.ts index 10b496b69d3..da47074acc2 100644 --- a/packages/core/src/amazonqTest/chat/controller/messenger/messenger.ts +++ b/packages/core/src/amazonqTest/chat/controller/messenger/messenger.ts @@ -183,7 +183,8 @@ export class Messenger { tabID: string, triggerID: string, triggerPayload: TriggerPayload, - fileName: string + fileName: string, + fileInWorkspace: boolean ) { let message = '' let messageId = response.$metadata.requestId ?? '' @@ -277,6 +278,7 @@ export class Messenger { TelemetryHelper.instance.sendTestGenerationToolkitEvent( session, false, + fileInWorkspace, 'Cancelled', messageId, performance.now() - session.testGenerationStartTime, @@ -291,6 +293,7 @@ export class Messenger { TelemetryHelper.instance.sendTestGenerationToolkitEvent( session, false, + fileInWorkspace, 'Succeeded', messageId, performance.now() - session.testGenerationStartTime diff --git a/packages/core/src/codewhisperer/util/telemetryHelper.ts b/packages/core/src/codewhisperer/util/telemetryHelper.ts index a34deb0cdca..5276d869bb9 100644 --- a/packages/core/src/codewhisperer/util/telemetryHelper.ts +++ b/packages/core/src/codewhisperer/util/telemetryHelper.ts @@ -70,6 +70,7 @@ export class TelemetryHelper { public sendTestGenerationToolkitEvent( session: Session, isSupportedLanguage: boolean, + isFileInWorkspace: boolean, result: 'Succeeded' | 'Failed' | 'Cancelled', requestId?: string, perfClientLatency?: number, @@ -90,6 +91,7 @@ export class TelemetryHelper { cwsprChatProgrammingLanguage: session.fileLanguage ?? 'plaintext', hasUserPromptSupplied: session.hasUserPromptSupplied, isSupportedLanguage: isSupportedLanguage, + isFileInWorkspace: isFileInWorkspace, result: result, artifactsUploadDuration: artifactsUploadDuration, buildPayloadBytes: buildPayloadBytes,