fix overlapping members in teams test
This commit is contained in:
@@ -3,6 +3,8 @@ import 'package:drift/drift.dart';
|
|||||||
import 'package:drift/native.dart';
|
import 'package:drift/native.dart';
|
||||||
import 'package:flutter_test/flutter_test.dart';
|
import 'package:flutter_test/flutter_test.dart';
|
||||||
import 'package:game_tracker/data/db/database.dart';
|
import 'package:game_tracker/data/db/database.dart';
|
||||||
|
import 'package:game_tracker/data/dto/game.dart';
|
||||||
|
import 'package:game_tracker/data/dto/match.dart';
|
||||||
import 'package:game_tracker/data/dto/player.dart';
|
import 'package:game_tracker/data/dto/player.dart';
|
||||||
import 'package:game_tracker/data/dto/team.dart';
|
import 'package:game_tracker/data/dto/team.dart';
|
||||||
|
|
||||||
@@ -15,6 +17,8 @@ void main() {
|
|||||||
late Team testTeam1;
|
late Team testTeam1;
|
||||||
late Team testTeam2;
|
late Team testTeam2;
|
||||||
late Team testTeam3;
|
late Team testTeam3;
|
||||||
|
late Game testGame1;
|
||||||
|
late Game testGame2;
|
||||||
final fixedDate = DateTime(2025, 11, 19, 00, 11, 23);
|
final fixedDate = DateTime(2025, 11, 19, 00, 11, 23);
|
||||||
final fakeClock = Clock(() => fixedDate);
|
final fakeClock = Clock(() => fixedDate);
|
||||||
|
|
||||||
@@ -44,11 +48,15 @@ void main() {
|
|||||||
name: 'Team Gamma',
|
name: 'Team Gamma',
|
||||||
members: [testPlayer1, testPlayer3],
|
members: [testPlayer1, testPlayer3],
|
||||||
);
|
);
|
||||||
|
testGame1 = Game(name: 'Game 1');
|
||||||
|
testGame2 = Game(name: 'Game 2');
|
||||||
});
|
});
|
||||||
|
|
||||||
await database.playerDao.addPlayersAsList(
|
await database.playerDao.addPlayersAsList(
|
||||||
players: [testPlayer1, testPlayer2, testPlayer3, testPlayer4],
|
players: [testPlayer1, testPlayer2, testPlayer3, testPlayer4],
|
||||||
);
|
);
|
||||||
|
await database.gameDao.addGame(game: testGame1);
|
||||||
|
await database.gameDao.addGame(game: testGame2);
|
||||||
});
|
});
|
||||||
|
|
||||||
tearDown(() async {
|
tearDown(() async {
|
||||||
@@ -334,12 +342,47 @@ void main() {
|
|||||||
|
|
||||||
// Verifies that teams with overlapping members are independent.
|
// Verifies that teams with overlapping members are independent.
|
||||||
test('Teams with overlapping members are independent', () async {
|
test('Teams with overlapping members are independent', () async {
|
||||||
// testTeam1 has [player1, player2]
|
// Create two matches since player_match has primary key {playerId, matchId}
|
||||||
// testTeam3 has [player1, player3]
|
final match1 = Match(name: 'Match 1', game: testGame1);
|
||||||
|
final match2 = Match(name: 'Match 2', game: testGame2);
|
||||||
|
await database.matchDao.addMatch(match: match1);
|
||||||
|
await database.matchDao.addMatch(match: match2);
|
||||||
|
|
||||||
|
// Add teams to database
|
||||||
await database.teamDao.addTeamsAsList(
|
await database.teamDao.addTeamsAsList(
|
||||||
teams: [testTeam1, testTeam3],
|
teams: [testTeam1, testTeam3],
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// Associate players with teams through match1
|
||||||
|
// testTeam1: player1, player2
|
||||||
|
await database.playerMatchDao.addPlayerToMatch(
|
||||||
|
playerId: testPlayer1.id,
|
||||||
|
matchId: match1.id,
|
||||||
|
teamId: testTeam1.id,
|
||||||
|
score: 0,
|
||||||
|
);
|
||||||
|
await database.playerMatchDao.addPlayerToMatch(
|
||||||
|
playerId: testPlayer2.id,
|
||||||
|
matchId: match1.id,
|
||||||
|
teamId: testTeam1.id,
|
||||||
|
score: 0,
|
||||||
|
);
|
||||||
|
|
||||||
|
// Associate players with teams through match2
|
||||||
|
// testTeam3: player1, player3 (overlapping player1)
|
||||||
|
await database.playerMatchDao.addPlayerToMatch(
|
||||||
|
playerId: testPlayer1.id,
|
||||||
|
matchId: match2.id,
|
||||||
|
teamId: testTeam3.id,
|
||||||
|
score: 0,
|
||||||
|
);
|
||||||
|
await database.playerMatchDao.addPlayerToMatch(
|
||||||
|
playerId: testPlayer3.id,
|
||||||
|
matchId: match2.id,
|
||||||
|
teamId: testTeam3.id,
|
||||||
|
score: 0,
|
||||||
|
);
|
||||||
|
|
||||||
final team1 = await database.teamDao.getTeamById(teamId: testTeam1.id);
|
final team1 = await database.teamDao.getTeamById(teamId: testTeam1.id);
|
||||||
final team3 = await database.teamDao.getTeamById(teamId: testTeam3.id);
|
final team3 = await database.teamDao.getTeamById(teamId: testTeam3.id);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user