34 lines
1.4 KiB
Dart
34 lines
1.4 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:flutter_test/flutter_test.dart';
|
|
import 'package:manager/core/theme/app_theme.dart';
|
|
import 'package:manager/core/theme/status_colors.dart';
|
|
import 'package:manager/core/widgets/status_pill.dart';
|
|
|
|
Widget _wrap(Widget child) => MaterialApp(theme: AppTheme.light(), home: Scaffold(body: Center(child: child)));
|
|
|
|
void main() {
|
|
testWidgets('renders its label', (tester) async {
|
|
await tester.pumpWidget(_wrap(const StatusPill(label: 'up', severity: Severity.good)));
|
|
expect(find.text('up'), findsOneWidget);
|
|
});
|
|
|
|
testWidgets('good/critical/neutral each resolve to a distinct pill color', (tester) async {
|
|
Future<Color> pillColorFor(Severity severity) async {
|
|
await tester.pumpWidget(_wrap(StatusPill(label: severity.name, severity: severity)));
|
|
final container = tester.widget<Container>(
|
|
find.descendant(of: find.byType(StatusPill), matching: find.byType(Container)).first,
|
|
);
|
|
final decoration = container.decoration as BoxDecoration;
|
|
return decoration.color!;
|
|
}
|
|
|
|
final good = await pillColorFor(Severity.good);
|
|
final critical = await pillColorFor(Severity.critical);
|
|
final neutral = await pillColorFor(Severity.neutral);
|
|
|
|
expect(good, isNot(equals(critical)));
|
|
expect(good, isNot(equals(neutral)));
|
|
expect(critical, isNot(equals(neutral)));
|
|
});
|
|
}
|