[READY][Gameplay] #310 Host transition idempotency and error catalog for scoreboard -> next round / finish #320
@@ -1612,11 +1612,13 @@ class RevealRoundFlowTests(TestCase):
|
|||||||
self.client.login(username="host_reveal", password="secret123")
|
self.client.login(username="host_reveal", password="secret123")
|
||||||
self.client.get(reverse("lobby:reveal_scoreboard", kwargs={"code": self.session.code}))
|
self.client.get(reverse("lobby:reveal_scoreboard", kwargs={"code": self.session.code}))
|
||||||
|
|
||||||
|
stale_shown_at = timezone.now() - timedelta(minutes=10)
|
||||||
stale_round_question = RoundQuestion.objects.create(
|
stale_round_question = RoundQuestion.objects.create(
|
||||||
session=self.session,
|
session=self.session,
|
||||||
round_number=2,
|
round_number=2,
|
||||||
question=self.next_question,
|
question=self.next_question,
|
||||||
correct_answer=self.next_question.correct_answer,
|
correct_answer=self.next_question.correct_answer,
|
||||||
|
shown_at=stale_shown_at,
|
||||||
mixed_answers=["Stale truth", "Stale lie"],
|
mixed_answers=["Stale truth", "Stale lie"],
|
||||||
)
|
)
|
||||||
LieAnswer.objects.create(round_question=stale_round_question, player=self.player_one, text="Stale lie")
|
LieAnswer.objects.create(round_question=stale_round_question, player=self.player_one, text="Stale lie")
|
||||||
@@ -1634,10 +1636,17 @@ class RevealRoundFlowTests(TestCase):
|
|||||||
stale_round_question.refresh_from_db()
|
stale_round_question.refresh_from_db()
|
||||||
self.assertEqual(self.session.status, GameSession.Status.LIE)
|
self.assertEqual(self.session.status, GameSession.Status.LIE)
|
||||||
self.assertEqual(self.session.current_round, 2)
|
self.assertEqual(self.session.current_round, 2)
|
||||||
self.assertEqual(response.json()["round_question"]["id"], stale_round_question.id)
|
response_payload = response.json()
|
||||||
|
self.assertEqual(response_payload["round_question"]["id"], stale_round_question.id)
|
||||||
self.assertEqual(stale_round_question.mixed_answers, [])
|
self.assertEqual(stale_round_question.mixed_answers, [])
|
||||||
self.assertEqual(stale_round_question.lies.count(), 0)
|
self.assertEqual(stale_round_question.lies.count(), 0)
|
||||||
self.assertEqual(stale_round_question.guesses.count(), 0)
|
self.assertEqual(stale_round_question.guesses.count(), 0)
|
||||||
|
self.assertNotEqual(stale_round_question.shown_at, stale_shown_at)
|
||||||
|
self.assertGreater(stale_round_question.shown_at, stale_shown_at)
|
||||||
|
self.assertEqual(response_payload["round_question"]["shown_at"], stale_round_question.shown_at.isoformat())
|
||||||
|
expected_deadline = stale_round_question.shown_at + timedelta(seconds=self.round_config.lie_seconds)
|
||||||
|
self.assertEqual(response_payload["round_question"]["lie_deadline_at"], expected_deadline.isoformat())
|
||||||
|
self.assertGreater(expected_deadline, timezone.now())
|
||||||
|
|
||||||
detail_payload = self.client.get(reverse("lobby:session_detail", kwargs={"code": self.session.code})).json()
|
detail_payload = self.client.get(reverse("lobby:session_detail", kwargs={"code": self.session.code})).json()
|
||||||
self.assertEqual(detail_payload["session"]["status"], GameSession.Status.LIE)
|
self.assertEqual(detail_payload["session"]["status"], GameSession.Status.LIE)
|
||||||
|
|||||||
Reference in New Issue
Block a user