mirror of
https://github.com/Kilo-Org/kilocode.git
synced 2026-08-28 19:11:03 +08:00
Merge pull request #13432 from Kilo-Org/nimble-reef
test(jetbrains): stop frontend tests opening a real browser
This commit is contained in:
+2
@@ -24,6 +24,7 @@ import ai.kilocode.client.testing.TestCoroutines
|
||||
import ai.kilocode.client.testing.pumpEdt
|
||||
import ai.kilocode.client.testing.TestUiTimers
|
||||
import ai.kilocode.client.testing.fire
|
||||
import ai.kilocode.client.testing.installBrowser
|
||||
import ai.kilocode.client.ui.list.ActiveListBadge
|
||||
import ai.kilocode.client.ui.list.ActiveListItem
|
||||
import ai.kilocode.client.ui.list.ActiveListMetrics
|
||||
@@ -69,6 +70,7 @@ class AgentManagerPanelTest : BasePlatformTestCase() {
|
||||
|
||||
override fun setUp() {
|
||||
super.setUp()
|
||||
installBrowser()
|
||||
coroutines = TestCoroutines()
|
||||
rpc = FakeWorktreeRpcApi()
|
||||
service = KiloWorktreeService(coroutines.scope, rpc)
|
||||
|
||||
+2
@@ -4,6 +4,7 @@ import ai.kilocode.client.testing.FakeWorktreeRpcApi
|
||||
import ai.kilocode.client.testing.TestCoroutines
|
||||
import ai.kilocode.client.testing.pumpEdt
|
||||
import ai.kilocode.client.testing.TestUiTimers
|
||||
import ai.kilocode.client.testing.installBrowser
|
||||
import ai.kilocode.client.util.edtWait
|
||||
import ai.kilocode.rpc.dto.GhAvailability
|
||||
import com.intellij.openapi.application.ApplicationManager
|
||||
@@ -22,6 +23,7 @@ class GhBannerTest : BasePlatformTestCase() {
|
||||
|
||||
override fun setUp() {
|
||||
super.setUp()
|
||||
installBrowser()
|
||||
coroutines = TestCoroutines()
|
||||
rpc = FakeWorktreeRpcApi()
|
||||
timers = TestUiTimers()
|
||||
|
||||
+2
@@ -4,6 +4,7 @@ import ai.kilocode.client.testing.FakeWorktreeRpcApi
|
||||
import ai.kilocode.client.testing.TestCoroutines
|
||||
import ai.kilocode.client.testing.pumpEdt
|
||||
import ai.kilocode.client.testing.TestUiTimers
|
||||
import ai.kilocode.client.testing.installBrowser
|
||||
import ai.kilocode.client.util.edtWait
|
||||
import ai.kilocode.rpc.dto.GhAvailability
|
||||
import com.intellij.openapi.application.ApplicationManager
|
||||
@@ -21,6 +22,7 @@ class GhStatusCoordinatorTest : BasePlatformTestCase() {
|
||||
|
||||
override fun setUp() {
|
||||
super.setUp()
|
||||
installBrowser()
|
||||
coroutines = TestCoroutines()
|
||||
rpc = FakeWorktreeRpcApi()
|
||||
timers = TestUiTimers()
|
||||
|
||||
+3
@@ -4,6 +4,7 @@ import ai.kilocode.client.util.edtWait
|
||||
import ai.kilocode.client.app.KiloProviderService
|
||||
import ai.kilocode.client.plugin.KiloBundle
|
||||
import ai.kilocode.client.testing.FakeProviderRpcApi
|
||||
import ai.kilocode.client.testing.installBrowser
|
||||
import ai.kilocode.client.ui.UiStyle
|
||||
import ai.kilocode.client.ui.list.ActiveListActionCell
|
||||
import ai.kilocode.client.ui.list.ActiveListConfig
|
||||
@@ -985,6 +986,7 @@ class ProvidersSettingsUiTest : BasePlatformTestCase() {
|
||||
|
||||
fun `test provider oauth auto response shows device auth panel`() {
|
||||
val callback = CompletableDeferred<ai.kilocode.rpc.dto.ProviderActionResultDto>()
|
||||
val browser = installBrowser()
|
||||
val rpc = installProvider(
|
||||
ProviderSettingsDto(
|
||||
providers = listOf(provider("openai", "OpenAI")),
|
||||
@@ -1016,6 +1018,7 @@ class ProvidersSettingsUiTest : BasePlatformTestCase() {
|
||||
assertTrue(t, t.contains("Open Browser"))
|
||||
assertTrue(t, t.contains("Cancel"))
|
||||
assertEquals("https://auth.openai.com/device", fieldsByName(panel, "kilo.provider.oauth.url").single().text)
|
||||
assertEquals(listOf("https://auth.openai.com/device"), browser.urls)
|
||||
val qr = components(panel).filterIsInstance<JBLabel>().single { it.name == "kilo.provider.oauth.qr" }
|
||||
assertNotNull(qr.icon)
|
||||
}
|
||||
|
||||
+37
@@ -0,0 +1,37 @@
|
||||
package ai.kilocode.client.testing
|
||||
|
||||
import com.intellij.ide.browsers.BrowserLauncher
|
||||
import com.intellij.ide.browsers.WebBrowser
|
||||
import com.intellij.openapi.application.ApplicationManager
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.testFramework.fixtures.BasePlatformTestCase
|
||||
import com.intellij.testFramework.replaceService
|
||||
import java.nio.file.Path
|
||||
|
||||
class FakeBrowserLauncher : BrowserLauncher() {
|
||||
val urls = mutableListOf<String>()
|
||||
val files = mutableListOf<Path>()
|
||||
|
||||
override fun open(url: String) {
|
||||
urls.add(url)
|
||||
}
|
||||
|
||||
@Suppress("DEPRECATION")
|
||||
override fun browse(file: java.io.File) {
|
||||
files.add(file.toPath())
|
||||
}
|
||||
|
||||
override fun browse(file: Path) {
|
||||
files.add(file)
|
||||
}
|
||||
|
||||
override fun browse(url: String, browser: WebBrowser?, project: Project?) {
|
||||
urls.add(url)
|
||||
}
|
||||
}
|
||||
|
||||
fun BasePlatformTestCase.installBrowser(): FakeBrowserLauncher {
|
||||
val fake = FakeBrowserLauncher()
|
||||
ApplicationManager.getApplication().replaceService(BrowserLauncher::class.java, fake, testRootDisposable)
|
||||
return fake
|
||||
}
|
||||
Reference in New Issue
Block a user