Skip to content

Commit 77b0e9f

Browse files
committed
test(amazonq): Add more debugging information for failing inline states
1 parent 1d060f7 commit 77b0e9f

File tree

1 file changed

+26
-11
lines changed

1 file changed

+26
-11
lines changed

packages/amazonq/test/e2e/inline/inline.test.ts

Lines changed: 26 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,16 @@ describe('Amazon Q Inline', async function () {
4242

4343
afterEach(async function () {
4444
await closeAllEditors()
45+
if (this.currentTest?.state === undefined || this.currentTest?.isFailed() || this.currentTest?.isPending()) {
46+
const events = getEvents('codewhisperer_userTriggerDecision')
47+
console.table({
48+
'telemetry events': JSON.stringify(events),
49+
'suggestions states': JSON.stringify(session.suggestionStates),
50+
'valid recommendation': RecommendationHandler.instance.isValidResponse(),
51+
'recommendation service status': RecommendationService.instance.isRunning,
52+
recommendations: session.recommendations,
53+
})
54+
}
4555
})
4656

4757
async function setupEditor({ name, contents }: { name?: string; contents?: string } = {}) {
@@ -82,19 +92,23 @@ describe('Amazon Q Inline', async function () {
8292
})
8393
return events.some((event) => event.codewhispererSuggestionState === suggestionState)
8494
}, waitOptions)
85-
const events = globals.telemetry.logger
86-
.query({
87-
metricName,
88-
})
89-
.map((e) => collectionUtil.partialClone(e, 3, ['credentialStartUrl'], '[omitted]'))
9095
if (!ok) {
91-
assert.fail(`Telemetry failed to be emitted. Current events: ${JSON.stringify(events)}`)
96+
assert.fail(`Telemetry for ${metricName} with suggestionState ${suggestionState} was not emitted`)
9297
}
98+
const events = getEvents(metricName)
9399
if (events.length > 1 && events[events.length - 1].codewhispererSuggestionState !== suggestionState) {
94-
assert.fail(`Telemetry events were emitted in the wrong order. Current events: ${JSON.stringify(events)}`)
100+
assert.fail(`Telemetry events were emitted in the wrong order`)
95101
}
96102
}
97103

104+
function getEvents(metricName: string) {
105+
return globals.telemetry.logger
106+
.query({
107+
metricName,
108+
})
109+
.map((e) => collectionUtil.partialClone(e, 3, ['credentialStartUrl'], '[omitted]'))
110+
}
111+
98112
for (const [name, invokeCompletion] of [
99113
['automatic', async () => await vscode.commands.executeCommand('type', { text: '\n' })],
100114
['manual', async () => Commands.tryExecute('aws.amazonq.invokeInlineCompletion')],
@@ -121,10 +135,11 @@ describe('Amazon Q Inline', async function () {
121135
* the file. Wait for that initial request to settle before doing anything
122136
*/
123137
await waitUntil(async () => {
124-
console.log(
125-
`Waiting for recommenation to service to settle. Current status: ${RecommendationService.instance.isRunning}`
126-
)
127-
return !RecommendationService.instance.isRunning
138+
console.table({
139+
'recommendation status': RecommendationService.instance.isRunning,
140+
'session id': session.sessionId,
141+
})
142+
return !RecommendationService.instance.isRunning && session.sessionId === ''
128143
}, waitOptions)
129144

130145
await invokeCompletion()

0 commit comments

Comments
 (0)