covered some test lacunae; gatekeeper now waits for +6 gamers to commit tokens to unblock game room
This commit is contained in:
@@ -40,6 +40,18 @@ class DebitTokenTest(TestCase):
|
||||
self.assertEqual(self.slot.status, GateSlot.FILLED)
|
||||
self.assertEqual(self.slot.gamer, self.owner)
|
||||
|
||||
def test_debit_fills_last_slot_and_opens_gate(self):
|
||||
for i in range(2, 7):
|
||||
gamer = User.objects.create(email=f"g{i}@test.io")
|
||||
slot = self.room.gate_slots.get(slot_number=i)
|
||||
slot.gamer = gamer
|
||||
slot.status = GateSlot.FILLED
|
||||
slot.save()
|
||||
free_token = Token.objects.get(user=self.owner, token_type=Token.FREE)
|
||||
debit_token(self.owner, self.slot, free_token)
|
||||
self.room.refresh_from_db()
|
||||
self.assertEqual(self.room.gate_status, Room.OPEN)
|
||||
|
||||
|
||||
class CoinTokenInUseTest(TestCase):
|
||||
def setUp(self):
|
||||
|
||||
@@ -30,6 +30,10 @@ class RoomCreationViewTest(TestCase):
|
||||
data={"name": "Test Room"},
|
||||
)
|
||||
|
||||
def test_create_room_get_redirects_to_gameboard(self):
|
||||
response = self.client.get(reverse("epic:create_room"))
|
||||
self.assertRedirects(response, "/gameboard/")
|
||||
|
||||
|
||||
class MyGamesContextTest(TestCase):
|
||||
def setUp(self):
|
||||
@@ -50,3 +54,23 @@ class MyGamesContextTest(TestCase):
|
||||
slot.save()
|
||||
response = self.client.get("/gameboard/")
|
||||
self.assertIn(room, response.context["my_games"])
|
||||
|
||||
|
||||
class GateStatusViewTest(TestCase):
|
||||
def setUp(self):
|
||||
self.owner = User.objects.create(email="founder@test.io")
|
||||
self.client.force_login(self.owner)
|
||||
self.room = Room.objects.create(name="Test Room", owner=self.owner)
|
||||
|
||||
def test_gate_status_returns_empty_when_open(self):
|
||||
self.room.gate_status = Room.OPEN
|
||||
self.room.save()
|
||||
response = self.client.get(reverse("epic:gate_status", kwargs={"room_id": self.room.id}))
|
||||
self.assertEqual(response.content, b"")
|
||||
|
||||
def test_gate_status_returns_partial_when_gathering(self):
|
||||
response = self.client.get(
|
||||
reverse("epic:gate_status", kwargs={"room_id": self.room.id})
|
||||
)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertContains(response, "gate-modal")
|
||||
|
||||
Reference in New Issue
Block a user