Skip to content

Commit 571fb20

Browse files
committed
update supplementalContext timeout from 50 to 100ms
1 parent 53302d9 commit 571fb20

File tree

2 files changed

+28
-1
lines changed

2 files changed

+28
-1
lines changed

plugins/amazonq/codewhisperer/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codewhisperer/util/CodeWhispererConstants.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ object CodeWhispererConstants {
3030
const val POPUP_DELAY: Long = 250
3131
const val POPUP_DELAY_CHECK_INTERVAL: Long = 25
3232
const val IDLE_TIME_CHECK_INTERVAL: Long = 25
33-
const val SUPPLEMENTAL_CONTEXT_TIMEOUT = 50L
33+
const val SUPPLEMENTAL_CONTEXT_TIMEOUT = 100L
3434
const val SUPPLEMETAL_CONTEXT_BUFFER = 10L
3535

3636
val AWSTemplateKeyWordsRegex = Regex("(AWSTemplateFormatVersion|Resources|AWS::|Description)")

plugins/amazonq/codewhisperer/jetbrains-community/tst/software/aws/toolkits/jetbrains/services/codewhisperer/CodeWhispererServiceTest.kt

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import org.junit.Test
1919
import org.mockito.kotlin.any
2020
import org.mockito.kotlin.argumentCaptor
2121
import org.mockito.kotlin.doReturn
22+
import org.mockito.kotlin.eq
2223
import org.mockito.kotlin.mock
2324
import org.mockito.kotlin.spy
2425
import org.mockito.kotlin.times
@@ -35,6 +36,7 @@ import software.aws.toolkits.jetbrains.services.codewhisperer.customization.Code
3536
import software.aws.toolkits.jetbrains.services.codewhisperer.customization.CodeWhispererModelConfigurator
3637
import software.aws.toolkits.jetbrains.services.codewhisperer.language.CodeWhispererProgrammingLanguage
3738
import software.aws.toolkits.jetbrains.services.codewhisperer.language.languages.CodeWhispererJava
39+
import software.aws.toolkits.jetbrains.services.codewhisperer.model.CaretContext
3840
import software.aws.toolkits.jetbrains.services.codewhisperer.model.CaretPosition
3941
import software.aws.toolkits.jetbrains.services.codewhisperer.model.Chunk
4042
import software.aws.toolkits.jetbrains.services.codewhisperer.model.FileContextInfo
@@ -93,6 +95,31 @@ class CodeWhispererServiceTest {
9395
projectRule.project.replaceService(AwsConnectionManager::class.java, mock(), disposableRule.disposable)
9496
}
9597

98+
@Test
99+
fun `getRequestContext should use correct fileContext and timeout to fetch supplementalContext`() = runTest {
100+
val fileContextProvider = FileContextProvider.getInstance(projectRule.project)
101+
val fileContextProviderSpy = spy(fileContextProvider)
102+
projectRule.project.replaceService(FileContextProvider::class.java, fileContextProviderSpy, disposableRule.disposable)
103+
104+
val requestContext = sut.getRequestContext(
105+
TriggerTypeInfo(CodewhispererTriggerType.AutoTrigger, CodeWhispererAutomatedTriggerType.Enter()),
106+
editor = projectRule.fixture.editor,
107+
project = projectRule.project,
108+
file,
109+
LatencyContext()
110+
)
111+
112+
requestContext.awaitSupplementalContext()
113+
val fileContextCaptor = argumentCaptor<FileContextInfo>()
114+
verify(fileContextProviderSpy, times(1)).extractSupplementalFileContext(eq(file), fileContextCaptor.capture(), eq(100))
115+
assertThat(fileContextCaptor.firstValue).isEqualTo(FileContextInfo(
116+
CaretContext(leftFileContext = "", rightFileContext = "public class Main {}", leftContextOnCurrentLine = ""),
117+
"main.java",
118+
CodeWhispererJava.INSTANCE,
119+
"main.java"
120+
))
121+
}
122+
96123
@Test
97124
fun `getRequestContext should have supplementalContext and customizatioArn if they're present`() {
98125
whenever(customizationConfig.activeCustomization(projectRule.project)).thenReturn(

0 commit comments

Comments
 (0)