Skip to content

Commit b7825d9

Browse files
authored
fix(amazonq): diagnostics code is incorrect (#6214)
## Problem Diagnostics in problems panel show findingId as code which doesn't add any value ## Solution Use ruleId instead --- - Treat all work as PUBLIC. Private `feature/x` branches will not be squash-merged at release time. - Your code changes must meet the guidelines in [CONTRIBUTING.md](https://github.com/aws/aws-toolkit-vscode/blob/master/CONTRIBUTING.md#guidelines). License: I confirm that my contribution is made under the terms of the Apache 2.0 license.
1 parent 4335e1e commit b7825d9

File tree

3 files changed

+19
-8
lines changed

3 files changed

+19
-8
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": "/review: Diagnostics in the problems panel are mapped to the wrong code"
4+
}

packages/amazonq/test/unit/codewhisperer/service/diagnosticsProvider.test.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ import {
1212
removeDiagnostic,
1313
disposeSecurityDiagnostic,
1414
SecurityDiagnostic,
15+
createSecurityDiagnostic,
16+
codewhispererDiagnosticSourceLabel,
1517
} from 'aws-core-vscode/codewhisperer'
1618
import { createCodeScanIssue, createMockDocument, createTextDocumentChangeEvent } from 'aws-core-vscode/test'
1719

@@ -83,4 +85,16 @@ describe('diagnosticsProvider', function () {
8385
assert.strictEqual(actual[1].range.start.line, 5)
8486
assert.strictEqual(actual[1].range.end.line, 6)
8587
})
88+
89+
it('should create securityDiagnostic from codeScanIssue', function () {
90+
const codeScanIssue = createCodeScanIssue()
91+
const securityDiagnostic = createSecurityDiagnostic(codeScanIssue)
92+
assert.strictEqual(securityDiagnostic.findingId, codeScanIssue.findingId)
93+
assert.strictEqual(securityDiagnostic.message, codeScanIssue.title)
94+
assert.strictEqual(securityDiagnostic.range.start.line, codeScanIssue.startLine)
95+
assert.strictEqual(securityDiagnostic.range.end.line, codeScanIssue.endLine)
96+
assert.strictEqual(securityDiagnostic.severity, vscode.DiagnosticSeverity.Warning)
97+
assert.strictEqual(securityDiagnostic.source, codewhispererDiagnosticSourceLabel)
98+
assert.strictEqual(securityDiagnostic.code, codeScanIssue.ruleId)
99+
})
86100
})

packages/core/src/codewhisperer/service/diagnosticsProvider.ts

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -74,14 +74,7 @@ export function createSecurityDiagnostic(securityIssue: CodeScanIssue) {
7474
vscode.DiagnosticSeverity.Warning
7575
)
7676
securityDiagnostic.source = codewhispererDiagnosticSourceLabel
77-
// const detectorUrl = securityIssue.recommendation.url
78-
securityDiagnostic.code = securityIssue.findingId
79-
// securityDiagnostic.code = detectorUrl
80-
// ? {
81-
// value: securityIssue.detectorId,
82-
// target: vscode.Uri.parse(detectorUrl),
83-
// }
84-
// : securityIssue.detectorId
77+
securityDiagnostic.code = securityIssue.ruleId
8578
securityDiagnostic.findingId = securityIssue.findingId
8679
return securityDiagnostic
8780
}

0 commit comments

Comments
 (0)