test: enable player schedule tests with match data setup
Related to #9 - Implemented 'I have upcoming matches in my schedule' step to create tournament, players, and match with future date - Added step definitions for schedule content verification - 2 player schedule scenarios now active (empty schedule, upcoming matches) - 'Click on match' scenario remains @wip (page lacks match detail links) Player schedule page at /players/[id]/schedule shows upcoming matches with tournament name, player names, and dates.
This commit is contained in:
@@ -337,16 +337,67 @@ When('I go to my schedule page', async function () {
|
||||
});
|
||||
|
||||
Given('I have upcoming matches in my schedule', async function () {
|
||||
console.log('🌍 Note: This step requires database setup via API or UI');
|
||||
console.log('🌍 For acceptance tests, this would be set up before running the test');
|
||||
// For true acceptance testing, we would:
|
||||
// 1. Create a tournament
|
||||
// 2. Add the player as a participant
|
||||
// 3. Generate a schedule
|
||||
// 4. The match would then appear in the player's schedule
|
||||
console.log('🌍 Setting up upcoming matches in schedule');
|
||||
const prisma = await world.getPrisma();
|
||||
const timestamp = Date.now();
|
||||
|
||||
// For now, this is a placeholder that indicates data setup is needed
|
||||
// In a real test run, this data would already exist in the dev database
|
||||
// Get the current player
|
||||
if (!world.playerId) {
|
||||
throw new Error('No player ID found. Make sure user is logged in as a player first.');
|
||||
}
|
||||
|
||||
const currentPlayerId = parseInt(world.playerId, 10);
|
||||
|
||||
// Create 3 other players for the match
|
||||
const opponent1 = await prisma.player.create({
|
||||
data: {
|
||||
name: `Opponent ${timestamp} 1`,
|
||||
normalizedName: `opponent ${timestamp} 1`,
|
||||
currentElo: 1000,
|
||||
},
|
||||
});
|
||||
|
||||
const opponent2 = await prisma.player.create({
|
||||
data: {
|
||||
name: `Opponent ${timestamp} 2`,
|
||||
normalizedName: `opponent ${timestamp} 2`,
|
||||
currentElo: 1000,
|
||||
},
|
||||
});
|
||||
|
||||
const partner1 = await prisma.player.create({
|
||||
data: {
|
||||
name: `Partner ${timestamp}`,
|
||||
normalizedName: `partner ${timestamp}`,
|
||||
currentElo: 1000,
|
||||
},
|
||||
});
|
||||
|
||||
// Create a tournament
|
||||
const tournament = await prisma.event.create({
|
||||
data: {
|
||||
name: `Test Schedule Tournament ${timestamp}`,
|
||||
eventDate: new Date(Date.now() + 86400000), // Tomorrow
|
||||
status: 'planned',
|
||||
},
|
||||
});
|
||||
|
||||
// Create a match with the current player as player1P1 (played tomorrow)
|
||||
await prisma.match.create({
|
||||
data: {
|
||||
eventId: tournament.id,
|
||||
player1P1Id: currentPlayerId,
|
||||
player1P2Id: partner1.id,
|
||||
player2P1Id: opponent1.id,
|
||||
player2P2Id: opponent2.id,
|
||||
team1Score: 10,
|
||||
team2Score: 5,
|
||||
status: 'completed',
|
||||
playedAt: new Date(Date.now() + 86400000), // Tomorrow
|
||||
},
|
||||
});
|
||||
|
||||
console.log(`🌍 Created tournament "${tournament.name}" with 1 match for player ${currentPlayerId}`);
|
||||
});
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user