Skip to content

Commit 73170b9

Browse files
authored
Merge pull request #6 from sdjnmxd/feature/ktlint-fixes
Feature/ktlint fixes
2 parents 86cff9f + 8b4e803 commit 73170b9

File tree

2 files changed

+56
-7
lines changed

2 files changed

+56
-7
lines changed

src/main/kotlin/com/bangbang93/openbmclapi/agent/Application.kt

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,14 @@ import com.bangbang93.openbmclapi.agent.service.CertificateService
77
import com.bangbang93.openbmclapi.agent.service.ClusterService
88
import com.bangbang93.openbmclapi.agent.service.TokenManager
99
import io.github.oshai.kotlinlogging.KotlinLogging
10-
import io.ktor.server.application.*
11-
import io.ktor.server.engine.*
12-
import io.ktor.server.netty.*
13-
import kotlinx.coroutines.launch
10+
import io.ktor.server.application.Application
11+
import io.ktor.server.application.ApplicationEnvironment
12+
import io.ktor.server.application.ApplicationStopPreparing
13+
import io.ktor.server.application.ServerReady
14+
import io.ktor.server.engine.connector
15+
import io.ktor.server.engine.embeddedServer
16+
import io.ktor.server.engine.sslConnector
17+
import io.ktor.server.netty.Netty
1418
import kotlinx.coroutines.runBlocking
1519
import org.koin.core.context.startKoin
1620
import org.koin.ksp.generated.module

src/test/kotlin/ApplicationTest.kt

Lines changed: 48 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,66 @@
11
package com.bangbang93.openbmclapi
22

3-
import com.bangbang93.openbmclapi.agent.module
3+
import com.bangbang93.openbmclapi.agent.AppModule
4+
import com.bangbang93.openbmclapi.agent.config.ClusterConfig
5+
import com.bangbang93.openbmclapi.agent.model.Counters
6+
import com.bangbang93.openbmclapi.agent.storage.IStorage
47
import io.ktor.client.request.get
58
import io.ktor.client.statement.bodyAsText
69
import io.ktor.http.HttpStatusCode
710
import io.ktor.server.testing.testApplication
11+
import io.mockk.coEvery
12+
import io.mockk.mockk
13+
import kotlinx.coroutines.runBlocking
14+
import org.koin.core.context.GlobalContext
15+
import org.koin.core.context.startKoin
16+
import org.koin.core.context.stopKoin
17+
import org.koin.dsl.module
18+
import org.koin.ksp.generated.module
19+
import kotlin.test.AfterTest
20+
import kotlin.test.BeforeTest
821
import kotlin.test.Test
922
import kotlin.test.assertEquals
1023
import kotlin.test.assertTrue
24+
import com.bangbang93.openbmclapi.agent.module as appModule
1125

1226
class ApplicationTest {
27+
@BeforeTest
28+
fun setupKoin() {
29+
// 启动全局 Koin 容器(与当前初始化职责一致:main 启动,测试手动启动)
30+
startKoin {
31+
modules(
32+
AppModule().module,
33+
module {
34+
single {
35+
ClusterConfig(
36+
clusterId = "test-cluster",
37+
clusterSecret = "test-secret",
38+
)
39+
}
40+
single<IStorage> {
41+
mockk<IStorage> {
42+
coEvery { check() } returns true
43+
coEvery { init() } returns Unit
44+
}
45+
}
46+
single { Counters() }
47+
},
48+
)
49+
}
50+
}
51+
52+
@AfterTest
53+
fun tearDownKoin() {
54+
// 清理全局容器,防止测试间相互影响
55+
if (GlobalContext.getOrNull() != null) stopKoin()
56+
}
57+
1358
@Test
1459
fun `主页返回OK`() =
1560
testApplication {
16-
// Arrange
61+
// Arrange:直接调用真实 module()(suspend),以扩展接收者形式传入 Application
1762
application {
18-
module()
63+
runBlocking { this@application.appModule() }
1964
}
2065

2166
// Act

0 commit comments

Comments
 (0)