Files
manager/test/core/widgets/empty_state_test.dart
2026-07-27 14:42:23 +02:00

45 lines
1.3 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/widgets/empty_state.dart';
void main() {
testWidgets('renders title/message and invokes the action callback', (tester) async {
var tapped = false;
await tester.pumpWidget(
MaterialApp(
theme: AppTheme.light(),
home: Scaffold(
body: EmptyState(
icon: Icons.layers_outlined,
title: 'No services yet',
message: 'Scan a compose folder to discover services.',
actionLabel: 'Scan now',
onAction: () => tapped = true,
),
),
),
);
expect(find.text('No services yet'), findsOneWidget);
expect(find.text('Scan a compose folder to discover services.'), findsOneWidget);
await tester.tap(find.widgetWithText(OutlinedButton, 'Scan now'));
await tester.pump();
expect(tapped, isTrue);
});
testWidgets('omits the action button when none is given', (tester) async {
await tester.pumpWidget(
MaterialApp(
theme: AppTheme.light(),
home: const Scaffold(
body: EmptyState(icon: Icons.inbox_outlined, title: 'Nothing here'),
),
),
);
expect(find.byType(OutlinedButton), findsNothing);
});
}