Skip to content

Commit

Permalink
Add Golden test
Browse files Browse the repository at this point in the history
  • Loading branch information
natsuk4ze committed Jun 29, 2024
1 parent 8c351f8 commit 91d727c
Show file tree
Hide file tree
Showing 4 changed files with 68 additions and 0 deletions.
4 changes: 4 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,10 @@ jobs:
- name: Widget Test
timeout-minutes: 5
run: flutter test test/widget_test.dart

- name: Golden Test
timeout-minutes: 5
run: flutter test test/golden_test.dart

- name: Build iOS
timeout-minutes: 10
Expand Down
64 changes: 64 additions & 0 deletions test/golden_test.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
// ignore_for_file: scoped_providers_should_specify_dependencies
import 'package:flutter/material.dart';
import 'package:golden_toolkit/golden_toolkit.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:npm/features/package_details/package_details.dart';
import 'package:npm/features/package_details/package_details_page.dart';
import 'package:npm/features/packages/packages.dart';
import 'package:npm/features/packages/packages_page.dart';
import 'package:npm/util/shared_preferences.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:test/test.dart';

import 'fake_package_details.dart';
import 'fake_packages.dart';

void main() {
group(['Golden Test'], () {
testGoldens(
'PackagesPage',
(tester) async {
SharedPreferences.setMockInitialValues({});
final prefs = await SharedPreferences.getInstance();
final builder = DeviceBuilder()
..addScenario(
widget: ProviderScope(
overrides: [
packagesProvider(search: initialSearchText)
.overrideWith(fakePackagesProvider),
sharedPreferencesProvider.overrideWith((_) => prefs),
],
child: const MaterialApp(
debugShowCheckedModeBanner: false,
home: PackagesPage(),
),
));
await tester.pumpDeviceBuilder(builder);
await screenMatchesGolden(tester, 'packages_page');
},
);

testGoldens(
'PackageDetailsPage',
(tester) async {
SharedPreferences.setMockInitialValues({});
final prefs = await SharedPreferences.getInstance();
final builder = DeviceBuilder()
..addScenario(
widget: ProviderScope(
overrides: [
packageDetailsProvider(id: fakePackageDetailsName)
.overrideWith(fakePackageDetailsProvider),
sharedPreferencesProvider.overrideWith((_) => prefs),
],
child: const MaterialApp(
debugShowCheckedModeBanner: false,
home: PackageDetailsPage(id: fakePackageDetailsName),
),
));
await tester.pumpDeviceBuilder(builder);
await screenMatchesGolden(tester, 'pakage_details_page');
},
);
});
}
Binary file added test/goldens/packages_page.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added test/goldens/pakage_details_page.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 91d727c

Please sign in to comment.