deck contribution sprint 1: TableSeat.deck_variant FK + select_role wiring — TDD
- epic.TableSeat gains deck_variant FK → DeckVariant (nullable, SET_NULL)
- select_role view assigns request.user.equipped_deck to seat on role confirmation
- Migration 0006_add_deck_variant_to_tableseat
- ITs: test_select_role_assigns_equipped_deck_to_seat,
test_select_role_no_deck_leaves_deck_variant_null
Code architected by Disco DeDisco <discodedisco@outlook.com>
Git commit message Co-Authored-By:
Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -680,6 +680,27 @@ class SelectRoleViewTest(TestCase):
|
||||
)
|
||||
mock_notify.assert_called_once_with(self.room.id)
|
||||
|
||||
def test_select_role_assigns_equipped_deck_to_seat(self):
|
||||
earthman = DeckVariant.objects.get(slug="earthman")
|
||||
self.founder.equipped_deck = earthman
|
||||
self.founder.save(update_fields=["equipped_deck"])
|
||||
self.client.post(
|
||||
reverse("epic:select_role", kwargs={"room_id": self.room.id}),
|
||||
data={"role": "PC"},
|
||||
)
|
||||
seat = TableSeat.objects.get(room=self.room, slot_number=1)
|
||||
self.assertEqual(seat.deck_variant, earthman)
|
||||
|
||||
def test_select_role_no_deck_leaves_deck_variant_null(self):
|
||||
self.founder.equipped_deck = None
|
||||
self.founder.save(update_fields=["equipped_deck"])
|
||||
self.client.post(
|
||||
reverse("epic:select_role", kwargs={"room_id": self.room.id}),
|
||||
data={"role": "PC"},
|
||||
)
|
||||
seat = TableSeat.objects.get(room=self.room, slot_number=1)
|
||||
self.assertIsNone(seat.deck_variant)
|
||||
|
||||
def test_select_role_requires_login(self):
|
||||
self.client.logout()
|
||||
response = self.client.post(
|
||||
|
||||
Reference in New Issue
Block a user