Skip to content

Commit 26fe595

Browse files
authored
Merge pull request #6321 from ashishrp-aws/failure-fix
fix(amazonq): fix for /test for files outside of workspace.
2 parents 5e1a94b + d9f7093 commit 26fe595

File tree

2 files changed

+15
-6
lines changed

2 files changed

+15
-6
lines changed
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"type": "Bug Fix",
3+
"description": "Amazon Q /test: Fix to redirect /test to generate tests in chat for external files out of workspace scope."
4+
}

packages/core/src/amazonqTest/chat/controller/controller.ts

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -439,16 +439,21 @@ export class TestController {
439439

440440
const language = await this.getLanguageForFilePath(filePath)
441441
session.fileLanguage = language
442+
const workspaceFolder = vscode.workspace.getWorkspaceFolder(fileEditorToTest.document.uri)
442443

443444
/*
444445
For Re:Invent 2024 we are supporting only java and python for unit test generation, rest of the languages shows the similar experience as CWC
445446
*/
446-
if (language !== 'java' && language !== 'python') {
447-
const unsupportedLanguage = language.charAt(0).toUpperCase() + language.slice(1)
448-
let unsupportedMessage = `<span style="color: #EE9D28;">&#9888;<b>I'm sorry, but /test only supports Python and Java</b><br></span> While ${unsupportedLanguage} is not supported, I will generate a suggestion below. `
449-
// handle the case when language is undefined
450-
if (!unsupportedLanguage) {
451-
unsupportedMessage = `<span style="color: #EE9D28;">&#9888;<b>I'm sorry, but /test only supports Python and Java</b><br></span> I will still generate a suggestion below. `
447+
if (!['java', 'python'].includes(language) || workspaceFolder === undefined) {
448+
let unsupportedMessage: string
449+
const unsupportedLanguage = language ? language.charAt(0).toUpperCase() + language.slice(1) : ''
450+
if (!workspaceFolder) {
451+
// File is outside of workspace
452+
unsupportedMessage = `<span style="color: #EE9D28;">&#9888;<b>I can't generate tests for ${fileName}</b> because the file is outside of workspace scope.<br></span> I can still provide examples, instructions and code suggestions.`
453+
} else if (unsupportedLanguage) {
454+
unsupportedMessage = `<span style="color: #EE9D28;">&#9888;<b>I'm sorry, but /test only supports Python and Java</b><br></span> While ${unsupportedLanguage} is not supported, I will generate a suggestion below.`
455+
} else {
456+
unsupportedMessage = `<span style="color: #EE9D28;">&#9888;<b>I'm sorry, but /test only supports Python and Java</b><br></span> I will still generate a suggestion below.`
452457
}
453458
this.messenger.sendMessage(unsupportedMessage, tabID, 'answer')
454459
await this.onCodeGeneration(session, message.prompt, tabID, fileName, filePath)

0 commit comments

Comments
 (0)