plugged some test coverage lacunae, incl. tests for release_slot for the Carte Blanche; select_role for ROLE_CHOICES & ROLE_SELECT; equip_trinket non-POST paths; & tooltip_shoptalk for the Tithe Token
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
This commit is contained in:
@@ -608,6 +608,26 @@ class SelectRoleViewTest(TestCase):
|
||||
)
|
||||
self.assertEqual(response.status_code, 409)
|
||||
|
||||
def test_select_role_redirects_when_not_role_select_phase(self):
|
||||
self.room.table_status = None
|
||||
self.room.save()
|
||||
response = self.client.post(
|
||||
reverse("epic:select_role", kwargs={"room_id": self.room.id}),
|
||||
data={"role": "PC"},
|
||||
)
|
||||
self.assertRedirects(
|
||||
response, reverse("epic:gatekeeper", args=[self.room.id])
|
||||
)
|
||||
|
||||
def test_select_role_redirects_for_invalid_role_code(self):
|
||||
response = self.client.post(
|
||||
reverse("epic:select_role", kwargs={"room_id": self.room.id}),
|
||||
data={"role": "BOGUS"},
|
||||
)
|
||||
self.assertRedirects(
|
||||
response, reverse("epic:gatekeeper", args=[self.room.id])
|
||||
)
|
||||
|
||||
|
||||
class RevealPhaseRenderingTest(TestCase):
|
||||
def setUp(self):
|
||||
@@ -699,3 +719,26 @@ class RoomActionsViewTest(TestCase):
|
||||
reverse("epic:abandon_room", kwargs={"room_id": self.room.id})
|
||||
)
|
||||
self.assertRedirects(response, "/gameboard/")
|
||||
|
||||
|
||||
class ReleaseSlotViewTest(TestCase):
|
||||
def setUp(self):
|
||||
self.gamer = User.objects.create(email="gamer@test.io")
|
||||
self.client.force_login(self.gamer)
|
||||
owner = User.objects.create(email="owner@test.io")
|
||||
self.room = Room.objects.create(name="Test Room", owner=owner)
|
||||
self.slot = self.room.gate_slots.get(slot_number=1)
|
||||
self.slot.gamer = self.gamer
|
||||
self.slot.status = GateSlot.FILLED
|
||||
self.slot.debited_token_type = Token.CARTE
|
||||
self.slot.save()
|
||||
|
||||
def test_release_slot_downgrades_open_room_to_gathering(self):
|
||||
self.room.gate_status = Room.OPEN
|
||||
self.room.save()
|
||||
self.client.post(
|
||||
reverse("epic:release_slot", kwargs={"room_id": self.room.id}),
|
||||
data={"slot_number": self.slot.slot_number},
|
||||
)
|
||||
self.room.refresh_from_db()
|
||||
self.assertEqual(self.room.gate_status, Room.GATHERING)
|
||||
|
||||
@@ -4,7 +4,7 @@ from django.test import TestCase
|
||||
from django.urls import reverse
|
||||
|
||||
from apps.applets.models import Applet, UserApplet
|
||||
from apps.lyric.models import User
|
||||
from apps.lyric.models import Token, User
|
||||
|
||||
|
||||
class GameboardViewTest(TestCase):
|
||||
@@ -101,3 +101,17 @@ class ToggleGameAppletsViewTest(TestCase):
|
||||
)
|
||||
self.client.post(self.url, {"applets": ["new-game", "my-games"]})
|
||||
self.assertFalse(UserApplet.objects.filter(user=self.user, applet=dash_applet).exists())
|
||||
|
||||
|
||||
class EquipTrinketViewTest(TestCase):
|
||||
def setUp(self):
|
||||
self.user = User.objects.create(email="gamer@test.io")
|
||||
self.client.force_login(self.user)
|
||||
self.token = Token.objects.filter(user=self.user, token_type=Token.COIN).first()
|
||||
|
||||
def test_get_returns_trinket_button_partial(self):
|
||||
response = self.client.get(
|
||||
reverse("equip_trinket", kwargs={"token_id": self.token.pk})
|
||||
)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertTemplateUsed(response, "apps/gameboard/_partials/_equip_trinket_btn.html")
|
||||
|
||||
@@ -73,3 +73,13 @@ class CarteTooltipTest(SimpleTestCase):
|
||||
|
||||
def test_tooltip_contains_no_expiry(self):
|
||||
self.assertIn("no expiry", self.token.tooltip_text())
|
||||
|
||||
|
||||
class TitheTooltipTest(SimpleTestCase):
|
||||
def setUp(self):
|
||||
self.token = Token()
|
||||
self.token.token_type = Token.TITHE
|
||||
self.token.expires_at = None
|
||||
|
||||
def test_tooltip_shoptalk_returns_none(self):
|
||||
self.assertIsNone(self.token.tooltip_shoptalk())
|
||||
|
||||
Reference in New Issue
Block a user