From 4dcd4f0f71f54eacc4cfc9d72f8fb138f57f56dd Mon Sep 17 00:00:00 2001 From: Felix Kirchner Date: Fri, 22 May 2026 20:00:28 +0200 Subject: [PATCH] fix: name count 3 player issue --- lib/data/dao/player_dao.dart | 2 +- test/db_tests/entities/player_test.dart | 55 ++++++++++++++++++++++++- 2 files changed, 55 insertions(+), 2 deletions(-) diff --git a/lib/data/dao/player_dao.dart b/lib/data/dao/player_dao.dart index 8b60aa4..40c842a 100644 --- a/lib/data/dao/player_dao.dart +++ b/lib/data/dao/player_dao.dart @@ -195,7 +195,7 @@ class PlayerDao extends DatabaseAccessor with _$PlayerDaoMixin { if (previousNameCount > 1) { // Multiple players final nameCount = await getNameCount(name: previousPlayerName); - await updateNameCount(playerId: player!.id, nameCount: nameCount - 1); + await updateNameCount(playerId: player!.id, nameCount: nameCount); } else { // Only one player await updateNameCount(playerId: player!.id, nameCount: 0); diff --git a/test/db_tests/entities/player_test.dart b/test/db_tests/entities/player_test.dart index 1061eba..4105df1 100644 --- a/test/db_tests/entities/player_test.dart +++ b/test/db_tests/entities/player_test.dart @@ -233,7 +233,7 @@ void main() { expect(allPlayers, isEmpty); }); - test('updatePlayerName() updates the nameCount correctly', () async { + test('updatePlayerName() sets correct nameCount with 2 player', () async { await database.playerDao.addPlayer(player: testPlayer1); await database.playerDao.addPlayer(player: testPlayer2); @@ -269,6 +269,59 @@ void main() { expect(player.nameCount, 0); }); + test('updatePlayerName() sets correct nameCount with 3 player', () async { + await database.playerDao.addPlayersAsList( + players: [testPlayer1, testPlayer2, testPlayer3], + ); + + // Changing both names to player 1's name + final newName = testPlayer1.name; + await database.playerDao.updatePlayerName( + playerId: testPlayer2.id, + name: newName, + ); + await database.playerDao.updatePlayerName( + playerId: testPlayer3.id, + name: newName, + ); + + var player = await database.playerDao.getPlayerById( + playerId: testPlayer1.id, + ); + expect(player.nameCount, 1); + + player = await database.playerDao.getPlayerById( + playerId: testPlayer2.id, + ); + expect(player.nameCount, 2); + + player = await database.playerDao.getPlayerById( + playerId: testPlayer3.id, + ); + expect(player.nameCount, 3); + + // Changing the middle players name + await database.playerDao.updatePlayerName( + playerId: testPlayer2.id, + name: 'different name', + ); + + player = await database.playerDao.getPlayerById( + playerId: testPlayer1.id, + ); + expect(player.nameCount, 1); + + player = await database.playerDao.getPlayerById( + playerId: testPlayer2.id, + ); + expect(player.nameCount, 0); + + player = await database.playerDao.getPlayerById( + playerId: testPlayer3.id, + ); + expect(player.nameCount, 2); + }); + test('updatePlayerDescription() works correctly', () async { await database.playerDao.addPlayer(player: testPlayer1);