diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9c189aaf..f9b69f03 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -35,6 +35,11 @@ jobs: - name: Resolve workspace dependencies run: flutter pub get + - name: Activate melos globally + run: | + dart pub global activate melos + echo "$HOME/.pub-cache/bin" >> $GITHUB_PATH + - name: Bootstrap melos workspace run: dart run melos bootstrap diff --git a/apps/agora/lib/app/pages/protected_shell_page.dart b/apps/agora/lib/app/pages/protected_shell_page.dart index aa4c1384..d89690f2 100644 --- a/apps/agora/lib/app/pages/protected_shell_page.dart +++ b/apps/agora/lib/app/pages/protected_shell_page.dart @@ -112,7 +112,10 @@ class _ProtectedShellPageState extends State { return BlocBuilder( builder: (context, clockState) { - final isClockedIn = clockState.maybeWhen(clockedIn: (_) => true, orElse: () => false); + final isClockedIn = clockState.maybeWhen( + clockedIn: (_) => true, + orElse: () => false, + ); return AutoTabsRouter( homeIndex: 0, @@ -120,7 +123,9 @@ class _ProtectedShellPageState extends State { builder: (context, child) { final tabsRouter = AutoTabsRouter.of(context); final currentRouteName = tabsRouter.current.name; - var activeIndex = entries.indexWhere((e) => e.route.routeName == currentRouteName); + var activeIndex = entries.indexWhere( + (e) => e.route.routeName == currentRouteName, + ); if (activeIndex < 0) { activeIndex = _selectedIndex.clamp(0, entries.length - 1); } @@ -136,7 +141,13 @@ class _ProtectedShellPageState extends State { currentOperator: 'Main Counter', onOperatorSwitchTap: () {}, openSidebar: () => _scaffoldKey.currentState?.openDrawer(), - child: _buildLayout(context, child, tabsRouter, activeIndex, entries), + child: _buildLayout( + context, + child, + tabsRouter, + activeIndex, + entries, + ), ); }, ); @@ -171,7 +182,8 @@ class _ProtectedShellPageState extends State { items: [for (final e in entries) e.item], selectedIndex: activeIndex, isCollapsed: _isSidebarCollapsed, - onCollapsedChanged: (v) => setState(() => _isSidebarCollapsed = v), + onCollapsedChanged: (v) => + setState(() => _isSidebarCollapsed = v), onItemSelected: (index) { setState(() => _selectedIndex = index); tabsRouter.navigate(entries[index].route); @@ -214,7 +226,10 @@ class _ProtectedShellPageState extends State { const Spacer(), AppIconButton.ghost( onPressed: () => Navigator.of(context).pop(), - icon: const Icon(AgoraIcons.x_mark, color: AppPalette.neutral400), + icon: const Icon( + AgoraIcons.x_mark, + color: AppPalette.neutral400, + ), style: IconButton.styleFrom( padding: EdgeInsets.zero, minimumSize: const Size(40, 40), diff --git a/features/inventory/test/blocs/inventory/inventory_bloc_test.mocks.dart b/features/inventory/test/blocs/inventory/inventory_bloc_test.mocks.dart index 470f066b..b7e69ecb 100644 --- a/features/inventory/test/blocs/inventory/inventory_bloc_test.mocks.dart +++ b/features/inventory/test/blocs/inventory/inventory_bloc_test.mocks.dart @@ -5,7 +5,7 @@ // ignore_for_file: no_leading_underscores_for_library_prefixes import 'dart:async' as _i3; -import 'package:feature_inventory/domain/repositories/inventory_repository.dart' +import 'package:inventory_contracts/repositories/inventory_repository.dart' as _i2; import 'package:mockito/mockito.dart' as _i1; import 'package:mockito/src/dummies.dart' as _i5; diff --git a/features/inventory/test/repositories/inventory_repository_concurrency_test.dart b/features/inventory/test/repositories/inventory_repository_concurrency_test.dart index 5c0cc7e4..d434a1b5 100644 --- a/features/inventory/test/repositories/inventory_repository_concurrency_test.dart +++ b/features/inventory/test/repositories/inventory_repository_concurrency_test.dart @@ -17,7 +17,7 @@ import 'package:drift/native.dart'; import 'package:feature_inventory/data/repositories/inventory_repository_impl.dart'; import 'package:feature_inventory/data/sources/local/daos/stock_movements_dao.dart'; import 'package:feature_inventory/data/sources/local/daos/stocks_dao.dart'; -import 'package:feature_inventory/domain/repositories/inventory_repository.dart'; +import 'package:inventory_contracts/repositories/inventory_repository.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:result/result.dart'; diff --git a/features/orders/test/blocs/active_order/active_order_bloc_test.dart b/features/orders/test/blocs/active_order/active_order_bloc_test.dart index 0b36d8a5..731fbcb1 100644 --- a/features/orders/test/blocs/active_order/active_order_bloc_test.dart +++ b/features/orders/test/blocs/active_order/active_order_bloc_test.dart @@ -1,4 +1,3 @@ -import 'package:discounts/discounts.dart'; import 'package:order_management/order_management.dart'; import 'package:feature_products/feature_products.dart'; import 'package:app_settings/blocs/settings_cubit.dart'; diff --git a/features/orders/test/blocs/active_order/active_order_bloc_test.mocks.dart b/features/orders/test/blocs/active_order/active_order_bloc_test.mocks.dart index 3041703b..63fe46a8 100644 --- a/features/orders/test/blocs/active_order/active_order_bloc_test.mocks.dart +++ b/features/orders/test/blocs/active_order/active_order_bloc_test.mocks.dart @@ -6,11 +6,9 @@ import 'dart:async' as _i4; import 'package:bloc_exports/bloc_exports.dart' as _i8; -import 'package:feature_orders/domain/models/order.dart' as _i5; -import 'package:feature_orders/domain/repositories/orders_repository.dart' - as _i3; -import 'package:feature_settings/presentation/blocs/settings/settings_cubit.dart' - as _i2; +import 'package:order_management/models/order.dart' as _i5; +import 'package:order_management/repositories/orders_repository.dart' as _i3; +import 'package:app_settings/blocs/settings_cubit.dart' as _i2; import 'package:mockito/mockito.dart' as _i1; import 'package:mockito/src/dummies.dart' as _i7; import 'package:result/result.dart' as _i6; @@ -211,17 +209,23 @@ class MockOrdersRepository extends _i1.Mock implements _i3.OrdersRepository { as _i4.Future<_i6.Result<_i5.Order>>); @override - _i4.Future<_i6.Result<_i5.Order>> voidOrder(int? id) => + _i4.Future<_i6.Result<({_i5.Order order, bool wasAlreadyVoided})>> voidOrder( + int id, + ) => (super.noSuchMethod( Invocation.method(#voidOrder, [id]), - returnValue: _i4.Future<_i6.Result<_i5.Order>>.value( - _i7.dummyValue<_i6.Result<_i5.Order>>( - this, - Invocation.method(#voidOrder, [id]), - ), - ), + returnValue: + _i4.Future< + _i6.Result<({_i5.Order order, bool wasAlreadyVoided})> + >.value( + _i7.dummyValue< + _i6.Result<({_i5.Order order, bool wasAlreadyVoided})> + >(this, Invocation.method(#voidOrder, [id])), + ), ) - as _i4.Future<_i6.Result<_i5.Order>>); + as _i4.Future< + _i6.Result<({_i5.Order order, bool wasAlreadyVoided})> + >); @override _i4.Future<_i6.Result> deleteOrder(int? id) => diff --git a/features/orders/test/blocs/checkout/checkout_cubit_test.mocks.dart b/features/orders/test/blocs/checkout/checkout_cubit_test.mocks.dart index 50d10023..39f4b2e1 100644 --- a/features/orders/test/blocs/checkout/checkout_cubit_test.mocks.dart +++ b/features/orders/test/blocs/checkout/checkout_cubit_test.mocks.dart @@ -5,17 +5,14 @@ // ignore_for_file: no_leading_underscores_for_library_prefixes import 'dart:async' as _i3; -import 'package:feature_discounts/domain/models/discount.dart' as _i11; -import 'package:feature_discounts/domain/repositories/discounts_repository.dart' - as _i10; -import 'package:feature_inventory/domain/repositories/inventory_repository.dart' +import 'package:discounts/models/discount.dart' as _i11; +import 'package:discounts/repositories/discounts_repository.dart' as _i10; +import 'package:inventory_contracts/repositories/inventory_repository.dart' as _i7; -import 'package:feature_orders/domain/models/order.dart' as _i4; -import 'package:feature_orders/domain/repositories/orders_repository.dart' - as _i2; -import 'package:feature_products/domain/models/product.dart' as _i9; -import 'package:feature_products/domain/repositories/products_repository.dart' - as _i8; +import 'package:order_management/models/order.dart' as _i4; +import 'package:order_management/repositories/orders_repository.dart' as _i2; +import 'package:catalog/models/product.dart' as _i9; +import 'package:catalog/repositories/products_repository.dart' as _i8; import 'package:mockito/mockito.dart' as _i1; import 'package:mockito/src/dummies.dart' as _i6; import 'package:result/result.dart' as _i5; @@ -211,17 +208,23 @@ class MockOrdersRepository extends _i1.Mock implements _i2.OrdersRepository { as _i3.Future<_i5.Result<_i4.Order>>); @override - _i3.Future<_i5.Result<_i4.Order>> voidOrder(int? id) => + _i3.Future<_i5.Result<({_i4.Order order, bool wasAlreadyVoided})>> voidOrder( + int id, + ) => (super.noSuchMethod( Invocation.method(#voidOrder, [id]), - returnValue: _i3.Future<_i5.Result<_i4.Order>>.value( - _i6.dummyValue<_i5.Result<_i4.Order>>( - this, - Invocation.method(#voidOrder, [id]), - ), - ), + returnValue: + _i3.Future< + _i5.Result<({_i4.Order order, bool wasAlreadyVoided})> + >.value( + _i6.dummyValue< + _i5.Result<({_i4.Order order, bool wasAlreadyVoided})> + >(this, Invocation.method(#voidOrder, [id])), + ), ) - as _i3.Future<_i5.Result<_i4.Order>>); + as _i3.Future< + _i5.Result<({_i4.Order order, bool wasAlreadyVoided})> + >); @override _i3.Future<_i5.Result> deleteOrder(int? id) => diff --git a/features/orders/test/blocs/order_detail/order_detail_cubit_test.dart b/features/orders/test/blocs/order_detail/order_detail_cubit_test.dart index f1bc9f7f..e34367bc 100644 --- a/features/orders/test/blocs/order_detail/order_detail_cubit_test.dart +++ b/features/orders/test/blocs/order_detail/order_detail_cubit_test.dart @@ -74,9 +74,9 @@ void main() { orderId: anyNamed('orderId'), ), ).thenAnswer((_) async => Result.ok((productId: 1, quantity: 3))); - when( - ordersRepository.voidOrder(7), - ).thenAnswer((_) async => Result.ok(completed)); + when(ordersRepository.voidOrder(7)).thenAnswer( + (_) async => Result.ok((order: completed, wasAlreadyVoided: false)), + ); final cubit = buildCubit()..load(7); await Future.delayed(Duration.zero); @@ -101,9 +101,9 @@ void main() { when( ordersRepository.watchOrderById(7), ).thenAnswer((_) => Stream.value(pending)); - when( - ordersRepository.voidOrder(7), - ).thenAnswer((_) async => Result.ok(pending)); + when(ordersRepository.voidOrder(7)).thenAnswer( + (_) async => Result.ok((order: pending, wasAlreadyVoided: false)), + ); final cubit = buildCubit()..load(7); await Future.delayed(Duration.zero); @@ -137,7 +137,7 @@ void main() { await Future.delayed(Duration.zero); await cubit.voidOrder(); - verifyNever(ordersRepository.voidOrder(any)); + verifyNever(ordersRepository.voidOrder(7)); await cubit.close(); }); }); diff --git a/features/orders/test/blocs/order_detail/order_detail_cubit_test.mocks.dart b/features/orders/test/blocs/order_detail/order_detail_cubit_test.mocks.dart index a35e5f8d..67b1e8a0 100644 --- a/features/orders/test/blocs/order_detail/order_detail_cubit_test.mocks.dart +++ b/features/orders/test/blocs/order_detail/order_detail_cubit_test.mocks.dart @@ -5,11 +5,10 @@ // ignore_for_file: no_leading_underscores_for_library_prefixes import 'dart:async' as _i3; -import 'package:feature_inventory/domain/repositories/inventory_repository.dart' +import 'package:inventory_contracts/repositories/inventory_repository.dart' as _i7; -import 'package:feature_orders/domain/models/order.dart' as _i4; -import 'package:feature_orders/domain/repositories/orders_repository.dart' - as _i2; +import 'package:order_management/models/order.dart' as _i4; +import 'package:order_management/repositories/orders_repository.dart' as _i2; import 'package:mockito/mockito.dart' as _i1; import 'package:mockito/src/dummies.dart' as _i6; import 'package:result/result.dart' as _i5; @@ -205,17 +204,23 @@ class MockOrdersRepository extends _i1.Mock implements _i2.OrdersRepository { as _i3.Future<_i5.Result<_i4.Order>>); @override - _i3.Future<_i5.Result<_i4.Order>> voidOrder(int? id) => + _i3.Future<_i5.Result<({_i4.Order order, bool wasAlreadyVoided})>> voidOrder( + int id, + ) => (super.noSuchMethod( Invocation.method(#voidOrder, [id]), - returnValue: _i3.Future<_i5.Result<_i4.Order>>.value( - _i6.dummyValue<_i5.Result<_i4.Order>>( - this, - Invocation.method(#voidOrder, [id]), - ), - ), + returnValue: + _i3.Future< + _i5.Result<({_i4.Order order, bool wasAlreadyVoided})> + >.value( + _i6.dummyValue< + _i5.Result<({_i4.Order order, bool wasAlreadyVoided})> + >(this, Invocation.method(#voidOrder, [id])), + ), ) - as _i3.Future<_i5.Result<_i4.Order>>); + as _i3.Future< + _i5.Result<({_i4.Order order, bool wasAlreadyVoided})> + >); @override _i3.Future<_i5.Result> deleteOrder(int? id) => diff --git a/features/orders/test/data/repositories/orders_repository_impl_test.dart b/features/orders/test/data/repositories/orders_repository_impl_test.dart index 3b4bc159..659fff12 100644 --- a/features/orders/test/data/repositories/orders_repository_impl_test.dart +++ b/features/orders/test/data/repositories/orders_repository_impl_test.dart @@ -4,10 +4,10 @@ import 'package:drift/native.dart'; import 'package:feature_orders/data/repositories/orders_repository_impl.dart'; import 'package:feature_orders/data/sources/local/daos/order_items_dao.dart'; import 'package:feature_orders/data/sources/local/daos/orders_dao.dart'; -import 'package:feature_orders/domain/models/order.dart'; -import 'package:feature_orders/domain/models/order_line_item.dart'; -import 'package:feature_orders/domain/models/order_type.dart'; -import 'package:feature_orders/domain/models/selected_modifiers.dart'; +import 'package:order_management/models/order.dart'; +import 'package:order_management/models/order_line_item.dart'; +import 'package:order_management/models/order_type.dart'; +import 'package:order_management/models/selected_modifiers.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:result/result.dart'; diff --git a/features/products/test/blocs/categories/categories_bloc_test.mocks.dart b/features/products/test/blocs/categories/categories_bloc_test.mocks.dart index edca59e2..b56f34fe 100644 --- a/features/products/test/blocs/categories/categories_bloc_test.mocks.dart +++ b/features/products/test/blocs/categories/categories_bloc_test.mocks.dart @@ -1,13 +1,12 @@ // Mocks generated by Mockito 5.4.6 from annotations -// in agora_workspace/test/products/blocs/categories/categories_bloc_test.dart. +// in feature_products/test/blocs/categories/categories_bloc_test.dart. // Do not manually edit this file. // ignore_for_file: no_leading_underscores_for_library_prefixes import 'dart:async' as _i3; -import 'package:feature_products/domain/models/category.dart' as _i4; -import 'package:feature_products/domain/repositories/categories_repository.dart' - as _i2; +import 'package:catalog/models/category.dart' as _i4; +import 'package:catalog/repositories/categories_repository.dart' as _i2; import 'package:mockito/mockito.dart' as _i1; import 'package:mockito/src/dummies.dart' as _i6; import 'package:result/result.dart' as _i5; diff --git a/features/products/test/blocs/modifiers/modifiers_bloc_test.mocks.dart b/features/products/test/blocs/modifiers/modifiers_bloc_test.mocks.dart index 5885dbd0..e7ef4b8f 100644 --- a/features/products/test/blocs/modifiers/modifiers_bloc_test.mocks.dart +++ b/features/products/test/blocs/modifiers/modifiers_bloc_test.mocks.dart @@ -1,14 +1,13 @@ // Mocks generated by Mockito 5.4.6 from annotations -// in agora_workspace/test/products/blocs/modifiers/modifiers_bloc_test.dart. +// in feature_products/test/blocs/modifiers/modifiers_bloc_test.dart. // Do not manually edit this file. // ignore_for_file: no_leading_underscores_for_library_prefixes import 'dart:async' as _i3; -import 'package:feature_products/domain/models/modifier_group.dart' as _i4; -import 'package:feature_products/domain/models/modifier_option.dart' as _i7; -import 'package:feature_products/domain/repositories/modifiers_repository.dart' - as _i2; +import 'package:catalog/models/modifier_group.dart' as _i4; +import 'package:catalog/models/modifier_option.dart' as _i7; +import 'package:catalog/repositories/modifiers_repository.dart' as _i2; import 'package:mockito/mockito.dart' as _i1; import 'package:mockito/src/dummies.dart' as _i6; import 'package:result/result.dart' as _i5; diff --git a/features/products/test/blocs/product_detail/product_detail_cubit_test.mocks.dart b/features/products/test/blocs/product_detail/product_detail_cubit_test.mocks.dart index d58d6f99..6e7fff88 100644 --- a/features/products/test/blocs/product_detail/product_detail_cubit_test.mocks.dart +++ b/features/products/test/blocs/product_detail/product_detail_cubit_test.mocks.dart @@ -1,17 +1,15 @@ // Mocks generated by Mockito 5.4.6 from annotations -// in agora_workspace/test/products/blocs/product_detail/product_detail_cubit_test.dart. +// in feature_products/test/blocs/product_detail/product_detail_cubit_test.dart. // Do not manually edit this file. // ignore_for_file: no_leading_underscores_for_library_prefixes import 'dart:async' as _i3; -import 'package:feature_products/domain/models/modifier_group.dart' as _i8; -import 'package:feature_products/domain/models/modifier_option.dart' as _i9; -import 'package:feature_products/domain/models/product.dart' as _i4; -import 'package:feature_products/domain/repositories/modifiers_repository.dart' - as _i7; -import 'package:feature_products/domain/repositories/products_repository.dart' - as _i2; +import 'package:catalog/models/modifier_group.dart' as _i8; +import 'package:catalog/models/modifier_option.dart' as _i9; +import 'package:catalog/models/product.dart' as _i4; +import 'package:catalog/repositories/modifiers_repository.dart' as _i7; +import 'package:catalog/repositories/products_repository.dart' as _i2; import 'package:mockito/mockito.dart' as _i1; import 'package:mockito/src/dummies.dart' as _i6; import 'package:result/result.dart' as _i5; diff --git a/features/products/test/blocs/product_form/product_form_cubit_test.mocks.dart b/features/products/test/blocs/product_form/product_form_cubit_test.mocks.dart index b0dd603f..a40dc4ce 100644 --- a/features/products/test/blocs/product_form/product_form_cubit_test.mocks.dart +++ b/features/products/test/blocs/product_form/product_form_cubit_test.mocks.dart @@ -1,17 +1,15 @@ // Mocks generated by Mockito 5.4.6 from annotations -// in agora_workspace/test/products/blocs/product_form/product_form_cubit_test.dart. +// in feature_products/test/blocs/product_form/product_form_cubit_test.dart. // Do not manually edit this file. // ignore_for_file: no_leading_underscores_for_library_prefixes import 'dart:async' as _i3; -import 'package:feature_products/domain/models/modifier_group.dart' as _i8; -import 'package:feature_products/domain/models/modifier_option.dart' as _i9; -import 'package:feature_products/domain/models/product.dart' as _i4; -import 'package:feature_products/domain/repositories/modifiers_repository.dart' - as _i7; -import 'package:feature_products/domain/repositories/products_repository.dart' - as _i2; +import 'package:catalog/models/modifier_group.dart' as _i8; +import 'package:catalog/models/modifier_option.dart' as _i9; +import 'package:catalog/models/product.dart' as _i4; +import 'package:catalog/repositories/modifiers_repository.dart' as _i7; +import 'package:catalog/repositories/products_repository.dart' as _i2; import 'package:mockito/mockito.dart' as _i1; import 'package:mockito/src/dummies.dart' as _i6; import 'package:result/result.dart' as _i5; diff --git a/features/products/test/blocs/products/products_bloc_test.mocks.dart b/features/products/test/blocs/products/products_bloc_test.mocks.dart index 21f484ed..c4456199 100644 --- a/features/products/test/blocs/products/products_bloc_test.mocks.dart +++ b/features/products/test/blocs/products/products_bloc_test.mocks.dart @@ -1,16 +1,14 @@ // Mocks generated by Mockito 5.4.6 from annotations -// in agora_workspace/test/products/blocs/products/products_bloc_test.dart. +// in feature_products/test/blocs/products/products_bloc_test.dart. // Do not manually edit this file. // ignore_for_file: no_leading_underscores_for_library_prefixes import 'dart:async' as _i3; -import 'package:feature_products/domain/models/category.dart' as _i8; -import 'package:feature_products/domain/models/product.dart' as _i4; -import 'package:feature_products/domain/repositories/categories_repository.dart' - as _i7; -import 'package:feature_products/domain/repositories/products_repository.dart' - as _i2; +import 'package:catalog/models/category.dart' as _i8; +import 'package:catalog/models/product.dart' as _i4; +import 'package:catalog/repositories/categories_repository.dart' as _i7; +import 'package:catalog/repositories/products_repository.dart' as _i2; import 'package:mockito/mockito.dart' as _i1; import 'package:mockito/src/dummies.dart' as _i6; import 'package:result/result.dart' as _i5; diff --git a/features/products/test/products_bloc_test.dart b/features/products/test/products_bloc_test.dart index 1ecfd791..886115f1 100644 --- a/features/products/test/products_bloc_test.dart +++ b/features/products/test/products_bloc_test.dart @@ -1,10 +1,10 @@ import 'dart:async'; -import 'package:feature_products/domain/models/category.dart'; -import 'package:feature_products/domain/models/product.dart'; -import 'package:feature_products/domain/repositories/categories_repository.dart'; -import 'package:feature_products/domain/repositories/products_repository.dart'; -import 'package:feature_products/presentation/blocs/products/products_bloc.dart'; +import 'package:catalog/models/category.dart'; +import 'package:catalog/models/product.dart'; +import 'package:catalog/repositories/categories_repository.dart'; +import 'package:catalog/repositories/products_repository.dart'; +import 'package:catalog/blocs/products/products_bloc.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:result/result.dart'; diff --git a/features/products/test/repositories/products_repository_test.mocks.dart b/features/products/test/repositories/products_repository_test.mocks.dart index 1b12cf8f..4e7b1229 100644 --- a/features/products/test/repositories/products_repository_test.mocks.dart +++ b/features/products/test/repositories/products_repository_test.mocks.dart @@ -1,5 +1,5 @@ // Mocks generated by Mockito 5.4.6 from annotations -// in agora_workspace/test/products/repositories/products_repository_test.dart. +// in feature_products/test/repositories/products_repository_test.dart. // Do not manually edit this file. // ignore_for_file: no_leading_underscores_for_library_prefixes @@ -8,14 +8,15 @@ import 'dart:async' as _i5; import 'package:database/database.dart' as _i2; import 'package:drift/drift.dart' as _i3; import 'package:drift/src/runtime/executor/stream_queries.dart' as _i4; -import 'package:feature_inventory/data/sources/local/daos/stocks_dao.dart' - as _i8; import 'package:feature_products/data/sources/local/daos/modifiers_dao.dart' - as _i9; + as _i10; import 'package:feature_products/data/sources/local/daos/products_dao.dart' as _i6; +import 'package:inventory_contracts/repositories/inventory_repository.dart' + as _i8; import 'package:mockito/mockito.dart' as _i1; import 'package:mockito/src/dummies.dart' as _i7; +import 'package:result/result.dart' as _i9; // ignore_for_file: type=lint // ignore_for_file: avoid_redundant_argument_values @@ -120,18 +121,6 @@ class _FakeGenerationContext_14 extends _i1.SmartFake : super(parent, parentInvocation); } -class _Fake$StocksTableTable_15 extends _i1.SmartFake - implements _i2.$StocksTableTable { - _Fake$StocksTableTable_15(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); -} - -class _Fake$ProductsTableTable_16 extends _i1.SmartFake - implements _i2.$ProductsTableTable { - _Fake$ProductsTableTable_16(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); -} - /// A class which mocks [ProductsDao]. /// /// See the documentation for Mockito's code generation for more information. @@ -752,687 +741,383 @@ class MockProductsDao extends _i1.Mock implements _i6.ProductsDao { as _i5.Future); } -/// A class which mocks [StocksDao]. +/// A class which mocks [InventoryRepository]. /// /// See the documentation for Mockito's code generation for more information. -class MockStocksDao extends _i1.Mock implements _i8.StocksDao { - MockStocksDao() { +class MockInventoryRepository extends _i1.Mock + implements _i8.InventoryRepository { + MockInventoryRepository() { _i1.throwOnMissingStub(this); } @override - _i2.AgoraDatabase get attachedDatabase => - (super.noSuchMethod( - Invocation.getter(#attachedDatabase), - returnValue: _FakeAgoraDatabase_0( - this, - Invocation.getter(#attachedDatabase), - ), - ) - as _i2.AgoraDatabase); - - @override - _i3.DatabaseConnection get connection => - (super.noSuchMethod( - Invocation.getter(#connection), - returnValue: _FakeDatabaseConnection_1( - this, - Invocation.getter(#connection), - ), - ) - as _i3.DatabaseConnection); - - @override - _i3.DriftDatabaseOptions get options => - (super.noSuchMethod( - Invocation.getter(#options), - returnValue: _FakeDriftDatabaseOptions_2( - this, - Invocation.getter(#options), - ), - ) - as _i3.DriftDatabaseOptions); - - @override - _i3.SqlTypes get typeMapping => - (super.noSuchMethod( - Invocation.getter(#typeMapping), - returnValue: _i7.dummyValue<_i3.SqlTypes>( - this, - Invocation.getter(#typeMapping), - ), - ) - as _i3.SqlTypes); - - @override - _i3.QueryExecutor get executor => - (super.noSuchMethod( - Invocation.getter(#executor), - returnValue: _FakeQueryExecutor_3( - this, - Invocation.getter(#executor), - ), - ) - as _i3.QueryExecutor); - - @override - _i4.StreamQueryStore get streamQueries => - (super.noSuchMethod( - Invocation.getter(#streamQueries), - returnValue: _FakeStreamQueryStore_4( - this, - Invocation.getter(#streamQueries), - ), - ) - as _i4.StreamQueryStore); - - @override - _i3.DatabaseConnectionUser get resolvedEngine => - (super.noSuchMethod( - Invocation.getter(#resolvedEngine), - returnValue: _FakeDatabaseConnectionUser_5( - this, - Invocation.getter(#resolvedEngine), - ), - ) - as _i3.DatabaseConnectionUser); - - @override - _i2.$StocksTableTable get stocksTable => - (super.noSuchMethod( - Invocation.getter(#stocksTable), - returnValue: _Fake$StocksTableTable_15( - this, - Invocation.getter(#stocksTable), - ), - ) - as _i2.$StocksTableTable); - - @override - _i2.$ProductsTableTable get productsTable => - (super.noSuchMethod( - Invocation.getter(#productsTable), - returnValue: _Fake$ProductsTableTable_16( - this, - Invocation.getter(#productsTable), - ), - ) - as _i2.$ProductsTableTable); - - @override - _i5.Stream> watchAllStocks() => + _i5.Stream> watchAllStocks() => (super.noSuchMethod( Invocation.method(#watchAllStocks, []), - returnValue: _i5.Stream>.empty(), + returnValue: + _i5.Stream>.empty(), ) - as _i5.Stream>); + as _i5.Stream>); @override - _i5.Stream> watchPaginatedStocks({ - required int? limit, - required int? offset, - }) => + _i5.Stream< + List<({String name, int productId, int quantity, bool trackStock})> + > + watchStockLevels() => (super.noSuchMethod( - Invocation.method(#watchPaginatedStocks, [], { - #limit: limit, - #offset: offset, - }), - returnValue: _i5.Stream>.empty(), + Invocation.method(#watchStockLevels, []), + returnValue: + _i5.Stream< + List< + ({ + String name, + int productId, + int quantity, + bool trackStock, + }) + > + >.empty(), ) - as _i5.Stream>); + as _i5.Stream< + List<({String name, int productId, int quantity, bool trackStock})> + >); @override - _i5.Stream<_i2.StockEntity?> watchStockByProductId(int? productId) => + _i5.Stream<({int productId, int quantity})?> watchStockByProductId( + int? productId, + ) => (super.noSuchMethod( Invocation.method(#watchStockByProductId, [productId]), - returnValue: _i5.Stream<_i2.StockEntity?>.empty(), - ) - as _i5.Stream<_i2.StockEntity?>); - - @override - _i5.Future<_i2.StockEntity?> getStockByProductId(int? productId) => - (super.noSuchMethod( - Invocation.method(#getStockByProductId, [productId]), - returnValue: _i5.Future<_i2.StockEntity?>.value(), + returnValue: _i5.Stream<({int productId, int quantity})?>.empty(), ) - as _i5.Future<_i2.StockEntity?>); + as _i5.Stream<({int productId, int quantity})?>); @override - _i5.Future getStocksCount() => + _i5.Stream> watchLowStocks( + int? threshold, + ) => (super.noSuchMethod( - Invocation.method(#getStocksCount, []), - returnValue: _i5.Future.value(0), + Invocation.method(#watchLowStocks, [threshold]), + returnValue: + _i5.Stream>.empty(), ) - as _i5.Future); + as _i5.Stream>); @override _i5.Stream< - List<({String name, int productId, int quantity, bool trackStock})> + List< + ({ + int id, + int productId, + int quantityChange, + String reason, + DateTime timestamp, + }) + > > - watchStockLevels() => + watchMovementsByProductId(int? productId) => (super.noSuchMethod( - Invocation.method(#watchStockLevels, []), + Invocation.method(#watchMovementsByProductId, [productId]), returnValue: _i5.Stream< List< ({ - String name, + int id, int productId, - int quantity, - bool trackStock, + int quantityChange, + String reason, + DateTime timestamp, }) > >.empty(), ) as _i5.Stream< - List<({String name, int productId, int quantity, bool trackStock})> + List< + ({ + int id, + int productId, + int quantityChange, + String reason, + DateTime timestamp, + }) + > >); @override - _i5.Stream> watchLowStocks(int? threshold) => + _i5.Future<_i9.Result> getStockQuantity(int? productId) => (super.noSuchMethod( - Invocation.method(#watchLowStocks, [threshold]), - returnValue: _i5.Stream>.empty(), + Invocation.method(#getStockQuantity, [productId]), + returnValue: _i5.Future<_i9.Result>.value( + _i7.dummyValue<_i9.Result>( + this, + Invocation.method(#getStockQuantity, [productId]), + ), + ), ) - as _i5.Stream>); + as _i5.Future<_i9.Result>); @override - _i5.Future insertStock(_i2.StocksTableCompanion? companion) => + _i5.Future<_i9.Result<({int productId, int quantity})?>> getStockByProductId( + int? productId, + ) => (super.noSuchMethod( - Invocation.method(#insertStock, [companion]), - returnValue: _i5.Future.value(0), + Invocation.method(#getStockByProductId, [productId]), + returnValue: + _i5.Future<_i9.Result<({int productId, int quantity})?>>.value( + _i7.dummyValue<_i9.Result<({int productId, int quantity})?>>( + this, + Invocation.method(#getStockByProductId, [productId]), + ), + ), ) - as _i5.Future); + as _i5.Future<_i9.Result<({int productId, int quantity})?>>); @override - _i5.Future updateStock( - int? productId, - _i2.StocksTableCompanion? companion, - ) => + _i5.Future<_i9.Result> getStocksCount() => (super.noSuchMethod( - Invocation.method(#updateStock, [productId, companion]), - returnValue: _i5.Future.value(false), + Invocation.method(#getStocksCount, []), + returnValue: _i5.Future<_i9.Result>.value( + _i7.dummyValue<_i9.Result>( + this, + Invocation.method(#getStocksCount, []), + ), + ), ) - as _i5.Future); + as _i5.Future<_i9.Result>); @override - _i5.Future upsertStock({ - required int? productId, - required int? quantity, + _i5.Future< + _i9.Result< + List< + ({ + int id, + int productId, + int quantityChange, + String reason, + DateTime timestamp, + }) + > + > + > + getMovementHistory({ + int? productId, + DateTime? startDate, + DateTime? endDate, }) => (super.noSuchMethod( - Invocation.method(#upsertStock, [], { + Invocation.method(#getMovementHistory, [], { #productId: productId, - #quantity: quantity, + #startDate: startDate, + #endDate: endDate, }), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), + returnValue: + _i5.Future< + _i9.Result< + List< + ({ + int id, + int productId, + int quantityChange, + String reason, + DateTime timestamp, + }) + > + > + >.value( + _i7.dummyValue< + _i9.Result< + List< + ({ + int id, + int productId, + int quantityChange, + String reason, + DateTime timestamp, + }) + > + > + >( + this, + Invocation.method(#getMovementHistory, [], { + #productId: productId, + #startDate: startDate, + #endDate: endDate, + }), + ), + ), ) - as _i5.Future); + as _i5.Future< + _i9.Result< + List< + ({ + int id, + int productId, + int quantityChange, + String reason, + DateTime timestamp, + }) + > + > + >); @override - _i5.Future adjustStockQuantity({ + _i5.Future<_i9.Result<({int productId, int quantity})>> adjustStock({ required int? productId, required int? delta, + required String? reason, }) => (super.noSuchMethod( - Invocation.method(#adjustStockQuantity, [], { + Invocation.method(#adjustStock, [], { #productId: productId, #delta: delta, + #reason: reason, }), - returnValue: _i5.Future.value(false), + returnValue: + _i5.Future<_i9.Result<({int productId, int quantity})>>.value( + _i7.dummyValue<_i9.Result<({int productId, int quantity})>>( + this, + Invocation.method(#adjustStock, [], { + #productId: productId, + #delta: delta, + #reason: reason, + }), + ), + ), ) - as _i5.Future); + as _i5.Future<_i9.Result<({int productId, int quantity})>>); @override - _i5.Future softDeleteStock(int? productId) => + _i5.Future<_i9.Result<({int productId, int quantity})>> setStock({ + required int? productId, + required int? quantity, + required String? reason, + }) => (super.noSuchMethod( - Invocation.method(#softDeleteStock, [productId]), - returnValue: _i5.Future.value(false), + Invocation.method(#setStock, [], { + #productId: productId, + #quantity: quantity, + #reason: reason, + }), + returnValue: + _i5.Future<_i9.Result<({int productId, int quantity})>>.value( + _i7.dummyValue<_i9.Result<({int productId, int quantity})>>( + this, + Invocation.method(#setStock, [], { + #productId: productId, + #quantity: quantity, + #reason: reason, + }), + ), + ), ) - as _i5.Future); + as _i5.Future<_i9.Result<({int productId, int quantity})>>); @override - _i5.Future restoreStock(int? productId) => + _i5.Future<_i9.Result<({int productId, int quantity})>> decrementForOrder({ + required int? productId, + required int? quantity, + required int? orderId, + }) => (super.noSuchMethod( - Invocation.method(#restoreStock, [productId]), - returnValue: _i5.Future.value(false), + Invocation.method(#decrementForOrder, [], { + #productId: productId, + #quantity: quantity, + #orderId: orderId, + }), + returnValue: + _i5.Future<_i9.Result<({int productId, int quantity})>>.value( + _i7.dummyValue<_i9.Result<({int productId, int quantity})>>( + this, + Invocation.method(#decrementForOrder, [], { + #productId: productId, + #quantity: quantity, + #orderId: orderId, + }), + ), + ), ) - as _i5.Future); + as _i5.Future<_i9.Result<({int productId, int quantity})>>); @override - _i5.Future hardDeleteStock(int? productId) => + _i5.Future<_i9.Result<({int productId, int quantity})>> + restoreForVoidedOrder({ + required int? productId, + required int? quantity, + required int? orderId, + }) => (super.noSuchMethod( - Invocation.method(#hardDeleteStock, [productId]), - returnValue: _i5.Future.value(0), + Invocation.method(#restoreForVoidedOrder, [], { + #productId: productId, + #quantity: quantity, + #orderId: orderId, + }), + returnValue: + _i5.Future<_i9.Result<({int productId, int quantity})>>.value( + _i7.dummyValue<_i9.Result<({int productId, int quantity})>>( + this, + Invocation.method(#restoreForVoidedOrder, [], { + #productId: productId, + #quantity: quantity, + #orderId: orderId, + }), + ), + ), ) - as _i5.Future); + as _i5.Future<_i9.Result<({int productId, int quantity})>>); @override - _i5.Stream createStream( - _i4.QueryStreamFetcher? stmt, - ) => + _i5.Future<_i9.Result> initializeStock({ + required int? productId, + required int? quantity, + }) => (super.noSuchMethod( - Invocation.method(#createStream, [stmt]), - returnValue: _i5.Stream.empty(), + Invocation.method(#initializeStock, [], { + #productId: productId, + #quantity: quantity, + }), + returnValue: _i5.Future<_i9.Result>.value( + _i7.dummyValue<_i9.Result>( + this, + Invocation.method(#initializeStock, [], { + #productId: productId, + #quantity: quantity, + }), + ), + ), ) - as _i5.Stream); + as _i5.Future<_i9.Result>); @override - T alias(_i3.ResultSetImplementation? table, String? alias) => + _i5.Future<_i9.Result> softDeleteStock(int? productId) => (super.noSuchMethod( - Invocation.method(#alias, [table, alias]), - returnValue: _i7.dummyValue( - this, - Invocation.method(#alias, [table, alias]), + Invocation.method(#softDeleteStock, [productId]), + returnValue: _i5.Future<_i9.Result>.value( + _i7.dummyValue<_i9.Result>( + this, + Invocation.method(#softDeleteStock, [productId]), + ), ), ) - as T); - - @override - void markTablesUpdated(Iterable<_i3.TableInfo<_i3.Table, dynamic>>? tables) => - super.noSuchMethod( - Invocation.method(#markTablesUpdated, [tables]), - returnValueForMissingStub: null, - ); - - @override - void notifyUpdates(Set<_i3.TableUpdate>? updates) => super.noSuchMethod( - Invocation.method(#notifyUpdates, [updates]), - returnValueForMissingStub: null, - ); + as _i5.Future<_i9.Result>); @override - _i5.Stream> tableUpdates([ - _i3.TableUpdateQuery? query = const _i3.TableUpdateQuery.any(), - ]) => - (super.noSuchMethod( - Invocation.method(#tableUpdates, [query]), - returnValue: _i5.Stream>.empty(), - ) - as _i5.Stream>); - - @override - _i5.Future doWhenOpened( - _i5.FutureOr Function(_i3.QueryExecutor)? fn, - ) => - (super.noSuchMethod( - Invocation.method(#doWhenOpened, [fn]), - returnValue: - _i7.ifNotNull( - _i7.dummyValueOrNull( - this, - Invocation.method(#doWhenOpened, [fn]), - ), - (T v) => _i5.Future.value(v), - ) ?? - _FakeFuture_6(this, Invocation.method(#doWhenOpened, [fn])), - ) - as _i5.Future); - - @override - _i3.InsertStatement into( - _i3.TableInfo? table, - ) => - (super.noSuchMethod( - Invocation.method(#into, [table]), - returnValue: _FakeInsertStatement_7( - this, - Invocation.method(#into, [table]), - ), - ) - as _i3.InsertStatement); - - @override - _i3.UpdateStatement update( - _i3.TableInfo? table, - ) => - (super.noSuchMethod( - Invocation.method(#update, [table]), - returnValue: _FakeUpdateStatement_8( - this, - Invocation.method(#update, [table]), - ), - ) - as _i3.UpdateStatement); - - @override - _i3.SimpleSelectStatement select( - _i3.ResultSetImplementation? table, { - bool? distinct = false, - }) => - (super.noSuchMethod( - Invocation.method(#select, [table], {#distinct: distinct}), - returnValue: _FakeSimpleSelectStatement_9( - this, - Invocation.method(#select, [table], {#distinct: distinct}), - ), - ) - as _i3.SimpleSelectStatement); - - @override - _i3.JoinedSelectStatement selectOnly( - _i3.ResultSetImplementation? table, { - bool? distinct = false, - }) => - (super.noSuchMethod( - Invocation.method(#selectOnly, [table], {#distinct: distinct}), - returnValue: _FakeJoinedSelectStatement_10( - this, - Invocation.method(#selectOnly, [table], {#distinct: distinct}), - ), - ) - as _i3.JoinedSelectStatement); - - @override - _i3.BaseSelectStatement<_i3.TypedResult> selectExpressions( - Iterable<_i3.Expression>? columns, - ) => - (super.noSuchMethod( - Invocation.method(#selectExpressions, [columns]), - returnValue: _FakeBaseSelectStatement_11<_i3.TypedResult>( - this, - Invocation.method(#selectExpressions, [columns]), - ), - ) - as _i3.BaseSelectStatement<_i3.TypedResult>); - - @override - _i3.DeleteStatement delete( - _i3.TableInfo? table, - ) => - (super.noSuchMethod( - Invocation.method(#delete, [table]), - returnValue: _FakeDeleteStatement_12( - this, - Invocation.method(#delete, [table]), - ), - ) - as _i3.DeleteStatement); - - @override - _i5.Future customUpdate( - String? query, { - List<_i3.Variable>? variables = const [], - Set<_i3.ResultSetImplementation>? updates, - _i3.UpdateKind? updateKind, - }) => - (super.noSuchMethod( - Invocation.method( - #customUpdate, - [query], - { - #variables: variables, - #updates: updates, - #updateKind: updateKind, - }, - ), - returnValue: _i5.Future.value(0), - ) - as _i5.Future); - - @override - _i5.Future customInsert( - String? query, { - List<_i3.Variable>? variables = const [], - Set<_i3.ResultSetImplementation>? updates, - }) => - (super.noSuchMethod( - Invocation.method( - #customInsert, - [query], - {#variables: variables, #updates: updates}, - ), - returnValue: _i5.Future.value(0), - ) - as _i5.Future); - - @override - _i5.Future> customWriteReturning( - String? query, { - List<_i3.Variable>? variables = const [], - Set<_i3.ResultSetImplementation>? updates, - _i3.UpdateKind? updateKind, - }) => - (super.noSuchMethod( - Invocation.method( - #customWriteReturning, - [query], - { - #variables: variables, - #updates: updates, - #updateKind: updateKind, - }, - ), - returnValue: _i5.Future>.value(<_i3.QueryRow>[]), - ) - as _i5.Future>); - - @override - _i3.Selectable<_i3.QueryRow> customSelect( - String? query, { - List<_i3.Variable>? variables = const [], - Set<_i3.ResultSetImplementation>? readsFrom = const {}, - }) => - (super.noSuchMethod( - Invocation.method( - #customSelect, - [query], - {#variables: variables, #readsFrom: readsFrom}, - ), - returnValue: _FakeSelectable_13<_i3.QueryRow>( - this, - Invocation.method( - #customSelect, - [query], - {#variables: variables, #readsFrom: readsFrom}, - ), - ), - ) - as _i3.Selectable<_i3.QueryRow>); - - @override - _i3.Selectable<_i3.QueryRow> customSelectQuery( - String? query, { - List<_i3.Variable>? variables = const [], - Set<_i3.ResultSetImplementation>? readsFrom = const {}, - }) => - (super.noSuchMethod( - Invocation.method( - #customSelectQuery, - [query], - {#variables: variables, #readsFrom: readsFrom}, - ), - returnValue: _FakeSelectable_13<_i3.QueryRow>( - this, - Invocation.method( - #customSelectQuery, - [query], - {#variables: variables, #readsFrom: readsFrom}, - ), - ), - ) - as _i3.Selectable<_i3.QueryRow>); - - @override - _i5.Future customStatement(String? statement, [List? args]) => - (super.noSuchMethod( - Invocation.method(#customStatement, [statement, args]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); - - @override - _i5.Future transaction( - _i5.Future Function()? action, { - bool? requireNew = false, - }) => - (super.noSuchMethod( - Invocation.method( - #transaction, - [action], - {#requireNew: requireNew}, - ), - returnValue: - _i7.ifNotNull( - _i7.dummyValueOrNull( - this, - Invocation.method( - #transaction, - [action], - {#requireNew: requireNew}, - ), - ), - (T v) => _i5.Future.value(v), - ) ?? - _FakeFuture_6( - this, - Invocation.method( - #transaction, - [action], - {#requireNew: requireNew}, - ), - ), - ) - as _i5.Future); - - @override - _i5.Future exclusively(_i5.Future Function()? action) => - (super.noSuchMethod( - Invocation.method(#exclusively, [action]), - returnValue: - _i7.ifNotNull( - _i7.dummyValueOrNull( - this, - Invocation.method(#exclusively, [action]), - ), - (T v) => _i5.Future.value(v), - ) ?? - _FakeFuture_6( - this, - Invocation.method(#exclusively, [action]), - ), - ) - as _i5.Future); - - @override - _i5.Future batch(_i5.FutureOr Function(_i3.Batch)? runInBatch) => - (super.noSuchMethod( - Invocation.method(#batch, [runInBatch]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); - - @override - _i5.Future runWithInterceptor( - _i5.Future Function()? action, { - required _i3.QueryInterceptor? interceptor, - }) => - (super.noSuchMethod( - Invocation.method( - #runWithInterceptor, - [action], - {#interceptor: interceptor}, - ), - returnValue: - _i7.ifNotNull( - _i7.dummyValueOrNull( - this, - Invocation.method( - #runWithInterceptor, - [action], - {#interceptor: interceptor}, - ), - ), - (T v) => _i5.Future.value(v), - ) ?? - _FakeFuture_6( - this, - Invocation.method( - #runWithInterceptor, - [action], - {#interceptor: interceptor}, - ), - ), - ) - as _i5.Future); - - @override - _i3.GenerationContext $write( - _i3.Component? component, { - bool? hasMultipleTables, - int? startIndex, - }) => + _i5.Future<_i9.Result> restoreStock(int? productId) => (super.noSuchMethod( - Invocation.method( - #$write, - [component], - {#hasMultipleTables: hasMultipleTables, #startIndex: startIndex}, - ), - returnValue: _FakeGenerationContext_14( - this, - Invocation.method( - #$write, - [component], - { - #hasMultipleTables: hasMultipleTables, - #startIndex: startIndex, - }, - ), - ), - ) - as _i3.GenerationContext); - - @override - _i3.GenerationContext $writeInsertable( - _i3.TableInfo<_i3.Table, dynamic>? table, - _i3.Insertable? insertable, { - int? startIndex, - }) => - (super.noSuchMethod( - Invocation.method( - #$writeInsertable, - [table, insertable], - {#startIndex: startIndex}, - ), - returnValue: _FakeGenerationContext_14( - this, - Invocation.method( - #$writeInsertable, - [table, insertable], - {#startIndex: startIndex}, + Invocation.method(#restoreStock, [productId]), + returnValue: _i5.Future<_i9.Result>.value( + _i7.dummyValue<_i9.Result>( + this, + Invocation.method(#restoreStock, [productId]), ), ), ) - as _i3.GenerationContext); - - @override - String $expandVar(int? start, int? amount) => - (super.noSuchMethod( - Invocation.method(#$expandVar, [start, amount]), - returnValue: _i7.dummyValue( - this, - Invocation.method(#$expandVar, [start, amount]), - ), - ) - as String); - - @override - _i5.Future close() => - (super.noSuchMethod( - Invocation.method(#close, []), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + as _i5.Future<_i9.Result>); } /// A class which mocks [ModifiersDao]. /// /// See the documentation for Mockito's code generation for more information. -class MockModifiersDao extends _i1.Mock implements _i9.ModifiersDao { +class MockModifiersDao extends _i1.Mock implements _i10.ModifiersDao { MockModifiersDao() { _i1.throwOnMissingStub(this); } diff --git a/features/settings/test/presentation/widgets/printer_section_test.dart b/features/settings/test/presentation/widgets/printer_section_test.dart index 2ee6bc7c..40924e77 100644 --- a/features/settings/test/presentation/widgets/printer_section_test.dart +++ b/features/settings/test/presentation/widgets/printer_section_test.dart @@ -1,6 +1,6 @@ import 'package:bloc_exports/bloc_exports.dart'; -import 'package:feature_settings/domain/repositories/settings_repository.dart'; -import 'package:feature_settings/presentation/blocs/settings/settings_cubit.dart'; +import 'package:app_settings/repositories/settings_repository.dart'; +import 'package:app_settings/blocs/settings_cubit.dart'; import 'package:feature_settings/presentation/widgets/printer_section.dart'; import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; @@ -10,7 +10,7 @@ import 'package:result/result.dart'; /// Minimal in-memory [SettingsRepository] fake — only what [SettingsCubit] /// needs to reach a `loaded` state and back reads/writes. class _FakeSettingsRepository implements SettingsRepository { - final Map _alues = {}; + final Map _values = {}; @override Stream> watchAllSettings() => const Stream.empty(); @@ -19,26 +19,32 @@ class _FakeSettingsRepository implements SettingsRepository { Stream watchSettingValue(String key) => const Stream.empty(); @override - Stream> watchSettingsByPrefix(String prefix) => const Stream.empty(); + Stream> watchSettingsByPrefix(String prefix) => + const Stream.empty(); @override - Future> getString(String key) async => Result.ok(_values[key]); + Future> getString(String key) async => + Result.ok(_values[key]); @override - Future> getInt(String key) async => Result.ok(int.tryParse(_values[key] ?? '')); + Future> getInt(String key) async => + Result.ok(int.tryParse(_values[key] ?? '')); @override - Future> getBool(String key) async => Result.ok(_values[key] == 'true'); + Future> getBool(String key) async => + Result.ok(_values[key] == 'true'); @override Future> getDouble(String key) async => Result.ok(double.tryParse(_values[key] ?? '')); @override - Future>> getPrinterSettings() async => const Result.ok([]); + Future>> getPrinterSettings() async => + const Result.ok([]); @override - Future>> getReceiptSettings() async => const Result.ok([]); + Future>> getReceiptSettings() async => + const Result.ok([]); @override Future> setString(String key, String value) async { @@ -120,7 +126,9 @@ void main() { expect(find.text('Test receipt sent to printer'), findsOneWidget); }); - testWidgets('surfaces an error snackbar when the printer fails', (tester) async { + testWidgets('surfaces an error snackbar when the printer fails', ( + tester, + ) async { printerService.failPrint = true; await pumpPrinterSection(tester); @@ -129,7 +137,10 @@ void main() { await tester.pumpAndSettle(); expect(printerService.printedJobs, isEmpty); - expect(find.text('Test print failed — check the printer connection'), findsOneWidget); + expect( + find.text('Test print failed — check the printer connection'), + findsOneWidget, + ); }); }); } diff --git a/packages/ui_kit/lib/src/widgets/app_shell/app_shell_sidebar.dart b/packages/ui_kit/lib/src/widgets/app_shell/app_shell_sidebar.dart index dc4f8309..cadfce44 100644 --- a/packages/ui_kit/lib/src/widgets/app_shell/app_shell_sidebar.dart +++ b/packages/ui_kit/lib/src/widgets/app_shell/app_shell_sidebar.dart @@ -46,7 +46,10 @@ class AppShellSidebar extends StatelessWidget { if (showHeader) _buildHeader(context), Expanded( child: ListView.separated( - padding: EdgeInsets.symmetric(horizontal: isCollapsed ? 8 : 12, vertical: 8), + padding: EdgeInsets.symmetric( + horizontal: isCollapsed ? 8 : 12, + vertical: 8, + ), itemCount: items.length, separatorBuilder: (_, _) => const SizedBox(height: 2), itemBuilder: (context, index) { @@ -58,7 +61,9 @@ class AppShellSidebar extends StatelessWidget { isSelected: index == selectedIndex, isCollapsed: isCollapsed, isEnabled: item.isEnabled, - onTap: item.isEnabled ? () => onItemSelected?.call(index) : null, + onTap: item.isEnabled + ? () => onItemSelected?.call(index) + : null, ); }, ), @@ -72,7 +77,10 @@ class AppShellSidebar extends StatelessWidget { Widget _buildUserFooter(BuildContext context) { return Container( - padding: EdgeInsets.symmetric(horizontal: isCollapsed ? 8 : 12, vertical: 10), + padding: EdgeInsets.symmetric( + horizontal: isCollapsed ? 8 : 12, + vertical: 10, + ), decoration: const BoxDecoration( border: Border(top: BorderSide(color: Color(0xff1f1f1f), width: 1)), ), @@ -93,16 +101,27 @@ class AppShellSidebar extends StatelessWidget { ); } - Widget _buildHeader(BuildContext context, {bool showCollapseToggle = true}) { + Widget _buildHeader(BuildContext context) { return Padding( padding: EdgeInsets.fromLTRB(isCollapsed ? 0 : 20, 20, 0, 12), child: isCollapsed ? Center( - child: logo ?? const Icon(AgoraIcons.zap, color: AppPalette.primary500, size: 26), + child: + logo ?? + const Icon( + AgoraIcons.zap, + color: AppPalette.primary500, + size: 26, + ), ) : Row( children: [ - logo ?? Icon(AgoraIcons.zap, color: context.colors.primary, size: 26), + logo ?? + Icon( + AgoraIcons.zap, + color: context.colors.primary, + size: 26, + ), const SizedBox(width: 10), AppText.titleMd(appName, color: context.colors.background), ], @@ -112,7 +131,12 @@ class AppShellSidebar extends StatelessWidget { Widget _buildCollapseToggle(BuildContext context) { return Padding( - padding: EdgeInsets.fromLTRB(isCollapsed ? 8 : 12, 0, isCollapsed ? 8 : 12, 20), + padding: EdgeInsets.fromLTRB( + isCollapsed ? 8 : 12, + 0, + isCollapsed ? 8 : 12, + 20, + ), child: Align( alignment: isCollapsed ? Alignment.center : Alignment.centerRight, child: Tooltip( @@ -189,7 +213,10 @@ class _SidebarNavItem extends StatelessWidget { child: AnimatedContainer( duration: const Duration(milliseconds: 200), curve: Curves.easeInOut, - padding: EdgeInsets.symmetric(horizontal: isCollapsed ? 0 : 10, vertical: 11), + padding: EdgeInsets.symmetric( + horizontal: isCollapsed ? 0 : 10, + vertical: 11, + ), decoration: BoxDecoration( color: isSelected ? const Color(0xff1f1f1f) : Colors.transparent, borderRadius: BorderRadius.circular(6), @@ -205,7 +232,9 @@ class _SidebarNavItem extends StatelessWidget { height: 18, margin: const EdgeInsets.only(right: 10), decoration: BoxDecoration( - color: isSelected ? AppPalette.primary500 : Colors.transparent, + color: isSelected + ? AppPalette.primary500 + : Colors.transparent, borderRadius: BorderRadius.circular(2), ), ), @@ -214,10 +243,13 @@ class _SidebarNavItem extends StatelessWidget { Expanded( child: Text( label, - style: Theme.of(context).textTheme.bodyMedium?.copyWith( - fontWeight: isSelected ? FontWeight.w600 : FontWeight.w500, - color: iconColor, - ), + style: Theme.of(context).textTheme.bodyMedium + ?.copyWith( + fontWeight: isSelected + ? FontWeight.w600 + : FontWeight.w500, + color: iconColor, + ), overflow: TextOverflow.ellipsis, ), ),