Squash merge feature/library-reorganization
This commit is contained in:
25
backend/tests/fixtures/teamsnap/README.md
vendored
Normal file
25
backend/tests/fixtures/teamsnap/README.md
vendored
Normal file
@@ -0,0 +1,25 @@
|
||||
These are sample TeamSnap API v3 Collection+JSON responses.
|
||||
|
||||
The payloads use upstream TeamSnap URLs (`https://apiv3.teamsnap.com`) so
|
||||
tests can rewrite them through the local proxy root without guessing at paths.
|
||||
|
||||
The set includes:
|
||||
|
||||
- `root.json`
|
||||
- `me.json`
|
||||
- `teams.json`
|
||||
- `members.json`
|
||||
- `events.json`
|
||||
- `availabilities.json`
|
||||
- `assignments.json`
|
||||
- `event_lineups.json`
|
||||
- `event_lineup_entries.json`
|
||||
|
||||
They are intentionally small but cover the collections this app reads:
|
||||
|
||||
- `me` for auth/session identity
|
||||
- `teams` for team selection
|
||||
- `members` for player lookup
|
||||
- `events` for the operator/game flow
|
||||
- `availabilities`, `assignments`, `eventLineups`, and `eventLineupEntries`
|
||||
for lineup and game preparation screens
|
||||
74
backend/tests/fixtures/teamsnap/assignments.json
vendored
Normal file
74
backend/tests/fixtures/teamsnap/assignments.json
vendored
Normal file
@@ -0,0 +1,74 @@
|
||||
{
|
||||
"collection": {
|
||||
"version": "1.0",
|
||||
"href": "https://apiv3.teamsnap.com/assignments?teamId=101&eventId=2001",
|
||||
"links": [
|
||||
{
|
||||
"rel": "self",
|
||||
"href": "https://apiv3.teamsnap.com/assignments?teamId=101&eventId=2001"
|
||||
}
|
||||
],
|
||||
"queries": [
|
||||
{
|
||||
"rel": "search",
|
||||
"href": "https://apiv3.teamsnap.com/assignments{?teamId,eventId,memberId}",
|
||||
"prompt": "Assignments"
|
||||
}
|
||||
],
|
||||
"template": {
|
||||
"data": [
|
||||
{
|
||||
"name": "team_id",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"name": "event_id",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"name": "member_id",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"name": "description",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"name": "order",
|
||||
"value": 0
|
||||
}
|
||||
]
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"href": "https://apiv3.teamsnap.com/assignments/4001",
|
||||
"data": [
|
||||
{
|
||||
"name": "id",
|
||||
"value": 4001
|
||||
},
|
||||
{
|
||||
"name": "team_id",
|
||||
"value": 101
|
||||
},
|
||||
{
|
||||
"name": "event_id",
|
||||
"value": 2001
|
||||
},
|
||||
{
|
||||
"name": "member_id",
|
||||
"value": 1001
|
||||
},
|
||||
{
|
||||
"name": "description",
|
||||
"value": "Lead off"
|
||||
},
|
||||
{
|
||||
"name": "order",
|
||||
"value": 1
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
91
backend/tests/fixtures/teamsnap/availabilities.json
vendored
Normal file
91
backend/tests/fixtures/teamsnap/availabilities.json
vendored
Normal file
@@ -0,0 +1,91 @@
|
||||
{
|
||||
"collection": {
|
||||
"version": "1.0",
|
||||
"href": "https://apiv3.teamsnap.com/availabilities?teamId=101&eventId=2001",
|
||||
"links": [
|
||||
{
|
||||
"rel": "self",
|
||||
"href": "https://apiv3.teamsnap.com/availabilities?teamId=101&eventId=2001"
|
||||
}
|
||||
],
|
||||
"queries": [
|
||||
{
|
||||
"rel": "search",
|
||||
"href": "https://apiv3.teamsnap.com/availabilities{?teamId,eventId,memberId}",
|
||||
"prompt": "Availabilities"
|
||||
}
|
||||
],
|
||||
"template": {
|
||||
"data": [
|
||||
{
|
||||
"name": "team_id",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"name": "event_id",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"name": "member_id",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"name": "status_code",
|
||||
"value": null
|
||||
}
|
||||
]
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"href": "https://apiv3.teamsnap.com/availabilities/3001",
|
||||
"data": [
|
||||
{
|
||||
"name": "id",
|
||||
"value": 3001
|
||||
},
|
||||
{
|
||||
"name": "team_id",
|
||||
"value": 101
|
||||
},
|
||||
{
|
||||
"name": "event_id",
|
||||
"value": 2001
|
||||
},
|
||||
{
|
||||
"name": "member_id",
|
||||
"value": 1001
|
||||
},
|
||||
{
|
||||
"name": "status_code",
|
||||
"value": 1
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"href": "https://apiv3.teamsnap.com/availabilities/3002",
|
||||
"data": [
|
||||
{
|
||||
"name": "id",
|
||||
"value": 3002
|
||||
},
|
||||
{
|
||||
"name": "team_id",
|
||||
"value": 101
|
||||
},
|
||||
{
|
||||
"name": "event_id",
|
||||
"value": 2001
|
||||
},
|
||||
{
|
||||
"name": "member_id",
|
||||
"value": 1002
|
||||
},
|
||||
{
|
||||
"name": "status_code",
|
||||
"value": 0
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
91
backend/tests/fixtures/teamsnap/event_lineup_entries.json
vendored
Normal file
91
backend/tests/fixtures/teamsnap/event_lineup_entries.json
vendored
Normal file
@@ -0,0 +1,91 @@
|
||||
{
|
||||
"collection": {
|
||||
"version": "1.0",
|
||||
"href": "https://apiv3.teamsnap.com/eventLineupEntries?eventLineupId=5001",
|
||||
"links": [
|
||||
{
|
||||
"rel": "self",
|
||||
"href": "https://apiv3.teamsnap.com/eventLineupEntries?eventLineupId=5001"
|
||||
}
|
||||
],
|
||||
"queries": [
|
||||
{
|
||||
"rel": "search",
|
||||
"href": "https://apiv3.teamsnap.com/eventLineupEntries{?eventLineupId}",
|
||||
"prompt": "Event lineup entries"
|
||||
}
|
||||
],
|
||||
"template": {
|
||||
"data": [
|
||||
{
|
||||
"name": "event_lineup_id",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"name": "member_id",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"name": "label",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"name": "sequence",
|
||||
"value": 0
|
||||
}
|
||||
]
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"href": "https://apiv3.teamsnap.com/eventLineupEntries/6001",
|
||||
"data": [
|
||||
{
|
||||
"name": "id",
|
||||
"value": 6001
|
||||
},
|
||||
{
|
||||
"name": "event_lineup_id",
|
||||
"value": 5001
|
||||
},
|
||||
{
|
||||
"name": "member_id",
|
||||
"value": 1001
|
||||
},
|
||||
{
|
||||
"name": "label",
|
||||
"value": "Shortstop"
|
||||
},
|
||||
{
|
||||
"name": "sequence",
|
||||
"value": 1
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"href": "https://apiv3.teamsnap.com/eventLineupEntries/6002",
|
||||
"data": [
|
||||
{
|
||||
"name": "id",
|
||||
"value": 6002
|
||||
},
|
||||
{
|
||||
"name": "event_lineup_id",
|
||||
"value": 5001
|
||||
},
|
||||
{
|
||||
"name": "member_id",
|
||||
"value": 1002
|
||||
},
|
||||
{
|
||||
"name": "label",
|
||||
"value": "Coach"
|
||||
},
|
||||
{
|
||||
"name": "sequence",
|
||||
"value": 2
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
56
backend/tests/fixtures/teamsnap/event_lineups.json
vendored
Normal file
56
backend/tests/fixtures/teamsnap/event_lineups.json
vendored
Normal file
@@ -0,0 +1,56 @@
|
||||
{
|
||||
"collection": {
|
||||
"version": "1.0",
|
||||
"href": "https://apiv3.teamsnap.com/eventLineups?eventId=2001",
|
||||
"links": [
|
||||
{
|
||||
"rel": "self",
|
||||
"href": "https://apiv3.teamsnap.com/eventLineups?eventId=2001"
|
||||
}
|
||||
],
|
||||
"queries": [
|
||||
{
|
||||
"rel": "search",
|
||||
"href": "https://apiv3.teamsnap.com/eventLineups{?eventId}",
|
||||
"prompt": "Event lineups"
|
||||
}
|
||||
],
|
||||
"template": {
|
||||
"data": [
|
||||
{
|
||||
"name": "event_id",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"name": "is_published",
|
||||
"value": false
|
||||
}
|
||||
]
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"href": "https://apiv3.teamsnap.com/eventLineups/5001",
|
||||
"data": [
|
||||
{
|
||||
"name": "id",
|
||||
"value": 5001
|
||||
},
|
||||
{
|
||||
"name": "event_id",
|
||||
"value": 2001
|
||||
},
|
||||
{
|
||||
"name": "is_published",
|
||||
"value": true
|
||||
}
|
||||
],
|
||||
"links": [
|
||||
{
|
||||
"rel": "eventLineupEntries",
|
||||
"href": "https://apiv3.teamsnap.com/eventLineupEntries?eventLineupId=5001"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
125
backend/tests/fixtures/teamsnap/events.json
vendored
Normal file
125
backend/tests/fixtures/teamsnap/events.json
vendored
Normal file
@@ -0,0 +1,125 @@
|
||||
{
|
||||
"collection": {
|
||||
"version": "1.0",
|
||||
"href": "https://apiv3.teamsnap.com/events?teamId=101",
|
||||
"links": [
|
||||
{
|
||||
"rel": "self",
|
||||
"href": "https://apiv3.teamsnap.com/events?teamId=101"
|
||||
}
|
||||
],
|
||||
"queries": [
|
||||
{
|
||||
"rel": "search",
|
||||
"href": "https://apiv3.teamsnap.com/events{?teamId,eventId,contactId}",
|
||||
"prompt": "Events"
|
||||
}
|
||||
],
|
||||
"template": {
|
||||
"data": [
|
||||
{
|
||||
"name": "team_id",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"name": "name",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"name": "is_game",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "opponent_name",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"name": "location_name",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"name": "start_date",
|
||||
"value": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"href": "https://apiv3.teamsnap.com/events/2001",
|
||||
"data": [
|
||||
{
|
||||
"name": "id",
|
||||
"value": 2001
|
||||
},
|
||||
{
|
||||
"name": "team_id",
|
||||
"value": 101
|
||||
},
|
||||
{
|
||||
"name": "name",
|
||||
"value": "Opening Day"
|
||||
},
|
||||
{
|
||||
"name": "is_game",
|
||||
"value": true
|
||||
},
|
||||
{
|
||||
"name": "opponent_name",
|
||||
"value": "Sharks"
|
||||
},
|
||||
{
|
||||
"name": "location_name",
|
||||
"value": "Field 1"
|
||||
},
|
||||
{
|
||||
"name": "start_date",
|
||||
"value": "2026-04-28T18:00:00Z"
|
||||
}
|
||||
],
|
||||
"links": [
|
||||
{
|
||||
"rel": "availabilities",
|
||||
"href": "https://apiv3.teamsnap.com/availabilities?teamId=101&eventId=2001"
|
||||
},
|
||||
{
|
||||
"rel": "assignments",
|
||||
"href": "https://apiv3.teamsnap.com/assignments?teamId=101&eventId=2001"
|
||||
},
|
||||
{
|
||||
"rel": "eventLineups",
|
||||
"href": "https://apiv3.teamsnap.com/eventLineups?eventId=2001"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"href": "https://apiv3.teamsnap.com/events/2002",
|
||||
"data": [
|
||||
{
|
||||
"name": "id",
|
||||
"value": 2002
|
||||
},
|
||||
{
|
||||
"name": "team_id",
|
||||
"value": 101
|
||||
},
|
||||
{
|
||||
"name": "name",
|
||||
"value": "Practice"
|
||||
},
|
||||
{
|
||||
"name": "is_game",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "location_name",
|
||||
"value": "Field 2"
|
||||
},
|
||||
{
|
||||
"name": "start_date",
|
||||
"value": "2026-04-23T17:30:00Z"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
35
backend/tests/fixtures/teamsnap/me.json
vendored
Normal file
35
backend/tests/fixtures/teamsnap/me.json
vendored
Normal file
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"collection": {
|
||||
"version": "1.0",
|
||||
"href": "https://apiv3.teamsnap.com/me",
|
||||
"links": [
|
||||
{
|
||||
"rel": "self",
|
||||
"href": "https://apiv3.teamsnap.com/me"
|
||||
}
|
||||
],
|
||||
"items": [
|
||||
{
|
||||
"href": "https://apiv3.teamsnap.com/me/42",
|
||||
"data": [
|
||||
{
|
||||
"name": "id",
|
||||
"value": 42
|
||||
},
|
||||
{
|
||||
"name": "first_name",
|
||||
"value": "Sam"
|
||||
},
|
||||
{
|
||||
"name": "last_name",
|
||||
"value": "Player"
|
||||
},
|
||||
{
|
||||
"name": "email",
|
||||
"value": "sam.player@example.com"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
111
backend/tests/fixtures/teamsnap/members.json
vendored
Normal file
111
backend/tests/fixtures/teamsnap/members.json
vendored
Normal file
@@ -0,0 +1,111 @@
|
||||
{
|
||||
"collection": {
|
||||
"version": "1.0",
|
||||
"href": "https://apiv3.teamsnap.com/members?teamId=101",
|
||||
"links": [
|
||||
{
|
||||
"rel": "self",
|
||||
"href": "https://apiv3.teamsnap.com/members?teamId=101"
|
||||
}
|
||||
],
|
||||
"queries": [
|
||||
{
|
||||
"rel": "search",
|
||||
"href": "https://apiv3.teamsnap.com/members{?teamId,userId,memberId}",
|
||||
"prompt": "Members"
|
||||
}
|
||||
],
|
||||
"template": {
|
||||
"data": [
|
||||
{
|
||||
"name": "team_id",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"name": "first_name",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"name": "last_name",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"name": "number",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"name": "is_non_player",
|
||||
"value": false
|
||||
}
|
||||
]
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"href": "https://apiv3.teamsnap.com/members/1001",
|
||||
"data": [
|
||||
{
|
||||
"name": "id",
|
||||
"value": 1001
|
||||
},
|
||||
{
|
||||
"name": "team_id",
|
||||
"value": 101
|
||||
},
|
||||
{
|
||||
"name": "user_id",
|
||||
"value": 42
|
||||
},
|
||||
{
|
||||
"name": "first_name",
|
||||
"value": "Sam"
|
||||
},
|
||||
{
|
||||
"name": "last_name",
|
||||
"value": "Player"
|
||||
},
|
||||
{
|
||||
"name": "number",
|
||||
"value": 17
|
||||
},
|
||||
{
|
||||
"name": "is_non_player",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"name": "email",
|
||||
"value": "sam.player@example.com"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"href": "https://apiv3.teamsnap.com/members/1002",
|
||||
"data": [
|
||||
{
|
||||
"name": "id",
|
||||
"value": 1002
|
||||
},
|
||||
{
|
||||
"name": "team_id",
|
||||
"value": 101
|
||||
},
|
||||
{
|
||||
"name": "first_name",
|
||||
"value": "Taylor"
|
||||
},
|
||||
{
|
||||
"name": "last_name",
|
||||
"value": "Coach"
|
||||
},
|
||||
{
|
||||
"name": "is_non_player",
|
||||
"value": true
|
||||
},
|
||||
{
|
||||
"name": "email",
|
||||
"value": "taylor.coach@example.com"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
54
backend/tests/fixtures/teamsnap/root.json
vendored
Normal file
54
backend/tests/fixtures/teamsnap/root.json
vendored
Normal file
@@ -0,0 +1,54 @@
|
||||
{
|
||||
"collection": {
|
||||
"version": "1.0",
|
||||
"href": "https://apiv3.teamsnap.com/",
|
||||
"links": [
|
||||
{
|
||||
"rel": "self",
|
||||
"href": "https://apiv3.teamsnap.com/"
|
||||
}
|
||||
],
|
||||
"queries": [
|
||||
{
|
||||
"rel": "me",
|
||||
"href": "https://apiv3.teamsnap.com/me",
|
||||
"prompt": "Current user"
|
||||
},
|
||||
{
|
||||
"rel": "teams",
|
||||
"href": "https://apiv3.teamsnap.com/teams{?userId}",
|
||||
"prompt": "Teams"
|
||||
},
|
||||
{
|
||||
"rel": "members",
|
||||
"href": "https://apiv3.teamsnap.com/members{?teamId,userId,memberId}",
|
||||
"prompt": "Members"
|
||||
},
|
||||
{
|
||||
"rel": "events",
|
||||
"href": "https://apiv3.teamsnap.com/events{?teamId,eventId,contactId}",
|
||||
"prompt": "Events"
|
||||
},
|
||||
{
|
||||
"rel": "availabilities",
|
||||
"href": "https://apiv3.teamsnap.com/availabilities{?teamId,eventId,memberId}",
|
||||
"prompt": "Availabilities"
|
||||
},
|
||||
{
|
||||
"rel": "assignments",
|
||||
"href": "https://apiv3.teamsnap.com/assignments{?teamId,eventId,memberId}",
|
||||
"prompt": "Assignments"
|
||||
},
|
||||
{
|
||||
"rel": "eventLineups",
|
||||
"href": "https://apiv3.teamsnap.com/eventLineups{?eventId}",
|
||||
"prompt": "Event lineups"
|
||||
},
|
||||
{
|
||||
"rel": "eventLineupEntries",
|
||||
"href": "https://apiv3.teamsnap.com/eventLineupEntries{?eventLineupId}",
|
||||
"prompt": "Event lineup entries"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
89
backend/tests/fixtures/teamsnap/teams.json
vendored
Normal file
89
backend/tests/fixtures/teamsnap/teams.json
vendored
Normal file
@@ -0,0 +1,89 @@
|
||||
{
|
||||
"collection": {
|
||||
"version": "1.0",
|
||||
"href": "https://apiv3.teamsnap.com/teams",
|
||||
"links": [
|
||||
{
|
||||
"rel": "self",
|
||||
"href": "https://apiv3.teamsnap.com/teams"
|
||||
}
|
||||
],
|
||||
"queries": [
|
||||
{
|
||||
"rel": "search",
|
||||
"href": "https://apiv3.teamsnap.com/teams{?userId}",
|
||||
"prompt": "Teams"
|
||||
}
|
||||
],
|
||||
"template": {
|
||||
"data": [
|
||||
{
|
||||
"name": "name",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"name": "season_name",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"name": "is_retired",
|
||||
"value": false
|
||||
}
|
||||
]
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"href": "https://apiv3.teamsnap.com/teams/101",
|
||||
"data": [
|
||||
{
|
||||
"name": "id",
|
||||
"value": 101
|
||||
},
|
||||
{
|
||||
"name": "name",
|
||||
"value": "Walkup Wildcats"
|
||||
},
|
||||
{
|
||||
"name": "season_name",
|
||||
"value": "Spring 2026"
|
||||
},
|
||||
{
|
||||
"name": "is_retired",
|
||||
"value": false
|
||||
}
|
||||
],
|
||||
"links": [
|
||||
{
|
||||
"rel": "members",
|
||||
"href": "https://apiv3.teamsnap.com/members?teamId=101"
|
||||
},
|
||||
{
|
||||
"rel": "events",
|
||||
"href": "https://apiv3.teamsnap.com/events?teamId=101"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"href": "https://apiv3.teamsnap.com/teams/202",
|
||||
"data": [
|
||||
{
|
||||
"name": "id",
|
||||
"value": 202
|
||||
},
|
||||
{
|
||||
"name": "name",
|
||||
"value": "Retired Example"
|
||||
},
|
||||
{
|
||||
"name": "season_name",
|
||||
"value": "Fall 2025"
|
||||
},
|
||||
{
|
||||
"name": "is_retired",
|
||||
"value": true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user