Skip to content

Commit 3462993

Browse files
authored
Merge pull request #45 from tgodzik/add-test-compile
improvement: Add testCompile to test actual compilation
2 parents a53e52e + 57fac63 commit 3462993

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

bsp-testkit/client/MockClient.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,9 @@ open class MockClient : BuildClient {
4242
val didChangeBuildTargetNotifications: List<DidChangeBuildTarget>
4343
get() = didChangeBuildTarget
4444

45+
fun clearDiagnostics() {
46+
publishDiagnostics.clear()
47+
}
4548
override fun onBuildShowMessage(params: ShowMessageParams) {
4649
showMessage.add(params)
4750
}

bsp-testkit/client/TestClient.kt

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ package org.jetbrains.bsp.testkit.client
33
import ch.epfl.scala.bsp4j.BuildClient
44
import ch.epfl.scala.bsp4j.BuildServer
55
import ch.epfl.scala.bsp4j.BuildServerCapabilities
6+
import ch.epfl.scala.bsp4j.CompileParams
7+
import ch.epfl.scala.bsp4j.CompileResult
68
import ch.epfl.scala.bsp4j.CppOptionsParams
79
import ch.epfl.scala.bsp4j.CppOptionsResult
810
import ch.epfl.scala.bsp4j.DependencyModulesParams
@@ -20,6 +22,7 @@ import ch.epfl.scala.bsp4j.JvmRunEnvironmentParams
2022
import ch.epfl.scala.bsp4j.JvmRunEnvironmentResult
2123
import ch.epfl.scala.bsp4j.JvmTestEnvironmentParams
2224
import ch.epfl.scala.bsp4j.JvmTestEnvironmentResult
25+
import ch.epfl.scala.bsp4j.PublishDiagnosticsParams
2326
import ch.epfl.scala.bsp4j.PythonOptionsParams
2427
import ch.epfl.scala.bsp4j.PythonOptionsResult
2528
import ch.epfl.scala.bsp4j.ResourcesParams
@@ -42,6 +45,7 @@ import kotlinx.coroutines.coroutineScope
4245
import kotlinx.coroutines.future.await
4346
import kotlinx.coroutines.test.runTest
4447
import org.jetbrains.bsp.testkit.JsonComparator
48+
import org.junit.jupiter.api.Assertions.assertIterableEquals
4549
import java.nio.file.Path
4650
import kotlin.time.Duration
4751

@@ -147,6 +151,16 @@ class TestClient(
147151
}
148152
}
149153

154+
fun testCompile(timeout: Duration, params: CompileParams, expectedResult: CompileResult, expectedDiagnostics: List<PublishDiagnosticsParams>) {
155+
val transformedParams = applyJsonTransform(params)
156+
test(timeout) { session, _ ->
157+
session.client.clearDiagnostics()
158+
val result = session.server.buildTargetCompile(transformedParams).await()
159+
assertIterableEquals(expectedDiagnostics, session.client.publishDiagnosticsNotifications)
160+
assertJsonEquals(expectedResult, result)
161+
}
162+
}
163+
150164
fun testWorkspaceTargets(timeout: Duration, expectedResult: WorkspaceBuildTargetsResult) {
151165
test(timeout) { session, _ ->
152166
val result = session.server.workspaceBuildTargets().await()

0 commit comments

Comments
 (0)