Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
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
Expand Up @@ -30,7 +30,7 @@ object CodeWhispererConstants {
const val POPUP_DELAY: Long = 250
const val POPUP_DELAY_CHECK_INTERVAL: Long = 25
const val IDLE_TIME_CHECK_INTERVAL: Long = 25
const val SUPPLEMENTAL_CONTEXT_TIMEOUT = 50L
const val SUPPLEMENTAL_CONTEXT_TIMEOUT = 100L
const val SUPPLEMETAL_CONTEXT_BUFFER = 10L

val AWSTemplateKeyWordsRegex = Regex("(AWSTemplateFormatVersion|Resources|AWS::|Description)")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ import org.junit.Test
import org.mockito.kotlin.any
import org.mockito.kotlin.argumentCaptor
import org.mockito.kotlin.doReturn
import org.mockito.kotlin.eq
import org.mockito.kotlin.mock
import org.mockito.kotlin.spy
import org.mockito.kotlin.times
Expand All @@ -35,6 +36,7 @@ import software.aws.toolkits.jetbrains.services.codewhisperer.customization.Code
import software.aws.toolkits.jetbrains.services.codewhisperer.customization.CodeWhispererModelConfigurator
import software.aws.toolkits.jetbrains.services.codewhisperer.language.CodeWhispererProgrammingLanguage
import software.aws.toolkits.jetbrains.services.codewhisperer.language.languages.CodeWhispererJava
import software.aws.toolkits.jetbrains.services.codewhisperer.model.CaretContext
import software.aws.toolkits.jetbrains.services.codewhisperer.model.CaretPosition
import software.aws.toolkits.jetbrains.services.codewhisperer.model.Chunk
import software.aws.toolkits.jetbrains.services.codewhisperer.model.FileContextInfo
Expand Down Expand Up @@ -93,6 +95,31 @@ class CodeWhispererServiceTest {
projectRule.project.replaceService(AwsConnectionManager::class.java, mock(), disposableRule.disposable)
}

@Test
fun `getRequestContext should use correct fileContext and timeout to fetch supplementalContext`() = runTest {
val fileContextProvider = FileContextProvider.getInstance(projectRule.project)
val fileContextProviderSpy = spy(fileContextProvider)
projectRule.project.replaceService(FileContextProvider::class.java, fileContextProviderSpy, disposableRule.disposable)

val requestContext = sut.getRequestContext(
TriggerTypeInfo(CodewhispererTriggerType.AutoTrigger, CodeWhispererAutomatedTriggerType.Enter()),
editor = projectRule.fixture.editor,
project = projectRule.project,
file,
LatencyContext()
)

requestContext.awaitSupplementalContext()
val fileContextCaptor = argumentCaptor<FileContextInfo>()
verify(fileContextProviderSpy, times(1)).extractSupplementalFileContext(eq(file), fileContextCaptor.capture(), eq(100))
assertThat(fileContextCaptor.firstValue).isEqualTo(FileContextInfo(
CaretContext(leftFileContext = "", rightFileContext = "public class Main {}", leftContextOnCurrentLine = ""),
"main.java",
CodeWhispererJava.INSTANCE,
"main.java"
))
}

@Test
fun `getRequestContext should have supplementalContext and customizatioArn if they're present`() {
whenever(customizationConfig.activeCustomization(projectRule.project)).thenReturn(
Expand Down
Loading