]> git.cworth.org Git - empires-server/commitdiff
Add new failing test case demonstrating zombies sticking around
authorCarl Worth <cworth@cworth.org>
Sat, 27 Jun 2020 15:27:19 +0000 (08:27 -0700)
committerCarl Worth <cworth@cworth.org>
Sat, 27 Jun 2020 15:28:15 +0000 (08:28 -0700)
If a player has entirely dropped from the game, then we shouldn't be
reporting a score for them as if they are still active.

This commit adds a new (slow!) test which currently fails to expose
this undesired behavior.

test

diff --git a/test b/test
index 4594e2ee292363d2f42db9bb1ae463c590583ce8..5671affacf3b7c7c29d3ae87fccbb07432fffc9d 100755 (executable)
--- a/test
+++ b/test
@@ -862,11 +862,41 @@ result=$(echo $(empathy_scores_names_numbers alice))
 test "$result" = '"alice" 2 "bob" 2 "charlie" 0 "dale" 0 "eric" 0 "fred" 0'
 TEST_END
 
-empathy_player_deactivate alice
-empathy_player_deactivate bob
-empathy_player_deactivate charlie
+TEST_SUBSECTION "Inactive players don't appear in scores"
+
+TEST "Start 2-player game with 6 registered players"
+empathy_reset
+prompt_id=$(empathy_submit_prompt alice 4 "1 best pet" | jq .id)
+empathy_start alice $prompt_id
+empathy_answer alice $prompt_id '"cats"' >/dev/null
+empathy_answer bob   $prompt_id '"dogs"' >/dev/null
+empathy_end_answers alice $prompt_id
+empathy_end_answers bob $prompt_id
+test "$?" = "0"
+TEST_END
+
+TEST "Deactivate 3 players"
 empathy_player_deactivate dale
 empathy_player_deactivate eric
 empathy_player_deactivate fred
+sleep 30
+test "$?" = "0"
+TEST_END
+
+TEST "Finish game with 2 active players"
+empathy_judged alice $prompt_id '[]' >/dev/null
+result=$(empathy_judged bob $prompt_id '[]')
+test "$result" = '{"valid":true}'
+TEST_END
+
+TEST "Verify scores don't include inactive players"
+# echo here is to strip newlines
+result=$(echo $(empathy_scores_names_numbers alice))
+test "$result" = '"alice" 1 "bob" 1 "charlie" 0'
+TEST_END
+
+empathy_player_deactivate alice
+empathy_player_deactivate bob
+empathy_player_deactivate charlie
 
 TEST_REPORT