43 lines
1.5 KiB
Dart
43 lines
1.5 KiB
Dart
|
import 'package:flutter/material.dart';
|
||
|
import 'package:flutter_test/flutter_test.dart';
|
||
|
import 'package:werwolf/models/player.dart';
|
||
|
import 'package:werwolf/models/role.dart';
|
||
|
import 'package:werwolf/screens/gameboard.dart';
|
||
|
|
||
|
void main() {
|
||
|
group('PlayerGridView Tests', () {
|
||
|
List<Player> players = [
|
||
|
Player(name: 'Alice', role: Role.dorfbewohner, isDead: false),
|
||
|
Player(name: 'Bob', role: Role.werwolf, isDead: false),
|
||
|
Player(name: 'Charlie', role: Role.dorfbewohner, isDead: false),
|
||
|
];
|
||
|
|
||
|
testWidgets('Displays player names in grid', (WidgetTester tester) async {
|
||
|
await tester.pumpWidget(MaterialApp(home: PlayerGridView(players: players)));
|
||
|
|
||
|
expect(find.text('Alice'), findsOneWidget);
|
||
|
expect(find.text('Bob'), findsOneWidget);
|
||
|
expect(find.text('Charlie'), findsOneWidget);
|
||
|
});
|
||
|
|
||
|
testWidgets('Kills a player on tap', (WidgetTester tester) async {
|
||
|
await tester.pumpWidget(MaterialApp(home: PlayerGridView(players: players)));
|
||
|
|
||
|
await tester.tap(find.text('Alice'));
|
||
|
await tester.pumpAndSettle();
|
||
|
|
||
|
expect(players[0].isDead, true);
|
||
|
expect(find.byIcon(Icons.close), findsOneWidget); // Check if dead icon is shown
|
||
|
});
|
||
|
|
||
|
testWidgets('Changes phase on button press', (WidgetTester tester) async {
|
||
|
await tester.pumpWidget(MaterialApp(home: PlayerGridView(players: players)));
|
||
|
|
||
|
await tester.tap(find.text('Tag skippen'));
|
||
|
await tester.pumpAndSettle();
|
||
|
|
||
|
expect(find.text('Nacht skippen'), findsOneWidget);
|
||
|
});
|
||
|
});
|
||
|
}
|