Files
sharedinbox/test/widget/try_connection_button_test.dart

58 lines
1.7 KiB
Dart

import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:sharedinbox/ui/widgets/try_connection_button.dart';
Widget _wrap(Widget child) => MaterialApp(
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(seedColor: Colors.indigo),
useMaterial3: true,
),
home: Scaffold(body: child),
);
void main() {
group('TryConnectionButton', () {
testWidgets('shows "Try connection" button when idle', (tester) async {
await tester.pumpWidget(
_wrap(const TryConnectionButton(testing: false, onPressed: null)),
);
expect(find.text('Try connection'), findsOneWidget);
});
testWidgets('shows spinner when testing', (tester) async {
await tester.pumpWidget(
_wrap(const TryConnectionButton(testing: true, onPressed: null)),
);
expect(find.byType(CircularProgressIndicator), findsOneWidget);
expect(find.text('Try connection'), findsNothing);
});
testWidgets('shows okMessage when provided', (tester) async {
await tester.pumpWidget(
_wrap(
const TryConnectionButton(
testing: false,
onPressed: null,
okMessage: 'Connected!',
),
),
);
expect(find.text('Connected!'), findsOneWidget);
});
testWidgets('shows errorMessage when provided', (tester) async {
await tester.pumpWidget(
_wrap(
const TryConnectionButton(
testing: false,
onPressed: null,
errorMessage: 'Connection failed',
),
),
);
expect(find.text('Connection failed'), findsOneWidget);
});
});
}