@@ -3,6 +3,8 @@ package org.jetbrains.bsp.testkit.client
33import ch.epfl.scala.bsp4j.BuildClient
44import ch.epfl.scala.bsp4j.BuildServer
55import ch.epfl.scala.bsp4j.BuildServerCapabilities
6+ import ch.epfl.scala.bsp4j.CompileParams
7+ import ch.epfl.scala.bsp4j.CompileResult
68import ch.epfl.scala.bsp4j.CppOptionsParams
79import ch.epfl.scala.bsp4j.CppOptionsResult
810import ch.epfl.scala.bsp4j.DependencyModulesParams
@@ -20,6 +22,7 @@ import ch.epfl.scala.bsp4j.JvmRunEnvironmentParams
2022import ch.epfl.scala.bsp4j.JvmRunEnvironmentResult
2123import ch.epfl.scala.bsp4j.JvmTestEnvironmentParams
2224import ch.epfl.scala.bsp4j.JvmTestEnvironmentResult
25+ import ch.epfl.scala.bsp4j.PublishDiagnosticsParams
2326import ch.epfl.scala.bsp4j.PythonOptionsParams
2427import ch.epfl.scala.bsp4j.PythonOptionsResult
2528import ch.epfl.scala.bsp4j.ResourcesParams
@@ -42,6 +45,7 @@ import kotlinx.coroutines.coroutineScope
4245import kotlinx.coroutines.future.await
4346import kotlinx.coroutines.test.runTest
4447import org.jetbrains.bsp.testkit.JsonComparator
48+ import org.junit.jupiter.api.Assertions.assertIterableEquals
4549import java.nio.file.Path
4650import 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