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 pillColorFor(Severity severity) async { await tester.pumpWidget(_wrap(StatusPill(label: severity.name, severity: severity))); final container = tester.widget( 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))); }); }