Skip to content

Commit e85b0ed

Browse files
committed
fix ut
1 parent 7ec5868 commit e85b0ed

File tree

6 files changed

+31
-18
lines changed

6 files changed

+31
-18
lines changed

plugins/amazonq/codewhisperer/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codewhisperer/customization/CodeWhispererCustomizationDialog.kt

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -109,8 +109,12 @@ class CodeWhispererCustomizationDialog(
109109
RadioButtonOption.Customization -> run {
110110
CodeWhispererModelConfigurator.getInstance().switchCustomization(project, modal.selectedCustomization?.customization)
111111
notifyCustomizationIsSelected(project, modal.selectedCustomization)
112-
if (modal.selectedCustomization?.customization?.profile?.arn != QRegionProfileManager.getInstance().activeProfile(project)?.arn){
113-
QRegionProfileManager.getInstance().switchProfile(project, modal.selectedCustomization?.customization?.profile, QProfileSwitchIntent.Customization)
112+
if (modal.selectedCustomization?.customization?.profile?.arn != QRegionProfileManager.getInstance().activeProfile(project)?.arn) {
113+
QRegionProfileManager.getInstance().switchProfile(
114+
project,
115+
modal.selectedCustomization?.customization?.profile,
116+
QProfileSwitchIntent.Customization
117+
)
114118
}
115119
}
116120
}
@@ -190,7 +194,7 @@ class CodeWhispererCustomizationDialog(
190194
val baseSorted = unsorted.sortedWith(
191195
compareBy<CustomizationUiItem> {
192196
it.customization.profile?.profileName != activeProfile?.profileName
193-
}.thenBy { it.customization.profile?.profileName ?: "" }
197+
}.thenBy { it.customization.profile?.profileName.orEmpty() }
194198
.thenBy { it.customization.name }
195199
)
196200

plugins/amazonq/codewhisperer/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codewhisperer/customization/CodeWhispererModelConfigurator.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ class DefaultCodeWhispererModelConfigurator : CodeWhispererModelConfigurator, Pe
112112
override fun listCustomizations(project: Project, passive: Boolean): List<CustomizationUiItem>? =
113113
calculateIfIamIdentityCenterConnection(project) {
114114
// 1. invoke API and get result
115-
val listAvailableProfilesResult = tryOrNull { QRegionProfileManager.getInstance().listRegionProfiles(project) } ?: emptyList()
115+
val listAvailableProfilesResult = tryOrNull { QRegionProfileManager.getInstance().listRegionProfiles(project) }.orEmpty()
116116

117117
val aggregatedCustomizations = mutableListOf<CodeWhispererCustomization>()
118118

@@ -148,7 +148,7 @@ class DefaultCodeWhispererModelConfigurator : CodeWhispererModelConfigurator, Pe
148148
// (1) update the customization list snapshot (seen by users last time) if it will be displayed
149149
if (passive) {
150150
connectionIdToIsAllowlisted[it.id] = aggregatedCustomizations.isNotEmpty()
151-
if (diff?.isNotEmpty() == true && !hasShownNewCustomizationNotification.getAndSet(true)) {
151+
if (diff.isNotEmpty() && !hasShownNewCustomizationNotification.getAndSet(true)) {
152152
notifyNewCustomization(project)
153153
}
154154
} else {

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

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ import software.aws.toolkits.jetbrains.core.credentials.pinning.QConnection
6565
import software.aws.toolkits.jetbrains.core.credentials.sono.Q_SCOPES
6666
import software.aws.toolkits.jetbrains.core.credentials.sono.SONO_REGION
6767
import software.aws.toolkits.jetbrains.services.amazonq.FEATURE_EVALUATION_PRODUCT_NAME
68+
import software.aws.toolkits.jetbrains.services.amazonq.profile.QRegionProfile
6869
import software.aws.toolkits.jetbrains.services.codewhisperer.CodeWhispererTestUtil.metadata
6970
import software.aws.toolkits.jetbrains.services.codewhisperer.CodeWhispererTestUtil.pythonRequest
7071
import software.aws.toolkits.jetbrains.services.codewhisperer.CodeWhispererTestUtil.pythonResponseWithToken
@@ -189,13 +190,13 @@ class CodeWhispererClientAdaptorTest {
189190
on { client.listAvailableCustomizationsPaginator(any<ListAvailableCustomizationsRequest>()) } doReturn sdkIterable
190191
}
191192

192-
val actual = sut.listAvailableCustomizations()
193+
val actual = sut.listAvailableCustomizations(QRegionProfile("fake_profile", "fake arn"))
193194
assertThat(actual).hasSize(3)
194195
assertThat(actual).isEqualTo(
195196
listOf(
196-
CodeWhispererCustomization(name = "custom-1", arn = "arn-1"),
197-
CodeWhispererCustomization(name = "custom-2", arn = "arn-2"),
198-
CodeWhispererCustomization(name = "custom-3", arn = "arn-3")
197+
CodeWhispererCustomization(name = "custom-1", arn = "arn-1", profile = QRegionProfile("fake_profile", "fake arn")),
198+
CodeWhispererCustomization(name = "custom-2", arn = "arn-2", profile = QRegionProfile("fake_profile", "fake arn")),
199+
CodeWhispererCustomization(name = "custom-3", arn = "arn-3", profile = QRegionProfile("fake_profile", "fake arn"))
199200
)
200201
)
201202
}

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ import software.aws.toolkits.jetbrains.core.credentials.ToolkitConnectionManager
3535
import software.aws.toolkits.jetbrains.core.credentials.pinning.QConnection
3636
import software.aws.toolkits.jetbrains.core.credentials.sono.SONO_URL
3737
import software.aws.toolkits.jetbrains.services.amazonq.CodeWhispererFeatureConfigService
38+
import software.aws.toolkits.jetbrains.services.amazonq.profile.QRegionProfile
3839
import software.aws.toolkits.jetbrains.services.amazonq.profile.QRegionProfileManager
3940
import kotlin.reflect.full.memberFunctions
4041
import kotlin.test.Test
@@ -78,7 +79,7 @@ class CodeWhispererFeatureConfigServiceTest {
7879

7980
projectRule.project.replaceService(
8081
QRegionProfileManager::class.java,
81-
mock<QRegionProfileManager> { on { getQClient(any<Project>(), eq(CodeWhispererRuntimeClient::class)) } doReturn mockClient },
82+
mock<QRegionProfileManager> { on { getQClient(any<Project>(), eq(QRegionProfile()), eq(CodeWhispererRuntimeClient::class)) } doReturn mockClient },
8283
disposableRule.disposable
8384
)
8485

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

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ import software.aws.toolkits.jetbrains.core.credentials.sono.isSono
4242
import software.aws.toolkits.jetbrains.core.region.MockRegionProviderRule
4343
import software.aws.toolkits.jetbrains.services.amazonq.CodeWhispererFeatureConfigService
4444
import software.aws.toolkits.jetbrains.services.amazonq.FeatureContext
45+
import software.aws.toolkits.jetbrains.services.amazonq.profile.QRegionProfile
4546
import software.aws.toolkits.jetbrains.services.amazonq.profile.QRegionProfileSelectedListener
4647
import software.aws.toolkits.jetbrains.services.codewhisperer.credentials.CodeWhispererClientAdaptor
4748
import software.aws.toolkits.jetbrains.services.codewhisperer.customization.CodeWhispererCustomization
@@ -431,7 +432,7 @@ class CodeWhispererModelConfiguratorTest {
431432

432433
this.connectionIdToActiveCustomizationArn.putAll(
433434
mapOf(
434-
"fake-sso-url" to CodeWhispererCustomization(arn = "arn_2", name = "name_2", description = "description_2")
435+
"fake-sso-url" to CodeWhispererCustomization(arn = "arn_2", name = "name_2", description = "description_2", profile = QRegionProfile(profileName = "myActiveProfile", arn = "arn:aws:codewhisperer:us-west-2:123456789012:profile/myActiveProfile"))
435436
)
436437
)
437438

@@ -450,6 +451,12 @@ class CodeWhispererModelConfiguratorTest {
450451
"<option name=\"arn\" value=\"arn_2\" />" +
451452
"<option name=\"name\" value=\"name_2\" />" +
452453
"<option name=\"description\" value=\"description_2\" />" +
454+
"<option name=\"profile\">" +
455+
"<QRegionProfile>" +
456+
"<option name=\"arn\" value=\"arn:aws:codewhisperer:us-west-2:123456789012:profile/myActiveProfile\" />" +
457+
"<option name=\"profileName\" value=\"myActiveProfile\" />" +
458+
"</QRegionProfile>" +
459+
"</option>" +
453460
"</CodeWhispererCustomization>" +
454461
"</value>" +
455462
"</entry>" +
@@ -577,7 +584,7 @@ class CodeWhispererModelConfiguratorTest {
577584
val fakeCustomizations = listOf(
578585
CodeWhispererCustomization("oldArn", "oldName", "oldDescription")
579586
)
580-
mockClintAdaptor.stub { on { listAvailableCustomizations() } doReturn fakeCustomizations }
587+
mockClintAdaptor.stub { on { listAvailableCustomizations(QRegionProfile("fake_name", "fake_arn")) } doReturn fakeCustomizations }
581588

582589
ApplicationManager.getApplication().messageBus
583590
.syncPublisher(QRegionProfileSelectedListener.TOPIC)
@@ -596,7 +603,7 @@ class CodeWhispererModelConfiguratorTest {
596603
val fakeCustomizations = listOf(
597604
CodeWhispererCustomization("newArn", "newName", "newDescription")
598605
)
599-
mockClintAdaptor.stub { on { listAvailableCustomizations() } doReturn fakeCustomizations }
606+
mockClintAdaptor.stub { on { listAvailableCustomizations(QRegionProfile("fake_name", "fake_arn")) } doReturn fakeCustomizations }
600607

601608
val latch = CountDownLatch(1)
602609

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

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ class QRegionProfileManagerTest {
178178
client.stub {
179179
onGeneric { listAvailableProfilesPaginator(any<Consumer<ListAvailableProfilesRequest.Builder>>()) } doReturn iterable
180180
}
181-
val connectionSettings = sut.getQClientSettings(project)
181+
val connectionSettings = sut.getQClientSettings(project, null)
182182
resourceCache.addEntry(connectionSettings, QProfileResources.LIST_REGION_PROFILES, QProfileResources.LIST_REGION_PROFILES.fetch(connectionSettings))
183183

184184
assertThat(sut.listRegionProfiles(project))
@@ -234,7 +234,7 @@ class QRegionProfileManagerTest {
234234
sut.activeProfile(project)
235235
).isEqualTo(QRegionProfile(arn = "arn:aws:codewhisperer:eu-central-1:123456789012:profile/FOO_PROFILE", profileName = "FOO_PROFILE"))
236236

237-
val settings = sut.getQClientSettings(project)
237+
val settings = sut.getQClientSettings(project, null)
238238
assertThat(settings.region.id).isEqualTo(Region.EU_CENTRAL_1.id())
239239

240240
sut.switchProfile(
@@ -246,7 +246,7 @@ class QRegionProfileManagerTest {
246246
sut.activeProfile(project)
247247
).isEqualTo(QRegionProfile(arn = "arn:aws:codewhisperer:us-east-1:123456789012:profile/BAR_PROFILE", profileName = "BAR_PROFILE"))
248248

249-
val settings2 = sut.getQClientSettings(project)
249+
val settings2 = sut.getQClientSettings(project, null)
250250
assertThat(settings2.region.id).isEqualTo(Region.US_EAST_1.id())
251251
}
252252

@@ -262,7 +262,7 @@ class QRegionProfileManagerTest {
262262
assertThat(
263263
sut.activeProfile(project)
264264
).isEqualTo(QRegionProfile(arn = "arn:aws:codewhisperer:eu-central-1:123456789012:profile/FOO_PROFILE", profileName = "FOO_PROFILE"))
265-
assertThat(sut.getQClientSettings(project).region.id).isEqualTo(Region.EU_CENTRAL_1.id())
265+
assertThat(sut.getQClientSettings(project, null).region.id).isEqualTo(Region.EU_CENTRAL_1.id())
266266

267267
val client = sut.getQClient<CodeWhispererRuntimeClient>(project)
268268
assertThat(client).isInstanceOf(CodeWhispererRuntimeClient::class.java)
@@ -279,7 +279,7 @@ class QRegionProfileManagerTest {
279279
assertThat(
280280
sut.activeProfile(project)
281281
).isEqualTo(QRegionProfile(arn = "arn:aws:codewhisperer:us-east-1:123456789012:profile/BAR_PROFILE", profileName = "BAR_PROFILE"))
282-
assertThat(sut.getQClientSettings(project).region.id).isEqualTo(Region.US_EAST_1.id())
282+
assertThat(sut.getQClientSettings(project,null).region.id).isEqualTo(Region.US_EAST_1.id())
283283

284284
val client2 = sut.getQClient<CodeWhispererRuntimeClient>(project)
285285
assertThat(client2).isInstanceOf(CodeWhispererRuntimeClient::class.java)

0 commit comments

Comments
 (0)