diff --git a/example/assets/preview_config.json b/example/assets/preview_config.json index 2d995cd..6894852 100644 --- a/example/assets/preview_config.json +++ b/example/assets/preview_config.json @@ -7,8 +7,8 @@ "id": "widgets", "route": "widgets", "builtComponents": { - "./lib/catalog/widgets/main_screen.dart": { - "path": "./lib/catalog/widgets/main_screen.dart", + "./example/lib/catalog/widgets/main_screen.dart": { + "path": "./example/lib/catalog/widgets/main_screen.dart", "route": "widgets", "package": "package:example/catalog/widgets/main_screen.dart", "clazzName": "MainScreenPreviewPreviewPageDummy", @@ -35,8 +35,8 @@ "id": "bottom", "route": "widgets/utils/bottom", "builtComponents": { - "./lib/catalog/widgets/utils/bottom/fab_widget.dart": { - "path": "./lib/catalog/widgets/utils/bottom/fab_widget.dart", + "./example/lib/catalog/widgets/utils/bottom/fab_widget.dart": { + "path": "./example/lib/catalog/widgets/utils/bottom/fab_widget.dart", "route": "widgets/utils/bottom", "package": "package:example/catalog/widgets/utils/bottom/fab_widget.dart", "clazzName": "FabWidgetPreviewPreviewPageDummy", @@ -58,8 +58,8 @@ "id": "screen", "route": "widgets/screen", "builtComponents": { - "./lib/catalog/widgets/screen/body_widget.dart": { - "path": "./lib/catalog/widgets/screen/body_widget.dart", + "./example/lib/catalog/widgets/screen/body_widget.dart": { + "path": "./example/lib/catalog/widgets/screen/body_widget.dart", "route": "widgets/screen", "package": "package:example/catalog/widgets/screen/body_widget.dart", "clazzName": "BodyWidgetPreviewPreviewPageDummy", @@ -73,8 +73,8 @@ ] } }, - "./lib/catalog/widgets/screen/counter_widget.dart": { - "path": "./lib/catalog/widgets/screen/counter_widget.dart", + "./example/lib/catalog/widgets/screen/counter_widget.dart": { + "path": "./example/lib/catalog/widgets/screen/counter_widget.dart", "route": "widgets/screen", "package": "package:example/catalog/widgets/screen/counter_widget.dart", "clazzName": "CounterWidgetPreviewPreviewPageDummy", diff --git a/example/integration_test/catalog_widget_integration_test.dart b/example/integration_test/catalog_widget_integration_test.dart index 3791204..5a5fb65 100644 --- a/example/integration_test/catalog_widget_integration_test.dart +++ b/example/integration_test/catalog_widget_integration_test.dart @@ -1,17 +1,25 @@ /// AUTOGENERATED FILE. DO NOT EDIT -import 'package:example/widgets/utils/bottom/catalog/integration_test/fab_widget_integration_test.dart' - as zcch; -import 'package:example/widgets/screen/catalog/integration_test/body_widget_integration_test.dart' - as uetd; -import 'package:example/widgets/screen/catalog/integration_test/counter_widget_integration_test.dart' - as uoui; -import 'package:example/widgets/catalog/integration_test/main_screen_integration_test.dart' - as klxv; +/// Launch on Android or iOS as usual. +/// Launch on Web with: +/// +/// chromedriver --port=4444 +/// flutter drive --driver=test_driver/integration_test.dart --target=integration_test/catalog_widget_integration_test.dart -d chrome + +import 'package:integration_test/integration_test.dart'; + +import 'package:example/widgets/utils/bottom/catalog/integration_test/fab_widget_integration_test.dart' as mzpp; +import 'package:example/widgets/screen/catalog/integration_test/body_widget_integration_test.dart' as satm; +import 'package:example/widgets/screen/catalog/integration_test/counter_widget_integration_test.dart' as azmi; +import 'package:example/widgets/catalog/integration_test/main_screen_integration_test.dart' as kbve; void main() { - zcch.FabWidgetIntegrationTest().main(); - uetd.BodyWidgetIntegrationTest().main(); - uoui.CounterWidgetIntegrationTest().main(); - klxv.MainScreenIntegrationTest().main(); + IntegrationTestWidgetsFlutterBinding.ensureInitialized(); + + mzpp.FabWidgetIntegrationTest().main(); +satm.BodyWidgetIntegrationTest().main(); +azmi.CounterWidgetIntegrationTest().main(); +kbve.MainScreenIntegrationTest().main(); } + + \ No newline at end of file diff --git a/example/lib/catalog/catalog_component.dart b/example/lib/catalog/catalog_component.dart index cd1871d..bbed7f9 100644 --- a/example/lib/catalog/catalog_component.dart +++ b/example/lib/catalog/catalog_component.dart @@ -3,90 +3,126 @@ import 'package:flutter/material.dart'; import 'package:catalog/catalog.dart'; + import 'package:example/catalog/widgets/utils/bottom/fab_widget.dart'; -import 'package:example/catalog/widgets/screen/body_widget.dart'; -import 'package:example/catalog/widgets/screen/counter_widget.dart'; + + + + + + +import 'package:example/catalog/widgets/screen/body_widget.dart';import 'package:example/catalog/widgets/screen/counter_widget.dart'; + + import 'package:example/catalog/widgets/main_screen.dart'; + + + + + + class CatalogComponent extends StatefulWidget { static String routeName = '/catalog'; - - static GoRoute route = GoRoute( - path: CatalogComponent.routeName, - pageBuilder: (context, state) => NoTransitionPage( - key: state.pageKey, - child: const CatalogComponent(), - ), - routes: [ - GoRoute( - path: 'widgets', - redirect: (context, state) { - if (state.fullPath != state.matchedLocation) return null; - return CatalogComponent.routeName; - }, - routes: [ - GoRoute( - path: MainScreenPreviewPreviewPageDummy.routeName, - pageBuilder: (context, state) => NoTransitionPage( - key: state.pageKey, - child: const MainScreenPreviewPreviewPageDummy(), - ), + + static GoRoute route = GoRoute( + path: CatalogComponent.routeName, + pageBuilder: (context, state) => NoTransitionPage( + key: state.pageKey, + child: const CatalogComponent(), ), - GoRoute( - path: 'utils', - redirect: (context, state) { - if (state.fullPath != state.matchedLocation) return null; - return CatalogComponent.routeName; - }, - routes: [ - GoRoute( - path: 'bottom', - redirect: (context, state) { - if (state.fullPath != state.matchedLocation) return null; - return CatalogComponent.routeName; - }, - routes: [ - GoRoute( - path: FabWidgetPreviewPreviewPageDummy.routeName, - pageBuilder: (context, state) => NoTransitionPage( - key: state.pageKey, - child: const FabWidgetPreviewPreviewPageDummy(), - ), - ), - ], - ) - ], + routes: [ + GoRoute( + path: 'widgets', + redirect: (context, state) { + if (state.fullPath != state.matchedLocation) return null; + return CatalogComponent.routeName; + }, + routes: [ + + GoRoute( + path: MainScreenPreviewPreviewPageDummy.routeName, + pageBuilder: (context, state) => NoTransitionPage( + key: state.pageKey, + child: const MainScreenPreviewPreviewPageDummy(), ), - GoRoute( - path: 'screen', - redirect: (context, state) { - if (state.fullPath != state.matchedLocation) return null; - return CatalogComponent.routeName; - }, - routes: [ - GoRoute( - path: BodyWidgetPreviewPreviewPageDummy.routeName, - pageBuilder: (context, state) => NoTransitionPage( - key: state.pageKey, - child: const BodyWidgetPreviewPreviewPageDummy(), - ), - ), - GoRoute( - path: CounterWidgetPreviewPreviewPageDummy.routeName, - pageBuilder: (context, state) => NoTransitionPage( - key: state.pageKey, - child: const CounterWidgetPreviewPreviewPageDummy(), - ), - ), - ], - ) - ], + ) + + + , + GoRoute( + path: 'utils', + redirect: (context, state) { + if (state.fullPath != state.matchedLocation) return null; + return CatalogComponent.routeName; + }, + routes: [ + + + GoRoute( + path: 'bottom', + redirect: (context, state) { + if (state.fullPath != state.matchedLocation) return null; + return CatalogComponent.routeName; + }, + routes: [ + + GoRoute( + path: FabWidgetPreviewPreviewPageDummy.routeName, + pageBuilder: (context, state) => NoTransitionPage( + key: state.pageKey, + child: const FabWidgetPreviewPreviewPageDummy(), + ), + ) + + + , + + ], + ) + + ], + ) + , GoRoute( + path: 'screen', + redirect: (context, state) { + if (state.fullPath != state.matchedLocation) return null; + return CatalogComponent.routeName; + }, + routes: [ + + GoRoute( + path: BodyWidgetPreviewPreviewPageDummy.routeName, + pageBuilder: (context, state) => NoTransitionPage( + key: state.pageKey, + child: const BodyWidgetPreviewPreviewPageDummy(), + ), + ) + + , + GoRoute( + path: CounterWidgetPreviewPreviewPageDummy.routeName, + pageBuilder: (context, state) => NoTransitionPage( + key: state.pageKey, + child: const CounterWidgetPreviewPreviewPageDummy(), + ), + ) + + + , + + ], + ) + + ], + ) + + ], ) - ], - ); - +; + const CatalogComponent({super.key}); @override @@ -94,6 +130,7 @@ class CatalogComponent extends StatefulWidget { } class CatalogComponentState extends State { + @override Widget build(BuildContext context) { return FutureBuilder( @@ -122,3 +159,5 @@ class CatalogComponentState extends State { ); } } + + \ No newline at end of file diff --git a/example/lib/catalog/widgets/main_screen.dart b/example/lib/catalog/widgets/main_screen.dart index 2435fa2..8478f34 100644 --- a/example/lib/catalog/widgets/main_screen.dart +++ b/example/lib/catalog/widgets/main_screen.dart @@ -4,19 +4,19 @@ import 'package:flutter/material.dart'; import 'package:example/widgets/catalog/preview/main_screen.preview.dart'; class MainScreenPreviewPreviewPageDummy extends StatefulWidget { - static String routeName = 'main_screen'; + static String routeName = 'main_screen'; + const MainScreenPreviewPreviewPageDummy({super.key}); @override - MainScreenPreviewPreviewPageDummyState createState() => - MainScreenPreviewPreviewPageDummyState(); + MainScreenPreviewPreviewPageDummyState createState() => MainScreenPreviewPreviewPageDummyState(); } -class MainScreenPreviewPreviewPageDummyState - extends State { +class MainScreenPreviewPreviewPageDummyState extends State { @override Widget build(BuildContext context) { return const MainScreenPreview(); } } + \ No newline at end of file diff --git a/example/lib/catalog/widgets/screen/body_widget.dart b/example/lib/catalog/widgets/screen/body_widget.dart index 57f4c75..54eb25b 100644 --- a/example/lib/catalog/widgets/screen/body_widget.dart +++ b/example/lib/catalog/widgets/screen/body_widget.dart @@ -4,19 +4,19 @@ import 'package:flutter/material.dart'; import 'package:example/widgets/screen/catalog/preview/body_widget.preview.dart'; class BodyWidgetPreviewPreviewPageDummy extends StatefulWidget { - static String routeName = 'body_widget'; + static String routeName = 'body_widget'; + const BodyWidgetPreviewPreviewPageDummy({super.key}); @override - BodyWidgetPreviewPreviewPageDummyState createState() => - BodyWidgetPreviewPreviewPageDummyState(); + BodyWidgetPreviewPreviewPageDummyState createState() => BodyWidgetPreviewPreviewPageDummyState(); } -class BodyWidgetPreviewPreviewPageDummyState - extends State { +class BodyWidgetPreviewPreviewPageDummyState extends State { @override Widget build(BuildContext context) { return const BodyWidgetPreview(); } } + \ No newline at end of file diff --git a/example/lib/catalog/widgets/screen/counter_widget.dart b/example/lib/catalog/widgets/screen/counter_widget.dart index dc4cda2..0d5e240 100644 --- a/example/lib/catalog/widgets/screen/counter_widget.dart +++ b/example/lib/catalog/widgets/screen/counter_widget.dart @@ -4,19 +4,19 @@ import 'package:flutter/material.dart'; import 'package:example/widgets/screen/catalog/preview/counter_widget.preview.dart'; class CounterWidgetPreviewPreviewPageDummy extends StatefulWidget { - static String routeName = 'counter_widget'; + static String routeName = 'counter_widget'; + const CounterWidgetPreviewPreviewPageDummy({super.key}); @override - CounterWidgetPreviewPreviewPageDummyState createState() => - CounterWidgetPreviewPreviewPageDummyState(); + CounterWidgetPreviewPreviewPageDummyState createState() => CounterWidgetPreviewPreviewPageDummyState(); } -class CounterWidgetPreviewPreviewPageDummyState - extends State { +class CounterWidgetPreviewPreviewPageDummyState extends State { @override Widget build(BuildContext context) { return const CounterWidgetPreview(); } } + \ No newline at end of file diff --git a/example/lib/catalog/widgets/utils/bottom/fab_widget.dart b/example/lib/catalog/widgets/utils/bottom/fab_widget.dart index 5b10f36..0fc351c 100644 --- a/example/lib/catalog/widgets/utils/bottom/fab_widget.dart +++ b/example/lib/catalog/widgets/utils/bottom/fab_widget.dart @@ -4,19 +4,19 @@ import 'package:flutter/material.dart'; import 'package:example/widgets/utils/bottom/catalog/preview/fab_widget.preview.dart'; class FabWidgetPreviewPreviewPageDummy extends StatefulWidget { - static String routeName = 'fab_widget'; + static String routeName = 'fab_widget'; + const FabWidgetPreviewPreviewPageDummy({super.key}); @override - FabWidgetPreviewPreviewPageDummyState createState() => - FabWidgetPreviewPreviewPageDummyState(); + FabWidgetPreviewPreviewPageDummyState createState() => FabWidgetPreviewPreviewPageDummyState(); } -class FabWidgetPreviewPreviewPageDummyState - extends State { +class FabWidgetPreviewPreviewPageDummyState extends State { @override Widget build(BuildContext context) { return const FabWidgetPreview(); } } + \ No newline at end of file diff --git a/example/lib/widgets/catalog/integration_test/main_screen_integration_test.dart b/example/lib/widgets/catalog/integration_test/main_screen_integration_test.dart index badb89c..fbaa7fc 100644 --- a/example/lib/widgets/catalog/integration_test/main_screen_integration_test.dart +++ b/example/lib/widgets/catalog/integration_test/main_screen_integration_test.dart @@ -4,6 +4,8 @@ /// import 'package:catalog/catalog.dart'; +import 'package:example/r.dart'; +import 'package:stringcare/stringcare.dart'; import '../dummy/main_screen.dummy.dart'; import '../preview/main_screen.preview.dart'; @@ -14,24 +16,28 @@ class MainScreenIntegrationTest { 'MainScreen - IntegrationTest Tests', () { testWidgets( - 'Lorem text not found', + 'Finds title and info text', (tester) async { + await tester.setupContext(); final dummy = MainScreenDummy().dummies.first; final widget = buildMainScreen(dummy); await tester.test(widget); - expect(find.text('lorem ipsu'), findsNothing); + expect(find.text(R.strings.title_app.string()), findsAny); + expect(find.text(R.strings.info_text.string()), findsAny); }, ); testWidgets( - 'Other lorem text not found', + 'Web title not displayed on widget', (tester) async { + await tester.setupContext(); + final dummy = MainScreenDummy().dummies.first; final widget = buildMainScreen(dummy); await tester.test(widget); - expect(find.text('ipsu lorem'), findsNothing); + expect(find.text(R.strings.title.string()), findsNothing); }, ); }, diff --git a/example/lib/widgets/catalog/preview/main_screen.preview.dart b/example/lib/widgets/catalog/preview/main_screen.preview.dart index 7095ff7..41ff423 100644 --- a/example/lib/widgets/catalog/preview/main_screen.preview.dart +++ b/example/lib/widgets/catalog/preview/main_screen.preview.dart @@ -11,17 +11,17 @@ import '../dummy/main_screen.dummy.dart'; 'infoText', 'counter', 'incrementCounter', - ], -) + ],) class MainScreenPreview extends ParentPreviewWidget { + @override String get title => 'main_screen'; - + @override String get basePath => '/catalog'; - + const MainScreenPreview({super.key}); - + @override Widget preview(BuildContext context) { Catalog().widgetBasicPreviewMap.clear(); @@ -106,25 +106,24 @@ class MainScreenPreview extends ParentPreviewWidget { ), ), for (int i = 0; i < MainScreenDummy().dummies.length; i++) - PreviewBoundary( - widgetKey: GlobalKey(), - dummyBuilder: () => MainScreenDummy().dummies[i], - builder: (BuildContext context, Dummy dummy) { - return buildMainScreen(dummy); - }, - ), + PreviewBoundary( + widgetKey: GlobalKey(), + dummyBuilder: () => MainScreenDummy().dummies[i], + builder: (BuildContext context, Dummy dummy) { + return buildMainScreen(dummy); + }, + ), + ], ) ], ); } + + } MainScreen buildMainScreen(Dummy dummy) { - return MainScreen( - title: dummy.parameters['title'], - infoText: dummy.parameters['infoText'], - counter: dummy.parameters['counter'], - incrementCounter: dummy.parameters['incrementCounter'], - ); + return MainScreen(title: dummy.parameters['title'],infoText: dummy.parameters['infoText'],counter: dummy.parameters['counter'],incrementCounter: dummy.parameters['incrementCounter'],); } + \ No newline at end of file diff --git a/example/lib/widgets/catalog/test/main_screen_test.dart b/example/lib/widgets/catalog/test/main_screen_test.dart index f08f498..04c23b6 100644 --- a/example/lib/widgets/catalog/test/main_screen_test.dart +++ b/example/lib/widgets/catalog/test/main_screen_test.dart @@ -4,6 +4,8 @@ /// import 'package:catalog/catalog.dart'; +import 'package:example/r.dart'; +import 'package:stringcare/stringcare.dart'; import '../dummy/main_screen.dummy.dart'; import '../preview/main_screen.preview.dart'; @@ -14,24 +16,28 @@ class MainScreenTest { 'MainScreen - Tests', () { testWidgets( - 'Lorem text not found', - (tester) async { + 'Finds title and info text', + (tester) async { + await tester.setupContext(); final dummy = MainScreenDummy().dummies.first; final widget = buildMainScreen(dummy); await tester.test(widget); - expect(find.text('lorem ipsu'), findsNothing); + expect(find.text(R.strings.title_app.string()), findsAny); + expect(find.text(R.strings.info_text.string()), findsAny); }, ); testWidgets( - 'Other lorem text not found', - (tester) async { + 'Web title not displayed on widget', + (tester) async { + await tester.setupContext(); + final dummy = MainScreenDummy().dummies.first; final widget = buildMainScreen(dummy); await tester.test(widget); - expect(find.text('ipsu lorem'), findsNothing); + expect(find.text(R.strings.title.string()), findsNothing); }, ); }, diff --git a/example/lib/widgets/screen/catalog/integration_test/body_widget_integration_test.dart b/example/lib/widgets/screen/catalog/integration_test/body_widget_integration_test.dart index 1730a89..fe54c20 100644 --- a/example/lib/widgets/screen/catalog/integration_test/body_widget_integration_test.dart +++ b/example/lib/widgets/screen/catalog/integration_test/body_widget_integration_test.dart @@ -4,6 +4,8 @@ /// import 'package:catalog/catalog.dart'; +import 'package:example/r.dart'; +import 'package:stringcare/stringcare.dart'; import '../dummy/body_widget.dummy.dart'; import '../preview/body_widget.preview.dart'; @@ -14,24 +16,29 @@ class BodyWidgetIntegrationTest { 'BodyWidget - IntegrationTest Tests', () { testWidgets( - 'Lorem text not found', + 'No title is found', (tester) async { + await tester.setupContext(); + final dummy = BodyWidgetDummy().dummies.first; final widget = buildBodyWidget(dummy); await tester.test(widget); - expect(find.text('lorem ipsu'), findsNothing); + expect(find.text(R.strings.title_app.string()), findsNothing); }, ); testWidgets( - 'Other lorem text not found', + 'Info text is displayed', (tester) async { + await tester.setupContext(); + final dummy = BodyWidgetDummy().dummies.first; final widget = buildBodyWidget(dummy); await tester.test(widget); - expect(find.text('ipsu lorem'), findsNothing); + expect(find.text('You have pushed the button this many times:'), + findsAny); }, ); }, diff --git a/example/lib/widgets/screen/catalog/preview/body_widget.preview.dart b/example/lib/widgets/screen/catalog/preview/body_widget.preview.dart index 24af584..c4cc0a7 100644 --- a/example/lib/widgets/screen/catalog/preview/body_widget.preview.dart +++ b/example/lib/widgets/screen/catalog/preview/body_widget.preview.dart @@ -9,17 +9,17 @@ import '../dummy/body_widget.dummy.dart'; parameters: [ 'infoText', 'counter', - ], -) + ],) class BodyWidgetPreview extends ParentPreviewWidget { + @override String get title => 'body_widget'; - + @override String get basePath => '/catalog'; - + const BodyWidgetPreview({super.key}); - + @override Widget preview(BuildContext context) { Catalog().widgetBasicPreviewMap.clear(); @@ -104,23 +104,24 @@ class BodyWidgetPreview extends ParentPreviewWidget { ), ), for (int i = 0; i < BodyWidgetDummy().dummies.length; i++) - PreviewBoundary( - widgetKey: GlobalKey(), - dummyBuilder: () => BodyWidgetDummy().dummies[i], - builder: (BuildContext context, Dummy dummy) { - return buildBodyWidget(dummy); - }, - ), + PreviewBoundary( + widgetKey: GlobalKey(), + dummyBuilder: () => BodyWidgetDummy().dummies[i], + builder: (BuildContext context, Dummy dummy) { + return buildBodyWidget(dummy); + }, + ), + ], ) ], ); } + + } BodyWidget buildBodyWidget(Dummy dummy) { - return BodyWidget( - infoText: dummy.parameters['infoText'], - counter: dummy.parameters['counter'], - ); + return BodyWidget(infoText: dummy.parameters['infoText'],counter: dummy.parameters['counter'],); } + \ No newline at end of file diff --git a/example/lib/widgets/screen/catalog/preview/counter_widget.preview.dart b/example/lib/widgets/screen/catalog/preview/counter_widget.preview.dart index 04f76ab..0281f98 100644 --- a/example/lib/widgets/screen/catalog/preview/counter_widget.preview.dart +++ b/example/lib/widgets/screen/catalog/preview/counter_widget.preview.dart @@ -9,17 +9,17 @@ import '../dummy/counter_widget.dummy.dart'; description: 'Basic counter widget', parameters: [ 'counter', - ], -) + ],) class CounterWidgetPreview extends ParentPreviewWidget { + @override String get title => 'counter_widget'; - + @override String get basePath => '/catalog'; - + const CounterWidgetPreview({super.key}); - + @override Widget preview(BuildContext context) { Catalog().widgetBasicPreviewMap.clear(); @@ -104,22 +104,24 @@ class CounterWidgetPreview extends ParentPreviewWidget { ), ), for (int i = 0; i < CounterWidgetDummy().dummies.length; i++) - PreviewBoundary( - widgetKey: GlobalKey(), - dummyBuilder: () => CounterWidgetDummy().dummies[i], - builder: (BuildContext context, Dummy dummy) { - return buildCounterWidget(dummy); - }, - ), + PreviewBoundary( + widgetKey: GlobalKey(), + dummyBuilder: () => CounterWidgetDummy().dummies[i], + builder: (BuildContext context, Dummy dummy) { + return buildCounterWidget(dummy); + }, + ), + ], ) ], ); } + + } CounterWidget buildCounterWidget(Dummy dummy) { - return CounterWidget( - counter: dummy.parameters['counter'], - ); + return CounterWidget(counter: dummy.parameters['counter'],); } + \ No newline at end of file diff --git a/example/lib/widgets/screen/catalog/test/body_widget_test.dart b/example/lib/widgets/screen/catalog/test/body_widget_test.dart index d95893a..ab4ad94 100644 --- a/example/lib/widgets/screen/catalog/test/body_widget_test.dart +++ b/example/lib/widgets/screen/catalog/test/body_widget_test.dart @@ -4,6 +4,8 @@ /// import 'package:catalog/catalog.dart'; +import 'package:example/r.dart'; +import 'package:stringcare/stringcare.dart'; import '../dummy/body_widget.dummy.dart'; import '../preview/body_widget.preview.dart'; @@ -14,24 +16,28 @@ class BodyWidgetTest { 'BodyWidget - Tests', () { testWidgets( - 'Lorem text not found', + 'No title is found', (tester) async { + await tester.setupContext(); + final dummy = BodyWidgetDummy().dummies.first; final widget = buildBodyWidget(dummy); await tester.test(widget); - expect(find.text('lorem ipsu'), findsNothing); + expect(find.text(R.strings.title_app.string()), findsNothing); }, ); testWidgets( - 'Other lorem text not found', + 'Info text is displayed', (tester) async { + await tester.setupContext(); + final dummy = BodyWidgetDummy().dummies.first; final widget = buildBodyWidget(dummy); await tester.test(widget); - expect(find.text('ipsu lorem'), findsNothing); + expect(find.text('You have pushed the button this many times:'), findsAny); }, ); }, diff --git a/example/lib/widgets/utils/bottom/catalog/preview/fab_widget.preview.dart b/example/lib/widgets/utils/bottom/catalog/preview/fab_widget.preview.dart index 8b87e15..e4de07b 100644 --- a/example/lib/widgets/utils/bottom/catalog/preview/fab_widget.preview.dart +++ b/example/lib/widgets/utils/bottom/catalog/preview/fab_widget.preview.dart @@ -7,17 +7,17 @@ import '../dummy/fab_widget.dummy.dart'; @Preview( description: 'Basic fab widget', - parameters: ['incrementCounter'], -) + parameters: ['incrementCounter'],) class FabWidgetPreview extends ParentPreviewWidget { + @override String get title => 'fab_widget'; - + @override String get basePath => '/catalog'; - + const FabWidgetPreview({super.key}); - + @override Widget preview(BuildContext context) { Catalog().widgetBasicPreviewMap.clear(); @@ -102,22 +102,24 @@ class FabWidgetPreview extends ParentPreviewWidget { ), ), for (int i = 0; i < FabWidgetDummy().dummies.length; i++) - PreviewBoundary( - widgetKey: GlobalKey(), - dummyBuilder: () => FabWidgetDummy().dummies[i], - builder: (BuildContext context, Dummy dummy) { - return buildFabWidget(dummy); - }, - ), + PreviewBoundary( + widgetKey: GlobalKey(), + dummyBuilder: () => FabWidgetDummy().dummies[i], + builder: (BuildContext context, Dummy dummy) { + return buildFabWidget(dummy); + }, + ), + ], ) ], ); } + + } FabWidget buildFabWidget(Dummy dummy) { - return FabWidget( - incrementCounter: dummy.parameters['incrementCounter'], - ); + return FabWidget(incrementCounter: dummy.parameters['incrementCounter'],); } + \ No newline at end of file diff --git a/example/pubspec.yaml b/example/pubspec.yaml index 436588c..846cb2d 100644 --- a/example/pubspec.yaml +++ b/example/pubspec.yaml @@ -12,14 +12,17 @@ dependencies: flutter: sdk: flutter cupertino_icons: ^1.0.8 - stringcare: ^0.1.6 # android ios linux macos web windows + stringcare: ^0.1.7 # android ios linux macos web windows catalog: path: ../ dev_dependencies: - flutter_test: + integration_test: sdk: flutter - flutter_lints: ^4.0.0 + flutter_test: + sdk: + flutter + flutter_lints: ^5.0.0 stringcare: lang: diff --git a/example/test/catalog_widget_test.dart b/example/test/catalog_widget_test.dart index e05d713..445b0c7 100644 --- a/example/test/catalog_widget_test.dart +++ b/example/test/catalog_widget_test.dart @@ -1,16 +1,15 @@ /// AUTOGENERATED FILE. DO NOT EDIT -import 'package:example/widgets/utils/bottom/catalog/test/fab_widget_test.dart' - as mtle; -import 'package:example/widgets/screen/catalog/test/body_widget_test.dart' - as oynh; -import 'package:example/widgets/screen/catalog/test/counter_widget_test.dart' - as cmuo; -import 'package:example/widgets/catalog/test/main_screen_test.dart' as exus; +import 'package:example/widgets/utils/bottom/catalog/test/fab_widget_test.dart' as cfxg; +import 'package:example/widgets/screen/catalog/test/body_widget_test.dart' as puqi; +import 'package:example/widgets/screen/catalog/test/counter_widget_test.dart' as cmom; +import 'package:example/widgets/catalog/test/main_screen_test.dart' as ldag; void main() { - mtle.FabWidgetTest().main(); - oynh.BodyWidgetTest().main(); - cmuo.CounterWidgetTest().main(); - exus.MainScreenTest().main(); + cfxg.FabWidgetTest().main(); +puqi.BodyWidgetTest().main(); +cmom.CounterWidgetTest().main(); +ldag.MainScreenTest().main(); } + + \ No newline at end of file diff --git a/example/test_driver/integration_test.dart b/example/test_driver/integration_test.dart new file mode 100644 index 0000000..b38629c --- /dev/null +++ b/example/test_driver/integration_test.dart @@ -0,0 +1,3 @@ +import 'package:integration_test/integration_test_driver.dart'; + +Future main() => integrationDriver(); diff --git a/lib/src/bin/preview_builder/preview_builder.dart b/lib/src/bin/preview_builder/preview_builder.dart index 2e2818d..0ca1458 100644 --- a/lib/src/bin/preview_builder/preview_builder.dart +++ b/lib/src/bin/preview_builder/preview_builder.dart @@ -385,11 +385,21 @@ Future generateMainIntegrationTest( var content = ''' /// AUTOGENERATED FILE. DO NOT EDIT +/// Launch on Android or iOS as usual. +/// Launch on Web with: +/// +/// chromedriver --port=4444 +/// flutter drive --driver=test_driver/integration_test.dart --target=integration_test/catalog_widget_integration_test.dart -d chrome + +import 'package:integration_test/integration_test.dart'; + ${tests.map((t) { return 'import \'${t.import}\' as ${t.alias};'; }).join('\n')} void main() { + IntegrationTestWidgetsFlutterBinding.ensureInitialized(); + ${tests.map((t) { return '${t.alias}.${t.clazzName}().main();'; }).join('\n')} diff --git a/lib/src/extensions/widget_test_ext.dart b/lib/src/extensions/widget_test_ext.dart index c0f2a10..516f6df 100644 --- a/lib/src/extensions/widget_test_ext.dart +++ b/lib/src/extensions/widget_test_ext.dart @@ -17,6 +17,7 @@ extension WidgetTestExt on WidgetTester { } Future setupContext() async { + Stringcare().langPath = 'lang_base'; await pumpWidget( MaterialApp( navigatorKey: Stringcare().navigatorKey, @@ -26,5 +27,6 @@ extension WidgetTestExt on WidgetTester { ), ); await pumpAndSettle(); + await Stringcare().load(); } }