m3_lightmeter/test/screens/lightmeter_pro/lightmeter_pro_screen_golden_test.dart
Vadim f0d707b071
Show Lightmeter Pro price before purchase (#183)
* Upgraded `targetSdkVersion` to 34

* added price to `IAPProduct`

* implemented `ProFeaturesScreen` (wip)

* finalized `ProFeaturesScreen` layout

* replaced `ProFeaturesDialog` with `ProFeaturesScreen`

* added translations

* fixed feature checkbox width calculation

* fixed tests

* separated android & ios features

* NPE

* changed "get pro" tile colors

* unified Lightmeter Pro related naming

* typo

* updated golden tests

* use iap 0.11.0

* revert unrelated changes

This reverts commit bae5ead8f0.

* lint

* adjusted eng translation

* updated goldens
2024-07-23 23:19:41 +02:00

49 lines
1.4 KiB
Dart

import 'package:flutter/widgets.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:golden_toolkit/golden_toolkit.dart';
import 'package:lightmeter/data/models/theme_type.dart';
import 'package:lightmeter/screens/lightmeter_pro/screen_lightmeter_pro.dart';
import 'package:m3_lightmeter_iap/m3_lightmeter_iap.dart';
import 'package:shared_preferences/shared_preferences.dart';
import '../../application_mock.dart';
import '../../utils/golden_test_set_theme.dart';
void main() {
setUpAll(() {
SharedPreferences.setMockInitialValues({});
});
testGoldens(
'LightmeterProScreen golden test',
(tester) async {
final builder = DeviceBuilder();
builder.addScenario(
name: 'Get Pro',
widget: const _MockLightmeterProFlow(),
onCreate: (scenarioWidgetKey) async {
if (scenarioWidgetKey.toString().contains('Dark')) {
await setTheme<LightmeterProScreen>(tester, scenarioWidgetKey, ThemeType.dark);
}
},
);
await tester.pumpDeviceBuilder(builder);
await screenMatchesGolden(
tester,
'lightmeter_pro_screen',
);
},
);
}
class _MockLightmeterProFlow extends StatelessWidget {
const _MockLightmeterProFlow();
@override
Widget build(BuildContext context) {
return GoldenTestApplicationMock(
productStatus: IAPProductStatus.purchasable,
child: LightmeterProScreen(),
);
}
}