|
5 | 5 | package software.aws.toolkits.jetbrains.services.amazonq.lsp |
6 | 6 |
|
7 | 7 | import com.google.gson.Gson |
| 8 | +import com.intellij.openapi.components.service |
| 9 | +import com.intellij.openapi.project.Project |
8 | 10 | import com.intellij.testFramework.ApplicationExtension |
| 11 | +import io.mockk.every |
| 12 | +import io.mockk.mockk |
9 | 13 | import org.assertj.core.api.Assertions.assertThat |
10 | 14 | import org.eclipse.lsp4j.ConfigurationItem |
11 | 15 | import org.eclipse.lsp4j.ConfigurationParams |
12 | 16 | import org.junit.jupiter.api.Test |
13 | 17 | import org.junit.jupiter.api.extension.ExtendWith |
| 18 | +import software.aws.toolkits.jetbrains.core.credentials.AwsBearerTokenConnection |
| 19 | +import software.aws.toolkits.jetbrains.core.credentials.ToolkitConnectionManager |
| 20 | +import software.aws.toolkits.jetbrains.core.credentials.pinning.QConnection |
| 21 | +import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.credentials.ConnectionMetadata |
| 22 | +import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.credentials.SsoProfileData |
14 | 23 | import software.aws.toolkits.jetbrains.settings.CodeWhispererSettings |
15 | 24 |
|
16 | 25 | @ExtendWith(ApplicationExtension::class) |
17 | 26 | class AmazonQLanguageClientImplTest { |
18 | | - private val sut = AmazonQLanguageClientImpl() |
| 27 | + private val project: Project = mockk(relaxed = true) |
| 28 | + private val sut = AmazonQLanguageClientImpl(project) |
| 29 | + |
| 30 | + @Test |
| 31 | + fun `getConnectionMetadata returns connection metadata with start URL for bearer token connection`() { |
| 32 | + val mockConnectionManager = mockk<ToolkitConnectionManager>() |
| 33 | + every { project.service<ToolkitConnectionManager>() } returns mockConnectionManager |
| 34 | + |
| 35 | + val expectedStartUrl = "https://test.aws.com" |
| 36 | + val mockConnection = mockk<AwsBearerTokenConnection> { |
| 37 | + every { startUrl } returns expectedStartUrl |
| 38 | + } |
| 39 | + |
| 40 | + every { mockConnectionManager.activeConnectionForFeature(QConnection.getInstance()) } returns mockConnection |
| 41 | + |
| 42 | + assertThat(sut.getConnectionMetadata().get()) |
| 43 | + .isEqualTo(ConnectionMetadata(SsoProfileData(expectedStartUrl))) |
| 44 | + } |
| 45 | + |
| 46 | + @Test |
| 47 | + fun `getConnectionMetadata returns empty start URL when no active connection`() { |
| 48 | + val mockConnectionManager = mockk<ToolkitConnectionManager>() |
| 49 | + every { project.service<ToolkitConnectionManager>() } returns mockConnectionManager |
| 50 | + |
| 51 | + every { mockConnectionManager.activeConnectionForFeature(QConnection.getInstance()) } returns null |
| 52 | + |
| 53 | + assertThat(sut.getConnectionMetadata().get()) |
| 54 | + .isEqualTo(ConnectionMetadata(SsoProfileData(AmazonQLspConstants.AWS_BUILDER_ID_URL))) |
| 55 | + } |
19 | 56 |
|
20 | 57 | @Test |
21 | 58 | fun `configuration null if no attributes requested`() { |
|
0 commit comments