Skip to content

Commit fd81f2e

Browse files
committed
fix: test
1 parent 3d46491 commit fd81f2e

File tree

3 files changed

+34
-16
lines changed

3 files changed

+34
-16
lines changed

packages/amazonq/src/app/inline/completion.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -361,8 +361,8 @@ export class AmazonQInlineCompletionItemProvider implements InlineCompletionItem
361361
},
362362
token,
363363
isAutoTrigger,
364-
getAllRecommendationsOptions,
365-
this.documentEventListener
364+
this.documentEventListener,
365+
getAllRecommendationsOptions
366366
)
367367
// get active item from session for displaying
368368
const items = this.sessionManager.getActiveRecommendation()

packages/amazonq/src/app/inline/recommendationService.ts

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -128,24 +128,27 @@ export class RecommendationService {
128128
// this is a best effort estimate of deletion
129129
const isTriggerByDeletion = documentEventListener.isLastEventDeletion(document.uri.fsPath)
130130

131-
const completionPromise: Promise<InlineCompletionListWithReferences> = languageClient.sendRequest(
132-
inlineCompletionWithReferencesRequestType.method,
133-
request,
134-
token
135-
)
131+
const ps: Promise<InlineCompletionListWithReferences>[] = []
132+
if (!isTriggerByDeletion && !request.partialResultToken) {
133+
const completionPromise: Promise<InlineCompletionListWithReferences> = languageClient.sendRequest(
134+
inlineCompletionWithReferencesRequestType.method,
135+
request,
136+
token
137+
)
138+
ps.push(completionPromise)
139+
}
136140

137141
const editPromise: Promise<InlineCompletionListWithReferences> = languageClient.sendRequest(
138142
editCompletionRequestType.method,
139143
request,
140144
token
141145
)
142-
143-
const p = isTriggerByDeletion ? [editPromise] : [editPromise, completionPromise]
146+
ps.push(editPromise)
144147

145148
getLogger().debug('Skip auto trigger of completion when deleting code')
146149

147-
let result = await Promise.race(p)
148-
if (p.length > 1 && result.items.length === 0) {
150+
let result = await Promise.race(ps)
151+
if (ps.length > 1 && result.items.length === 0) {
149152
result = await editPromise
150153
}
151154

packages/amazonq/test/unit/amazonq/apps/inline/recommendationService.test.ts

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@ import { CodeWhispererStatusBarManager } from 'aws-core-vscode/codewhisperer'
1616
import { globals } from 'aws-core-vscode/shared'
1717
import { DocumentEventListener } from '../../../../../src/app/inline/documentEventListener'
1818

19+
const completionApi = 'aws/textDocument/inlineCompletionWithReferences'
20+
const editApi = 'aws/textDocument/editCompletion'
21+
1922
describe('RecommendationService', () => {
2023
let languageClient: LanguageClient
2124
let sendRequestStub: sinon.SinonStub
@@ -144,8 +147,14 @@ describe('RecommendationService', () => {
144147
)
145148

146149
// Verify sendRequest was called with correct parameters
147-
assert(sendRequestStub.calledOnce)
148-
const requestArgs = sendRequestStub.firstCall.args[1]
150+
const cs = sendRequestStub.getCalls()
151+
const completionCalls = cs.filter((c) => c.firstArg === completionApi)
152+
const editCalls = cs.filter((c) => c.firstArg === editApi)
153+
assert.strictEqual(cs.length, 2)
154+
assert.strictEqual(completionCalls.length, 1)
155+
assert.strictEqual(editCalls.length, 1)
156+
157+
const requestArgs = completionCalls[0].args[1]
149158
assert.deepStrictEqual(requestArgs, {
150159
textDocument: {
151160
uri: 'file:///test.py',
@@ -188,8 +197,14 @@ describe('RecommendationService', () => {
188197
)
189198

190199
// Verify sendRequest was called with correct parameters
191-
assert(sendRequestStub.calledTwice)
192-
const firstRequestArgs = sendRequestStub.firstCall.args[1]
200+
const cs = sendRequestStub.getCalls()
201+
const completionCalls = cs.filter((c) => c.firstArg === completionApi)
202+
const editCalls = cs.filter((c) => c.firstArg === editApi)
203+
assert.strictEqual(cs.length, 3)
204+
assert.strictEqual(completionCalls.length, 2)
205+
assert.strictEqual(editCalls.length, 1)
206+
207+
const firstRequestArgs = completionCalls[0].args[1]
193208
const expectedRequestArgs = {
194209
textDocument: {
195210
uri: 'file:///test.py',
@@ -199,7 +214,7 @@ describe('RecommendationService', () => {
199214
documentChangeParams: undefined,
200215
openTabFilepaths: [],
201216
}
202-
const secondRequestArgs = sendRequestStub.secondCall.args[1]
217+
const secondRequestArgs = completionCalls[1].args[1]
203218
assert.deepStrictEqual(firstRequestArgs, expectedRequestArgs)
204219
assert.deepStrictEqual(secondRequestArgs, {
205220
...expectedRequestArgs,

0 commit comments

Comments
 (0)