Skip to content

Commit

Permalink
Merge pull request #45 from tgodzik/add-test-compile
Browse files Browse the repository at this point in the history
improvement: Add testCompile to test actual compilation
  • Loading branch information
agluszak committed Apr 12, 2024
2 parents a53e52e + 57fac63 commit 3462993
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 0 deletions.
3 changes: 3 additions & 0 deletions bsp-testkit/client/MockClient.kt
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,9 @@ open class MockClient : BuildClient {
val didChangeBuildTargetNotifications: List<DidChangeBuildTarget>
get() = didChangeBuildTarget

fun clearDiagnostics() {
publishDiagnostics.clear()
}
override fun onBuildShowMessage(params: ShowMessageParams) {
showMessage.add(params)
}
Expand Down
14 changes: 14 additions & 0 deletions bsp-testkit/client/TestClient.kt
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ package org.jetbrains.bsp.testkit.client
import ch.epfl.scala.bsp4j.BuildClient
import ch.epfl.scala.bsp4j.BuildServer
import ch.epfl.scala.bsp4j.BuildServerCapabilities
import ch.epfl.scala.bsp4j.CompileParams
import ch.epfl.scala.bsp4j.CompileResult
import ch.epfl.scala.bsp4j.CppOptionsParams
import ch.epfl.scala.bsp4j.CppOptionsResult
import ch.epfl.scala.bsp4j.DependencyModulesParams
Expand All @@ -20,6 +22,7 @@ import ch.epfl.scala.bsp4j.JvmRunEnvironmentParams
import ch.epfl.scala.bsp4j.JvmRunEnvironmentResult
import ch.epfl.scala.bsp4j.JvmTestEnvironmentParams
import ch.epfl.scala.bsp4j.JvmTestEnvironmentResult
import ch.epfl.scala.bsp4j.PublishDiagnosticsParams
import ch.epfl.scala.bsp4j.PythonOptionsParams
import ch.epfl.scala.bsp4j.PythonOptionsResult
import ch.epfl.scala.bsp4j.ResourcesParams
Expand All @@ -42,6 +45,7 @@ import kotlinx.coroutines.coroutineScope
import kotlinx.coroutines.future.await
import kotlinx.coroutines.test.runTest
import org.jetbrains.bsp.testkit.JsonComparator
import org.junit.jupiter.api.Assertions.assertIterableEquals
import java.nio.file.Path
import kotlin.time.Duration

Expand Down Expand Up @@ -147,6 +151,16 @@ class TestClient(
}
}

fun testCompile(timeout: Duration, params: CompileParams, expectedResult: CompileResult, expectedDiagnostics: List<PublishDiagnosticsParams>) {
val transformedParams = applyJsonTransform(params)
test(timeout) { session, _ ->
session.client.clearDiagnostics()
val result = session.server.buildTargetCompile(transformedParams).await()
assertIterableEquals(expectedDiagnostics, session.client.publishDiagnosticsNotifications)
assertJsonEquals(expectedResult, result)
}
}

fun testWorkspaceTargets(timeout: Duration, expectedResult: WorkspaceBuildTargetsResult) {
test(timeout) { session, _ ->
val result = session.server.workspaceBuildTargets().await()
Expand Down

0 comments on commit 3462993

Please sign in to comment.