X-Git-Url: https://git.cworth.org/git?p=empires-server;a=blobdiff_plain;f=test;h=4cdeb895991e6122379b0d412d527997963aa838;hp=4594e2ee292363d2f42db9bb1ae463c590583ce8;hb=ea2ea3dbf1184f5e21b3a9ead6dfec337710d18a;hpb=351b66561207f4ee295564b24127ff82d3349ba5 diff --git a/test b/test index 4594e2e..4cdeb89 100755 --- a/test +++ b/test @@ -467,6 +467,7 @@ empathy_player_activate() curl_put /profile "{ \"nickname\": \"$player\" }" "-c ${!player_cookie}" empathy_get $player events >/dev/null 2>&1 & eval ${player_pid}=$! + empathy_players+=($player) } # Usage: empathy_player_deactivate @@ -474,7 +475,10 @@ empathy_player_deactivate() { player="$1" player_pid=${player}_pid - pkill -P ${!player_pid} + if [ "${!player_pid}" != "" ]; then + pkill -P ${!player_pid} + fi + eval ${player_pid}="" } # Pulls a single named event out of the empathy event stream @@ -862,11 +866,46 @@ 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_deactivate_all() +{ + for player in ${empathy_players[*]}; do + empathy_player_deactivate $player + done +} + +empathy_deactivate_all TEST_REPORT