Skip to content

Commit 36e79f9

Browse files
committed
fix arn fetching
1 parent 47821ca commit 36e79f9

File tree

3 files changed

+49
-10
lines changed

3 files changed

+49
-10
lines changed

plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/AmazonQLanguageClientImpl.kt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,7 @@ import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.credential
1919
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.credentials.SsoProfileData
2020
import software.aws.toolkits.jetbrains.settings.CodeWhispererSettings
2121
import java.util.concurrent.CompletableFuture
22-
import migration.software.aws.toolkits.jetbrains.services.codewhisperer.customization.CodeWhispererModelConfigurator
23-
22+
import software.aws.toolkits.jetbrains.services.amazonq.profile.QRegionProfileManager
2423
/**
2524
* Concrete implementation of [AmazonQLanguageClient] to handle messages sent from server
2625
*/
@@ -94,7 +93,7 @@ class AmazonQLanguageClientImpl(private val project: Project) : AmazonQLanguageC
9493
add(
9594
AmazonQLspConfiguration(
9695
optOutTelemetry = AwsSettings.getInstance().isTelemetryEnabled,
97-
customization = CodeWhispererModelConfigurator.getInstance().activeCustomization(project)?.arn
96+
customization = QRegionProfileManager.getInstance().activeProfile(project)?.arn
9897
)
9998
)
10099
}

plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/AmazonQLspConstants.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ object AmazonQLspConstants {
77
const val AWS_BUILDER_ID_URL = "https://view.awsapps.com/start"
88
const val LSP_CW_CONFIGURATION_KEY = "aws.codeWhisperer"
99
const val LSP_CW_OPT_OUT_KEY = "shareCodeWhispererContentWithAWS"
10-
const val LSP_CODE_REFERENCES_OPT_OUT_KEY = "includeSuggestionsWithCodeReferences
10+
const val LSP_CODE_REFERENCES_OPT_OUT_KEY = "includeSuggestionsWithCodeReferences"
1111
const val LSP_Q_CONFIGURATION_KEY = "aws.q"
1212
const val LSP_OPT_OUT_TELEMETRY_CONFIGURATION_KEY = "optOutTelemetry"
1313
const val LSP_ENABLE_TELEMETRY_EVENTS_CONFIGURATION_KEY = "enableTelemetryEventsToDestination"

plugins/amazonq/shared/jetbrains-community/tst/software/aws/toolkits/jetbrains/services/amazonq/lsp/AmazonQLanguageClientImplTest.kt

Lines changed: 46 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,10 @@ import software.aws.toolkits.jetbrains.core.credentials.pinning.QConnection
2222
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.credentials.ConnectionMetadata
2323
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.credentials.SsoProfileData
2424
import software.aws.toolkits.jetbrains.settings.CodeWhispererSettings
25+
import io.mockk.mockkObject
26+
import software.aws.toolkits.jetbrains.services.amazonq.profile.QRegionProfile
27+
import software.aws.toolkits.jetbrains.services.amazonq.profile.QRegionProfileManager
28+
2529

2630
@ExtendWith(ApplicationExtension::class)
2731
class AmazonQLanguageClientImplTest {
@@ -127,25 +131,61 @@ class AmazonQLanguageClientImplTest {
127131
}
128132

129133
@Test
130-
fun `configuration for Amazon Q respects telemetry enabled`() {
131-
AwsSettings.getInstance().isTelemetryEnabled = true
134+
fun `configuration for Amazon Q respects telemetry disabled`() {
135+
// Mock ToolkitConnectionManager
136+
val mockConnectionManager = mockk<ToolkitConnectionManager>()
137+
every { project.service<ToolkitConnectionManager>() } returns mockConnectionManager
138+
139+
// Mock QRegionProfileManager
140+
val mockProfileManager = mockk<QRegionProfileManager>()
141+
mockkObject(QRegionProfileManager.Companion)
142+
every { QRegionProfileManager.getInstance() } returns mockProfileManager
143+
144+
// Mock the active profile with an ARN
145+
val mockProfile = mockk<QRegionProfile> {
146+
every { arn } returns "test:arn:123"
147+
}
148+
every { mockProfileManager.activeProfile(project) } returns mockProfile
149+
150+
// Mock AWS Settings
151+
AwsSettings.getInstance().isTelemetryEnabled = false
152+
132153
assertThat(sut.configuration(configurationParams("aws.q")).get())
133154
.singleElement()
134155
.isEqualTo(
135156
AmazonQLspConfiguration(
136-
optOutTelemetry = true
157+
optOutTelemetry = false,
158+
customization = "test:arn:123"
137159
)
138160
)
139161
}
140162

141163
@Test
142-
fun `configuration for Amazon Q respects telemetry disabled`() {
143-
AwsSettings.getInstance().isTelemetryEnabled = false
164+
fun `configuration for Amazon Q respects telemetry enabled`() {
165+
// Mock ToolkitConnectionManager
166+
val mockConnectionManager = mockk<ToolkitConnectionManager>()
167+
every { project.service<ToolkitConnectionManager>() } returns mockConnectionManager
168+
169+
// Mock QRegionProfileManager
170+
val mockProfileManager = mockk<QRegionProfileManager>()
171+
mockkObject(QRegionProfileManager.Companion)
172+
every { QRegionProfileManager.getInstance() } returns mockProfileManager
173+
174+
// Mock the active profile with an ARN
175+
val mockProfile = mockk<QRegionProfile> {
176+
every { arn } returns "test:arn:123"
177+
}
178+
every { mockProfileManager.activeProfile(project) } returns mockProfile
179+
180+
// Mock AWS Settings
181+
AwsSettings.getInstance().isTelemetryEnabled = true
182+
144183
assertThat(sut.configuration(configurationParams("aws.q")).get())
145184
.singleElement()
146185
.isEqualTo(
147186
AmazonQLspConfiguration(
148-
optOutTelemetry = false
187+
optOutTelemetry = true,
188+
customization = "test:arn:123"
149189
)
150190
)
151191
}

0 commit comments

Comments
 (0)