@@ -4,6 +4,7 @@ import io.kotest.assertions.timing.eventually
4
4
import io.kotest.assertions.until.Interval
5
5
import io.kotest.assertions.until.fibonacci
6
6
import io.kotest.assertions.withClue
7
+ import io.kotest.core.datatest.forAll
7
8
import io.kotest.core.spec.style.WordSpec
8
9
import io.kotest.matchers.*
9
10
import io.kotest.matchers.collections.*
@@ -29,6 +30,8 @@ import sc.server.plugins.TestGame
29
30
import sc.server.plugins.TestMove
30
31
import sc.server.plugins.TestPlugin
31
32
import sc.shared.GameResult
33
+ import sc.shared.PlayerScore
34
+ import sc.shared.ScoreCause
32
35
import sc.shared.SlotDescriptor
33
36
import kotlin.time.Duration
34
37
import kotlin.time.ExperimentalTime
@@ -78,8 +81,10 @@ class LobbyGameTest: WordSpec({
78
81
val roomListener = observeRoom(room.id)
79
82
admin.control(room.id).step(true)
80
83
val result = roomListener.waitForMessage(GameResult ::class)
84
+ playerHandlers[0 ].gameResult shouldBe result
81
85
result.winner shouldBe Team .ONE
82
- playerHandlers[0 ].gameResult?.winner shouldBe Team .ONE
86
+ result.isRegular shouldBe false
87
+ result.scores.values.last().cause shouldBe ScoreCause .LEFT
83
88
admin.closed shouldBe false
84
89
}
85
90
playerClients[0 ].stop()
@@ -103,6 +108,10 @@ class LobbyGameTest: WordSpec({
103
108
val result = roomListener.waitForMessage(GameResult ::class)
104
109
withClue("No Winner ") {
105
110
result.winner shouldBe null
111
+ result.isRegular shouldBe false
112
+ forAll<PlayerScore >(result.scores.mapKeys { it.key.displayName }.toList()) {
113
+ it.cause shouldBe ScoreCause .LEFT
114
+ }
106
115
}
107
116
adminListener.waitForMessage(RemovedFromGame ::class)
108
117
roomListener.clearMessages() shouldBe 0
0 commit comments