]> git.cworth.org Git - lmno-server/commitdiff
Adapt test suite to add explicit voting to advance phases
authorCarl Worth <cworth@cworth.org>
Thu, 25 Jun 2020 16:08:53 +0000 (09:08 -0700)
committerCarl Worth <cworth@cworth.org>
Thu, 25 Jun 2020 16:08:53 +0000 (09:08 -0700)
As of the previous commit, it's now required for players to explicit
vote to advance from one phase to the next. That commit broke the test
suite which didn't have this voting added.

In this commit, we fix the test suite by adding that voting (and
ensuring the state game state transitions from before to after the
vote).

test

diff --git a/test b/test
index c4ddcf598b6775253c9a06fe69f2cc9297afecfb..f117234e66ff98b78aec86f9746c7c2b856089c8 100755 (executable)
--- a/test
+++ b/test
@@ -517,14 +517,39 @@ result=$(empathy_answer $charlie $prompt_id '"SunShine", "Grains of Sand", "wafe
 test "$result" = '{"valid":true}'
 TEST_END
 
 test "$result" = '{"valid":true}'
 TEST_END
 
-empathy_judging()
+TEST_SUBSECTION "Transition from answering to judging"
+
+empathy_ambiguities()
 {
 {
-    curl_post $empathy_game_path/judging/$2 "{ \"word_groups\": $3}" "-b $1"
+    curl_get_event $empathy_game_path/events game-state "-b $1" \
+        | jq .ambiguities
+}
+
+TEST "Judging has not yet started"
+result=$(echo $(empathy_ambiguities $alice))
+test "$result" = "null"
+TEST_END
+
+empathy_end_answers()
+{
+    curl_post $empathy_game_path/end-answers/$2 "" "-b $1"
 }
 
 }
 
+TEST "Players vote to start judging"
+empathy_end_answers $alice $prompt_id
+empathy_end_answers $bob $prompt_id
+empathy_end_answers $charlie $prompt_id
+test "$?" = "0"
+TEST_END
+
+TEST "Judging has now started"
+result=$(echo $(empathy_ambiguities $alice))
+test "$result" != "null"
+TEST_END
+
 TEST_SUBSECTION "Judging answers"
 
 TEST_SUBSECTION "Judging answers"
 
-empathy_ambiguities()
+empathy_ambiguities_list()
 {
     curl_get_event $empathy_game_path/events game-state "-b $1" \
         | jq .ambiguities[]
 {
     curl_get_event $empathy_game_path/events game-state "-b $1" \
         | jq .ambiguities[]
@@ -532,10 +557,15 @@ empathy_ambiguities()
 
 TEST "Received all unique words"
 # echo here is to strip newlines
 
 TEST "Received all unique words"
 # echo here is to strip newlines
-result=$(echo $(empathy_ambiguities $alice))
+result=$(echo $(empathy_ambiguities_list $alice))
 test "$result" = '"Grains of Sand" "people" "sand" "sands" "sun" "SunLight" "SunShine" "towels" "wafer" "water"'
 TEST_END
 
 test "$result" = '"Grains of Sand" "people" "sand" "sands" "sun" "SunLight" "SunShine" "towels" "wafer" "water"'
 TEST_END
 
+empathy_judging()
+{
+    curl_post $empathy_game_path/judging/$2 "{ \"word_groups\": $3}" "-b $1"
+}
+
 TEST "Submit word groups from alice"
 result=$(empathy_judging $alice $prompt_id '[["sun","SunLight","SunShine"],["sand","sands","Grains of Sand"],["water","wafer"]]')
 test "$result" = '{"valid":true}'
 TEST "Submit word groups from alice"
 result=$(empathy_judging $alice $prompt_id '[["sun","SunLight","SunShine"],["sand","sands","Grains of Sand"],["water","wafer"]]')
 test "$result" = '{"valid":true}'
@@ -551,7 +581,37 @@ result=$(empathy_judging $charlie $prompt_id '[["SunLight","SunShine"],["sand","
 test "$result" = '{"valid":true}'
 TEST_END
 
 test "$result" = '{"valid":true}'
 TEST_END
 
+TEST_SUBSECTION "Transition from judging to scoring"
+
 empathy_scores()
 empathy_scores()
+{
+    curl_get_event $empathy_game_path/events game-state "-b $1" \
+        | jq .scores
+}
+
+TEST "Scoring has not yet started"
+result=$(echo $(empathy_scores $alice))
+test "$result" = "null"
+TEST_END
+
+empathy_end_judging()
+{
+    curl_post $empathy_game_path/end-judging/$2 "" "-b $1"
+}
+
+TEST "Players vote to start scoring"
+empathy_end_judging $alice $prompt_id
+empathy_end_judging $bob $prompt_id
+empathy_end_judging $charlie $prompt_id
+test "$?" = "0"
+TEST_END
+
+TEST "Scoring has now started"
+result=$(echo $(empathy_scores $alice))
+test "$result" != "null"
+TEST_END
+
+empathy_scores_names_numbers()
 {
     curl_get_event $empathy_game_path/events game-state "-b $1" \
         | jq '.scores.scores[]|.player,.score'
 {
     curl_get_event $empathy_game_path/events game-state "-b $1" \
         | jq '.scores.scores[]|.player,.score'
@@ -561,7 +621,7 @@ TEST_SUBSECTION "Scoring"
 
 TEST "Verify final scores as expected"
 # echo here is to strip newlines
 
 TEST "Verify final scores as expected"
 # echo here is to strip newlines
-result=$(echo $(empathy_scores $alice))
+result=$(echo $(empathy_scores_names_numbers $alice))
 test "$result" = '"charlie" 9 "alice" 8 "bob" 6'
 TEST_END
 
 test "$result" = '"charlie" 9 "alice" 8 "bob" 6'
 TEST_END