Skip to content

Commit 7b01b75

Browse files
committed
Add flutter test
1 parent 3476968 commit 7b01b75

2 files changed

Lines changed: 41 additions & 10 deletions

File tree

.github/workflows/quality.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@ jobs:
1414

1515
- name: Generate localization files
1616
run: flutter gen-l10n
17-
1817
- run: dart format --set-exit-if-changed .
1918
- run: flutter analyze
19+
- run: flutter test
2020
- name: Run Dart Code Metrics
2121
run: |
2222
dart pub global activate dart_code_metrics

test/widget_test.dart

Lines changed: 40 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,34 @@
1+
// import 'package:flutter/material.dart';
2+
// import 'package:flutter_test/flutter_test.dart';
3+
// import 'package:provider/provider.dart';
4+
5+
// import 'package:vpn_client/main.dart';
6+
// import 'package:vpn_client/theme_provider.dart';
7+
8+
// void main() {
9+
// testWidgets('Counter increments smoke test', (WidgetTester tester) async {
10+
// await tester.pumpWidget(
11+
// MultiProvider(
12+
// providers: [
13+
// ChangeNotifierProvider<ThemeProvider>(create: (_) => ThemeProvider()),
14+
// ],
15+
// child: const MaterialApp(home: App()),
16+
// ),
17+
// );
18+
// <-- This test is designed for Flutter's default counter app, which are not using. So ours app doesn’t show '0' or '1', which leads to: error test
19+
20+
21+
// expect(find.text('0'), findsOneWidget);
22+
// expect(find.text('1'), findsNothing);
23+
24+
// await tester.tap(find.byIcon(Icons.add));
25+
// await tester.pump();
26+
27+
// expect(find.text('0'), findsNothing);
28+
// expect(find.text('1'), findsOneWidget);
29+
// });
30+
// }
31+
132
import 'package:flutter/material.dart';
233
import 'package:flutter_test/flutter_test.dart';
334
import 'package:provider/provider.dart';
@@ -6,7 +37,7 @@ import 'package:vpn_client/main.dart';
637
import 'package:vpn_client/theme_provider.dart';
738

839
void main() {
9-
testWidgets('Counter increments smoke test', (WidgetTester tester) async {
40+
testWidgets('App shows VPN status on launch', (WidgetTester tester) async {
1041
await tester.pumpWidget(
1142
MultiProvider(
1243
providers: [
@@ -16,13 +47,13 @@ void main() {
1647
),
1748
);
1849

19-
expect(find.text('0'), findsOneWidget);
20-
expect(find.text('1'), findsNothing);
21-
22-
await tester.tap(find.byIcon(Icons.add));
23-
await tester.pump();
24-
25-
expect(find.text('0'), findsNothing);
26-
expect(find.text('1'), findsOneWidget);
50+
// Check that 'CONNECTED' or 'DISCONNECTED' appears on screen
51+
expect(
52+
find.byWidgetPredicate(
53+
(widget) => widget is Text &&
54+
(widget.data == 'CONNECTED' || widget.data == 'DISCONNECTED'),
55+
),
56+
findsOneWidget,
57+
);
2758
});
2859
}

0 commit comments

Comments
 (0)