feat: add shared scouting notes mvp
This commit is contained in:
@ -5,7 +5,7 @@ from django.core.management import call_command
|
||||
from django.test import TestCase
|
||||
from django.urls import reverse
|
||||
|
||||
from .models import Competition, FavoritePlayer, Player, PlayerSeason, PlayerSeasonStats, Role, Season, Specialty, Team
|
||||
from .models import Competition, FavoritePlayer, Player, PlayerNote, PlayerSeason, PlayerSeasonStats, Role, Season, Specialty, Team
|
||||
|
||||
|
||||
class ScoutingSearchViewsTests(TestCase):
|
||||
@ -475,3 +475,68 @@ class FavoritePlayerViewsTests(TestCase):
|
||||
|
||||
self.assertEqual(search_response.status_code, 200)
|
||||
self.assertEqual(detail_response.status_code, 200)
|
||||
|
||||
|
||||
class PlayerNoteViewsTests(TestCase):
|
||||
@classmethod
|
||||
def setUpTestData(cls):
|
||||
cls.player = Player.objects.create(
|
||||
full_name="Notes Prospect",
|
||||
birth_date=date(2001, 8, 8),
|
||||
position="PF",
|
||||
height_cm=Decimal("205.00"),
|
||||
weight_kg=Decimal("97.00"),
|
||||
)
|
||||
|
||||
def test_adding_note_to_player(self):
|
||||
response = self.client.post(
|
||||
reverse("scouting:add_note", args=[self.player.id]),
|
||||
{
|
||||
"body": "Shows good weak-side help instincts.",
|
||||
"next": reverse("scouting:player_detail", args=[self.player.id]),
|
||||
},
|
||||
)
|
||||
|
||||
self.assertRedirects(response, reverse("scouting:player_detail", args=[self.player.id]))
|
||||
note = PlayerNote.objects.get(player=self.player)
|
||||
self.assertEqual(note.body, "Shows good weak-side help instincts.")
|
||||
|
||||
def test_deleting_note(self):
|
||||
note = PlayerNote.objects.create(player=self.player, body="Needs tighter handle under pressure.")
|
||||
|
||||
response = self.client.post(
|
||||
reverse("scouting:delete_note", args=[self.player.id, note.id]),
|
||||
{"next": reverse("scouting:player_detail", args=[self.player.id])},
|
||||
)
|
||||
|
||||
self.assertRedirects(response, reverse("scouting:player_detail", args=[self.player.id]))
|
||||
self.assertFalse(PlayerNote.objects.filter(pk=note.id).exists())
|
||||
|
||||
def test_player_detail_page_shows_notes(self):
|
||||
PlayerNote.objects.create(player=self.player, body="Reliable closeout discipline.")
|
||||
|
||||
response = self.client.get(reverse("scouting:player_detail", args=[self.player.id]))
|
||||
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertContains(response, "Scouting Notes")
|
||||
self.assertContains(response, "Reliable closeout discipline.")
|
||||
|
||||
def test_existing_search_shortlist_and_detail_flows_still_load(self):
|
||||
FavoritePlayer.objects.create(player=self.player)
|
||||
|
||||
search_response = self.client.get(reverse("scouting:player_list"))
|
||||
favorites_response = self.client.get(reverse("scouting:favorites_list"))
|
||||
detail_response = self.client.get(reverse("scouting:player_detail", args=[self.player.id]))
|
||||
|
||||
self.assertEqual(search_response.status_code, 200)
|
||||
self.assertEqual(favorites_response.status_code, 200)
|
||||
self.assertEqual(detail_response.status_code, 200)
|
||||
|
||||
def test_favorites_page_shows_note_count(self):
|
||||
FavoritePlayer.objects.create(player=self.player)
|
||||
PlayerNote.objects.create(player=self.player, body="Can defend up a position in small lineups.")
|
||||
PlayerNote.objects.create(player=self.player, body="Late-clock decision making still inconsistent.")
|
||||
|
||||
response = self.client.get(reverse("scouting:favorites_list"))
|
||||
|
||||
self.assertContains(response, "Notes: 2")
|
||||
|
||||
Reference in New Issue
Block a user