summaryrefslogtreecommitdiff
path: root/sw-server/src/test
diff options
context:
space:
mode:
authorjoffrey-bion <joffrey.bion@gmail.com>2020-12-12 02:43:32 +0100
committerjoffrey-bion <joffrey.bion@gmail.com>2020-12-12 03:04:22 +0100
commitc281b1b127eb8185fca0e3e99a3896b0dec991f2 (patch)
tree02c23713694e78aac2e7eee9958386e1943c59b2 /sw-server/src/test
parentDelete game at the end of a game (diff)
downloadseven-wonders-c281b1b127eb8185fca0e3e99a3896b0dec991f2.tar.gz
seven-wonders-c281b1b127eb8185fca0e3e99a3896b0dec991f2.tar.bz2
seven-wonders-c281b1b127eb8185fca0e3e99a3896b0dec991f2.zip
Fix race in blinking test
Diffstat (limited to 'sw-server/src/test')
-rw-r--r--sw-server/src/test/kotlin/org/luxons/sevenwonders/server/SevenWondersTest.kt17
1 files changed, 5 insertions, 12 deletions
diff --git a/sw-server/src/test/kotlin/org/luxons/sevenwonders/server/SevenWondersTest.kt b/sw-server/src/test/kotlin/org/luxons/sevenwonders/server/SevenWondersTest.kt
index 3ed559b3..920e51d5 100644
--- a/sw-server/src/test/kotlin/org/luxons/sevenwonders/server/SevenWondersTest.kt
+++ b/sw-server/src/test/kotlin/org/luxons/sevenwonders/server/SevenWondersTest.kt
@@ -1,15 +1,13 @@
package org.luxons.sevenwonders.server
-import kotlinx.coroutines.FlowPreview
+import kotlinx.coroutines.*
import kotlinx.coroutines.flow.first
import kotlinx.coroutines.flow.produceIn
-import kotlinx.coroutines.launch
-import kotlinx.coroutines.withTimeout
-import kotlinx.coroutines.withTimeoutOrNull
import org.junit.runner.RunWith
import org.luxons.sevenwonders.client.SevenWondersClient
import org.luxons.sevenwonders.client.SevenWondersSession
import org.luxons.sevenwonders.client.joinGameAndWaitLobby
+import org.luxons.sevenwonders.model.Action
import org.luxons.sevenwonders.model.api.GameListEvent
import org.luxons.sevenwonders.model.api.LobbyDTO
import org.luxons.sevenwonders.server.test.runAsyncTest
@@ -111,16 +109,11 @@ class SevenWondersTest {
@Test
fun startGame_3players() = runAsyncTest(30000) {
- println("startGame_3players: START")
val session1 = newPlayer("Player1")
- println("startGame_3players: after player 1")
val session2 = newPlayer("Player2")
- println("startGame_3players: after player 2")
val lobby = session1.createGameAndWaitLobby("Test Game")
- println("startGame_3players: after player 1 creates game")
session2.joinGameAndWaitLobby(lobby.id)
- println("startGame_3players: after player 2 joins game")
val session3 = newPlayer("Player3")
session3.joinGameAndWaitLobby(lobby.id)
@@ -128,8 +121,8 @@ class SevenWondersTest {
listOf(session1, session2, session3).forEachIndexed { i, session ->
launch {
println("startGame_3players [launch ${i + 1}] awaiting game start...")
- session.awaitGameStart(lobby.id)
- println("startGame_3players [launch ${i + 1}] game started, watching turns")
+ val firstTurn = session.awaitGameStart(lobby.id)
+ assertEquals(Action.SAY_READY, firstTurn.action)
val turns = session.watchTurns().produceIn(this)
println("startGame_3players [launch ${i + 1}] saying ready...")
session.sayReady()
@@ -138,10 +131,10 @@ class SevenWondersTest {
assertNotNull(turn)
println("startGame_3players [launch ${i + 1}] turn OK, disconnecting...")
session.disconnect()
- println("startGame_3players [launch ${i + 1}] disconnected")
}
}
println("startGame_3players: player 1 starting the game...")
+ delay(50) // ensure awaitGameStart actually subscribed in all sessions
session1.startGame()
println("startGame_3players: end of test method (main body)")
}
bgstack15