Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"type": "Bug Fix",
"description": "Amazon Q /test: Fix to redirect /test to generate tests in chat for external files out of workspace scope."
}
17 changes: 11 additions & 6 deletions packages/core/src/amazonqTest/chat/controller/controller.ts
Original file line number Diff line number Diff line change
Expand Up @@ -439,16 +439,21 @@ export class TestController {

const language = await this.getLanguageForFilePath(filePath)
session.fileLanguage = language
const workspaceFolder = vscode.workspace.getWorkspaceFolder(fileEditorToTest.document.uri)

/*
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
*/
if (language !== 'java' && language !== 'python') {
const unsupportedLanguage = language.charAt(0).toUpperCase() + language.slice(1)
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. `
// handle the case when language is undefined
if (!unsupportedLanguage) {
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. `
if (!['java', 'python'].includes(language) || workspaceFolder === undefined) {
let unsupportedMessage: string
const unsupportedLanguage = language ? language.charAt(0).toUpperCase() + language.slice(1) : ''
if (!workspaceFolder) {
// File is outside of workspace
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.`
} else if (unsupportedLanguage) {
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.`
} else {
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.`
}
this.messenger.sendMessage(unsupportedMessage, tabID, 'answer')
await this.onCodeGeneration(session, message.prompt, tabID, fileName, filePath)
Expand Down
Loading