Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
25 changes: 20 additions & 5 deletions apps/agora/lib/app/pages/protected_shell_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -112,15 +112,20 @@ class _ProtectedShellPageState extends State<ProtectedShellPage> {

return BlocBuilder<ClockInCubit, ClockInState>(
builder: (context, clockState) {
final isClockedIn = clockState.maybeWhen(clockedIn: (_) => true, orElse: () => false);
final isClockedIn = clockState.maybeWhen(
clockedIn: (_) => true,
orElse: () => false,
);

return AutoTabsRouter(
homeIndex: 0,
routes: [for (final e in entries) e.route],
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);
}
Expand All @@ -136,7 +141,13 @@ class _ProtectedShellPageState extends State<ProtectedShellPage> {
currentOperator: 'Main Counter',
onOperatorSwitchTap: () {},
openSidebar: () => _scaffoldKey.currentState?.openDrawer(),
child: _buildLayout(context, child, tabsRouter, activeIndex, entries),
child: _buildLayout(
context,
child,
tabsRouter,
activeIndex,
entries,
),
);
},
);
Expand Down Expand Up @@ -171,7 +182,8 @@ class _ProtectedShellPageState extends State<ProtectedShellPage> {
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);
Expand Down Expand Up @@ -214,7 +226,10 @@ class _ProtectedShellPageState extends State<ProtectedShellPage> {
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),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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';

Expand Down
Original file line number Diff line number Diff line change
@@ -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';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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<int>> deleteOrder(int? id) =>
Expand Down
39 changes: 21 additions & 18 deletions features/orders/test/blocs/checkout/checkout_cubit_test.mocks.dart
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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<int>> deleteOrder(int? id) =>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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<void>.delayed(Duration.zero);
Expand All @@ -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<void>.delayed(Duration.zero);
Expand Down Expand Up @@ -137,7 +137,7 @@ void main() {
await Future<void>.delayed(Duration.zero);
await cubit.voidOrder();

verifyNever(ordersRepository.voidOrder(any));
verifyNever(ordersRepository.voidOrder(7));
await cubit.close();
});
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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<int>> deleteOrder(int? id) =>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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';

Expand Down
Original file line number Diff line number Diff line change
@@ -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;
Expand Down
Original file line number Diff line number Diff line change
@@ -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;
Expand Down
Original file line number Diff line number Diff line change
@@ -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;
Expand Down
Original file line number Diff line number Diff line change
@@ -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;
Expand Down
Loading
Loading