From a50453e08fc83ae249c7bb31ab4b6adb8233f260 Mon Sep 17 00:00:00 2001 From: Solli Honorio Date: Sun, 12 Jan 2025 11:32:37 -0300 Subject: [PATCH 1/3] =?UTF-8?q?refactor:=20remover=20depend=C3=AAncia=20do?= =?UTF-8?q?=20Modular=20na=20ZodiacPage?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Removida a dependência do Modular e do `ModularState` na `ZodiacPage`. - Injetado o `ZodiacController` diretamente na `ZodiacPage`. - Adicionado getter para acessar o controller no estado da página. - Removido o parâmetro `title` não utilizado. - Corrigido texto do botão de "Diário astrólogico" para "Diário astrológico". --- .../features/zodiac/presentation/zodiac_page.dart | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/lib/app/features/zodiac/presentation/zodiac_page.dart b/lib/app/features/zodiac/presentation/zodiac_page.dart index d2b281cf1..94f861626 100644 --- a/lib/app/features/zodiac/presentation/zodiac_page.dart +++ b/lib/app/features/zodiac/presentation/zodiac_page.dart @@ -1,6 +1,5 @@ import 'package:flutter/material.dart'; import 'package:flutter_mobx/flutter_mobx.dart'; -import 'package:flutter_modular/flutter_modular.dart'; import '../../../shared/design_system/colors.dart'; import '../../../shared/design_system/logo.dart'; @@ -13,17 +12,19 @@ import 'zodiac_controller.dart'; class ZodiacPage extends StatefulWidget { const ZodiacPage({ + required this.controller, Key? key, - this.title = 'ZodiacPage', }) : super(key: key); - final String title; + final ZodiacController controller; @override - _ZodiacPageState createState() => _ZodiacPageState(); + State createState() => _ZodiacPageState(); } -class _ZodiacPageState extends ModularState { +class _ZodiacPageState extends State { + ZodiacController get controller => widget.controller; + @override void dispose() { controller.dispose(); @@ -82,7 +83,7 @@ class _ZodiacPageState extends ModularState { ), onPressed: () => controller.forwardStealthLogin(), child: const Text( - 'Diário astrólogico', + 'Diário astrológico', style: kTextStyleFeedTweetShowReply, ), ), From e3a70ceb56bf744693da9cf84c1364b07157d9bb Mon Sep 17 00:00:00 2001 From: Solli Honorio Date: Sun, 12 Jan 2025 11:33:26 -0300 Subject: [PATCH 2/3] =?UTF-8?q?refactor:=20ajustar=20inje=C3=A7=C3=A3o=20d?= =?UTF-8?q?o=20ZodiacController=20no=20ZodiacModule?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/app/features/zodiac/presentation/zodiac_module.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/app/features/zodiac/presentation/zodiac_module.dart b/lib/app/features/zodiac/presentation/zodiac_module.dart index 7a3b95585..e80745466 100644 --- a/lib/app/features/zodiac/presentation/zodiac_module.dart +++ b/lib/app/features/zodiac/presentation/zodiac_module.dart @@ -64,5 +64,5 @@ class ZodiacModule extends WidgetModule { ]; @override - Widget get view => const ZodiacPage(); + Widget get view => ZodiacPage(controller: Modular.get()); } From d4573c141035bd167e0b50f5585d8aaf33124480 Mon Sep 17 00:00:00 2001 From: Solli Honorio Date: Sun, 12 Jan 2025 11:34:03 -0300 Subject: [PATCH 3/3] =?UTF-8?q?refactor:=20remover=20depend=C3=AAncia=20do?= =?UTF-8?q?=20Modular=20nos=20testes=20da=20ZodiacPage?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../zodiac/presentation/zodiac_page_test.dart | 30 ++++++++----------- 1 file changed, 12 insertions(+), 18 deletions(-) diff --git a/test/app/features/zodiac/presentation/zodiac_page_test.dart b/test/app/features/zodiac/presentation/zodiac_page_test.dart index e58d6105c..23f46af7a 100644 --- a/test/app/features/zodiac/presentation/zodiac_page_test.dart +++ b/test/app/features/zodiac/presentation/zodiac_page_test.dart @@ -1,6 +1,4 @@ import 'package:flutter/material.dart'; -import 'package:flutter_modular/flutter_modular.dart'; -import 'package:flutter_modular_test/flutter_modular_test.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:mocktail/mocktail.dart'; import 'package:penhas/app/features/appstate/domain/entities/user_profile_entity.dart'; @@ -9,7 +7,6 @@ import 'package:penhas/app/features/zodiac/presentation/pages/zodiac_felling_pag import 'package:penhas/app/features/zodiac/presentation/pages/zodiac_ruling_page.dart'; import 'package:penhas/app/features/zodiac/presentation/pages/zodiac_sign_page.dart'; import 'package:penhas/app/features/zodiac/presentation/zodiac_controller.dart'; -import 'package:penhas/app/features/zodiac/presentation/zodiac_module.dart'; import 'package:penhas/app/features/zodiac/presentation/zodiac_page.dart'; import '../../../../utils/golden_tests.dart'; @@ -18,6 +15,8 @@ import '../../authentication/presentation/mocks/app_modules_mock.dart'; import '../../authentication/presentation/mocks/authentication_modules_mock.dart'; void main() { + late ZodiacController controller; + setUp(() { AppModulesMock.init(); AuthenticationModulesMock.init(); @@ -45,25 +44,20 @@ void main() { when(() => AuthenticationModulesMock.securityAction.dispose()) .thenAnswer((_) => Future.value()); - initModule(ZodiacModule(), replaceBinds: [ - Bind.factory((i) => ZodiacController( - userProfileStore: AppModulesMock.userProfileStore, - securityAction: AuthenticationModulesMock.securityAction, - )), - ]); - }); - tearDown(() { - Modular.removeModule(ZodiacModule()); + controller = ZodiacController( + userProfileStore: AppModulesMock.userProfileStore, + securityAction: AuthenticationModulesMock.securityAction, + ); }); group(ZodiacPage, () { testWidgets('should render the page', (tester) async { // arrange - await theAppIsRunning(tester, const ZodiacPage()); + await theAppIsRunning(tester, ZodiacPage(controller: controller)); // assert iSeeText('Hoje'); - iSeeText('Diário astrólogico'); + iSeeText('Diário astrológico'); iSeeWidget(ZodiacSignPage); iSeeWidget(ZodiacRulingPage); iSeeWidget(ZodiacFellingPage); @@ -76,9 +70,9 @@ void main() { when(() => AppModulesMock.modularNavigator.pushReplacementNamed(routeName)) .thenAnswer((_) => Future.value()); - await theAppIsRunning(tester, const ZodiacPage()); + await theAppIsRunning(tester, ZodiacPage(controller: controller)); // act - await iTapText(tester, text: 'Diário astrólogico'); + await iTapText(tester, text: 'Diário astrológico'); // assert verify(() => AppModulesMock.modularNavigator.pushReplacementNamed(routeName)) @@ -93,7 +87,7 @@ void main() { .thenAnswer((_) => Future.value()); when(() => AuthenticationModulesMock.securityAction.stop()) .thenAnswer((_) => Future.value()); - await theAppIsRunning(tester, const ZodiacPage()); + await theAppIsRunning(tester, ZodiacPage(controller: controller)); await tester.pumpAndSettle(); // act await iSeeWidget(ZodiacActionButton); @@ -106,7 +100,7 @@ void main() { screenshotTest( 'should render the page', fileName: 'zodiac_page', - pageBuilder: () => const ZodiacPage(), + pageBuilder: () => ZodiacPage(controller: controller), ); }); }