Skip to content

Commit 5552bcf

Browse files
authored
Update kotest and replace ComparableMatcherResult with ComparisonMatcherResult (#114)
1 parent 21865ef commit 5552bcf

File tree

3 files changed

+18
-17
lines changed

3 files changed

+18
-17
lines changed

gradle/libs.versions.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ jmh = "1.37"
66
jmhreport = "0.9.6"
77
junit = "5.11.4"
88
junit-platform-launcher = "1.9.3"
9-
kotest = "5.6.2"
9+
kotest = "6.0.7"
1010
kotlin = "2.2.21"
1111
kotlinx-benchmark = "0.4.14"
1212
kotlinx-coroutines = "1.10.2"

result4k/kotest/src/main/kotlin/dev/forkhandles/result4k/kotest/matchers.kt

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@ package dev.forkhandles.result4k.kotest
33
import dev.forkhandles.result4k.Failure
44
import dev.forkhandles.result4k.Result
55
import dev.forkhandles.result4k.Success
6-
import io.kotest.matchers.ComparableMatcherResult
6+
import io.kotest.assertions.print.Printed
7+
import io.kotest.matchers.ComparisonMatcherResult
78
import io.kotest.matchers.Matcher
89
import io.kotest.matchers.MatcherResult
910
import io.kotest.matchers.should
@@ -62,24 +63,24 @@ infix fun <E> Result<*, E>.shouldBeFailure(expected: E) =
6263
private fun <T, E> Result<T, E>.matchesValue(actual: Result<T, E>): MatcherResult =
6364
matcherResultWithIntelliJDiff(
6465
passed = this == actual,
65-
actual = actual.toString(),
66-
expected = this.toString()
66+
actual = Printed(actual.toString()),
67+
expected = Printed(this.toString())
6768
)
6869

6970
private fun <T, E, C : Result<T, E>> Result<T, E>.matchesType(expected: KClass<C>): MatcherResult =
7071
matcherResultWithIntelliJDiff(
7172
passed = expected.isInstance(this),
72-
actual = this.toString(),
73-
expected = expected.simpleName!!
73+
actual = Printed(this.toString()),
74+
expected = Printed(expected.simpleName!!)
7475
)
7576

7677
/**
77-
* Return ComparableMatcherResult so that Kotest throws AssertFailedError
78+
* Return ComparisonMatcherResult so that Kotest throws AssertFailedError
7879
* with the failure message formatted by io.kotest.assertions.intellijFormatError()
7980
* which makes IntelliJ show the link to the diff window.
8081
*/
81-
private fun matcherResultWithIntelliJDiff(passed: Boolean, actual: String, expected: String) =
82-
ComparableMatcherResult(
82+
private fun matcherResultWithIntelliJDiff(passed: Boolean, actual: Printed, expected: Printed) =
83+
ComparisonMatcherResult(
8384
passed = passed,
8485
failureMessageFn = { "" },
8586
negatedFailureMessageFn = { "not " },

result4k/kotest/src/test/kotlin/dev/forkhandles/result4k/kotest/MatchersTest.kt

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -41,13 +41,13 @@ class MatchersTest {
4141
val value = "Test successful"
4242
val success = Success(value)
4343

44-
throwsAssertionError("expected:<Failure> but was:<Success(value=Test successful)>") {
44+
throwsAssertionError("\nexpected:<Failure> but was:<Success(value=Test successful)>") {
4545
success.shouldBeFailure()
4646
}
47-
throwsAssertionError("expected:<Failure> but was:<Success(value=Test successful)>") {
47+
throwsAssertionError("\nexpected:<Failure> but was:<Success(value=Test successful)>") {
4848
success.shouldBeFailure { }
4949
}
50-
throwsAssertionError("expected:<Failure(reason=Test successful)> but was:<Success(value=Test successful)>") {
50+
throwsAssertionError("\nexpected:<Failure(reason=Test successful)> but was:<Success(value=Test successful)>") {
5151
success shouldBeFailure value
5252
}
5353
}
@@ -57,23 +57,23 @@ class MatchersTest {
5757
val reason = "Test failed"
5858
val failure = Failure(reason)
5959

60-
throwsAssertionError("expected:<Success> but was:<Failure(reason=Test failed)>") {
60+
throwsAssertionError("\nexpected:<Success> but was:<Failure(reason=Test failed)>") {
6161
failure.shouldBeSuccess()
6262
}
63-
throwsAssertionError("expected:<Success> but was:<Failure(reason=Test failed)>") {
63+
throwsAssertionError("\nexpected:<Success> but was:<Failure(reason=Test failed)>") {
6464
failure.shouldBeSuccess { }
6565
}
66-
throwsAssertionError("expected:<Success(value=Test failed)> but was:<Failure(reason=Test failed)>") {
66+
throwsAssertionError("\nexpected:<Success(value=Test failed)> but was:<Failure(reason=Test failed)>") {
6767
failure shouldBeSuccess reason
6868
}
6969
}
7070

7171
@Test
7272
fun `should correctly assert value`() {
73-
throwsAssertionError("expected:<Failure(reason=Expected value)> but was:<Failure(reason=Actual value)>") {
73+
throwsAssertionError("\nexpected:<Failure(reason=Expected value)> but was:<Failure(reason=Actual value)>") {
7474
Failure("Actual value") shouldBeFailure "Expected value"
7575
}
76-
throwsAssertionError("expected:<Success(value=Expected value)> but was:<Success(value=Actual value)>") {
76+
throwsAssertionError("\nexpected:<Success(value=Expected value)> but was:<Success(value=Actual value)>") {
7777
Success("Actual value") shouldBeSuccess "Expected value"
7878
}
7979
}

0 commit comments

Comments
 (0)