diff --git a/src/apps/gameboard/tests/integrated/test_views.py b/src/apps/gameboard/tests/integrated/test_views.py index 9f7f5c1..043f805 100644 --- a/src/apps/gameboard/tests/integrated/test_views.py +++ b/src/apps/gameboard/tests/integrated/test_views.py @@ -1157,6 +1157,84 @@ class MySeaViewTest(TestCase): self.assertNotContains(response, 'id="id_my_sea_cont_draw_btn"') self.assertContains(response, 'id="id_draw_sea_btn"') + def test_burger_renders_glow_handoff_class_when_sea_first_draw_pending(self): + """When picker phase is active + hand is still empty (paid-draw + entry, or page reload of an empty picker), the burger btn renders + w. .glow-handoff so the first-draw nudge cycle starts on it. + Picker w. an empty hand requires the paid-draw context — the + FREE-DRAW client-side transition seeds the class via JS instead + (see my_sea.html DRAW SEA handler).""" + from apps.epic.models import personal_sig_cards + from apps.gameboard.models import MySeaDraw + from apps.lyric.models import Token + from datetime import timedelta + from django.utils import timezone + sig = personal_sig_cards(self.user)[0] + self.user.significator = sig + self.user.save(update_fields=["significator"]) + free_tok = Token.objects.create( + user=self.user, token_type=Token.FREE, + expires_at=timezone.now() + timedelta(days=30), + ) + MySeaDraw.objects.create( + user=self.user, spread="situation-action-outcome", + significator_id=sig.id, hand=[], + deposit_token_id=free_tok.pk, + deposit_reserved_at=timezone.now(), + ) + response = self.client.get(reverse("my_sea") + "?phase=picker") + # Burger btn rendered w. .glow-handoff (server-side seed) + self.assertContains( + response, + ' {% endblock content %}