wrapWithMockAppCubit function

Widget wrapWithMockAppCubit(
  1. Widget child, {
  2. NetworkStatus networkStatus = NetworkStatus.connected,
  3. AppAuthStatus authStatus = AppAuthStatus.noauth,
  4. AppStatus appStatus = AppStatus.normal,
})

Helper to wrap widgets with MockAppCubit provider

This provides the AppCubit context required by widgets that use TappableAction or other components that depend on AppCubit.

Usage in tests:

Widget createTestWidget() {
  return wrapWithMockAppCubit(
    MaterialApp(
      home: MyWidget(),
    ),
  );
}

To test different network states:

await tester.pumpWidget(
  wrapWithMockAppCubit(
    MaterialApp(home: MyWidget()),
    networkStatus: NetworkStatus.none,
  ),
);

Implementation

Widget wrapWithMockAppCubit(
  Widget child, {
  NetworkStatus networkStatus = NetworkStatus.connected,
  AppAuthStatus authStatus = AppAuthStatus.noauth,
  AppStatus appStatus = AppStatus.normal,
}) {
  return BlocProvider<AppCubit>(
    create: (_) => MockAppCubit(
      networkStatus: networkStatus,
      authStatus: authStatus,
      appStatus: appStatus,
    ),
    child: child,
  );
}