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
54 changes: 54 additions & 0 deletions test/goldens/screens/create_wallet/create_wallet_golden_test.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
import 'package:alchemist/alchemist.dart';
import 'package:bloc_test/bloc_test.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:mocktail/mocktail.dart';
import 'package:realunit_wallet/packages/wallet/wallet.dart';
import 'package:realunit_wallet/screens/create_wallet/bloc/create_wallet_cubit.dart';
import 'package:realunit_wallet/screens/create_wallet/create_wallet_view.dart';

import '../../../helper/helper.dart';

class _MockCreateWalletCubit extends MockCubit<CreateWalletState>
implements CreateWalletCubit {}

class _MockWallet extends Mock implements SoftwareWallet {}

void main() {
late _MockCreateWalletCubit cubit;

setUpAll(() {
// Stub the no_screenshot plugin's MethodChannel so screenshotOff/On calls
// do not throw MissingPluginException in headless tests.
TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger
.setMockMethodCallHandler(
const MethodChannel('com.flutterplaza.no_screenshot_methods'),
(call) async => true,
);
});

setUp(() {
cubit = _MockCreateWalletCubit();
final wallet = _MockWallet();
when(() => wallet.seed).thenReturn(
'cheese trigger cannon mention judge hire snack sustain annual predict illness celery',
);
when(() => cubit.state).thenReturn(CreateWalletState(wallet: wallet));
});

Widget buildSubject() => BlocProvider<CreateWalletCubit>.value(
value: cubit,
child: const CreateWalletView(),
);

group('$CreateWalletView', () {
goldenTest(
'seed generated and blurred',
fileName: 'create_wallet_page_default',
constraints: const BoxConstraints.tightFor(width: 390, height: 844),
builder: () => wrapForGolden(buildSubject()),
);
});
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
36 changes: 36 additions & 0 deletions test/goldens/screens/debug_auth/debug_auth_golden_test.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
import 'package:alchemist/alchemist.dart';
import 'package:bloc_test/bloc_test.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:mocktail/mocktail.dart';
import 'package:realunit_wallet/screens/debug_auth/cubit/debug_auth_cubit.dart';
import 'package:realunit_wallet/screens/debug_auth/debug_auth_view.dart';

import '../../../helper/helper.dart';

class _MockDebugAuthCubit extends MockCubit<DebugAuthState>
implements DebugAuthCubit {}

void main() {
late _MockDebugAuthCubit debugAuthCubit;

setUp(() {
debugAuthCubit = _MockDebugAuthCubit();
when(() => debugAuthCubit.state).thenReturn(const DebugAuthState());
});

Widget buildSubject() => BlocProvider<DebugAuthCubit>.value(
value: debugAuthCubit,
child: const DebugAuthView(),
);

group('$DebugAuthView', () {
goldenTest(
'default state',
fileName: 'debug_auth_page_default',
constraints: const BoxConstraints.tightFor(width: 390, height: 844),
builder: () => wrapForGolden(buildSubject()),
);
});
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
import 'package:alchemist/alchemist.dart';
import 'package:bloc_test/bloc_test.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:mocktail/mocktail.dart';
import 'package:realunit_wallet/screens/hardware_connect_bitbox/bloc/connect_bitbox_cubit.dart';
import 'package:realunit_wallet/screens/hardware_connect_bitbox/connect_bitbox_view.dart';

import '../../../helper/helper.dart';

class _MockConnectBitboxCubit extends MockCubit<BitboxConnectionState>
implements ConnectBitboxCubit {}

void main() {
late _MockConnectBitboxCubit cubit;

setUp(() {
cubit = _MockConnectBitboxCubit();
final state = BitboxNotConnected();
when(() => cubit.state).thenReturn(state);
whenListen(
cubit,
const Stream<BitboxConnectionState>.empty(),
initialState: state,
);
});

Widget buildSubject() => Scaffold(
body: BlocProvider<ConnectBitboxCubit>.value(
value: cubit,
child: ConnectBitboxView(onFinish: (_) {}),
),
);

group('$ConnectBitboxView', () {
goldenTest(
'not connected default state',
fileName: 'connect_bitbox_page_default',
constraints: const BoxConstraints.tightFor(width: 390, height: 844),
builder: () => wrapForGolden(buildSubject()),
);
});
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
35 changes: 35 additions & 0 deletions test/goldens/screens/home/home_golden_test.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
import 'package:alchemist/alchemist.dart';
import 'package:bloc_test/bloc_test.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:mocktail/mocktail.dart';
import 'package:realunit_wallet/screens/home/bloc/home_bloc.dart';
import 'package:realunit_wallet/screens/home/home_page.dart';

import '../../../helper/helper.dart';

class _MockHomeBloc extends MockBloc<HomeEvent, HomeState> implements HomeBloc {}

void main() {
late _MockHomeBloc homeBloc;

setUp(() {
homeBloc = _MockHomeBloc();
when(() => homeBloc.state).thenReturn(const HomeState());
});

Widget buildSubject() => BlocProvider<HomeBloc>.value(
value: homeBloc,
child: const HomePage(),
);

group('$HomePage', () {
goldenTest(
'default state',
fileName: 'home_page_default',
constraints: const BoxConstraints.tightFor(width: 390, height: 844),
builder: () => wrapForGolden(buildSubject()),
);
});
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
56 changes: 56 additions & 0 deletions test/goldens/screens/kyc/kyc_2fa_golden_test.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
import 'package:alchemist/alchemist.dart';
import 'package:bloc_test/bloc_test.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:mocktail/mocktail.dart';
import 'package:realunit_wallet/screens/kyc/cubits/kyc/kyc_cubit.dart';
import 'package:realunit_wallet/screens/kyc/steps/2fa/cubits/kyc_2fa/kyc_2fa_cubit.dart';
import 'package:realunit_wallet/screens/kyc/steps/2fa/cubits/kyc_2fa_verify/kyc_2fa_verify_cubit.dart';
import 'package:realunit_wallet/screens/kyc/steps/2fa/kyc_2fa_page.dart';

import '../../../helper/helper.dart';

class _MockKyc2FaCubit extends MockCubit<Kyc2FaState> implements Kyc2FaCubit {}

class _MockKyc2FaVerifyCubit extends MockCubit<Kyc2FaVerifyState>
implements Kyc2FaVerifyCubit {}

class _MockKycCubit extends MockCubit<KycState> implements KycCubit {}

void main() {
const phoneConstraints = BoxConstraints.tightFor(width: 390, height: 844);

late _MockKyc2FaCubit kyc2FaCubit;
late _MockKyc2FaVerifyCubit kyc2FaVerifyCubit;
late _MockKycCubit kycCubit;

setUp(() {
kyc2FaCubit = _MockKyc2FaCubit();
kyc2FaVerifyCubit = _MockKyc2FaVerifyCubit();
kycCubit = _MockKycCubit();

when(() => kyc2FaCubit.state).thenReturn(const Kyc2FaInitial());
when(() => kyc2FaCubit.requestCode()).thenAnswer((_) => Future.value());
when(() => kyc2FaVerifyCubit.state).thenReturn(const Kyc2FaVerifyInitial());
when(() => kycCubit.state).thenReturn(const KycInitial());
});

group('$Kyc2FaView', () {
goldenTest(
'initial empty state',
fileName: 'kyc_2fa_page_default',
constraints: phoneConstraints,
builder: () => wrapForGolden(
MultiBlocProvider(
providers: [
BlocProvider<Kyc2FaCubit>.value(value: kyc2FaCubit),
BlocProvider<Kyc2FaVerifyCubit>.value(value: kyc2FaVerifyCubit),
BlocProvider<KycCubit>.value(value: kycCubit),
],
child: const Kyc2FaView(),
),
),
);
});
}
37 changes: 37 additions & 0 deletions test/goldens/screens/kyc/kyc_account_merge_golden_test.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
import 'package:alchemist/alchemist.dart';
import 'package:bloc_test/bloc_test.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:mocktail/mocktail.dart';
import 'package:realunit_wallet/screens/kyc/cubits/kyc/kyc_cubit.dart';
import 'package:realunit_wallet/screens/kyc/subpages/kyc_account_merge_page.dart';

import '../../../helper/helper.dart';

class _MockKycCubit extends MockCubit<KycState> implements KycCubit {}

void main() {
const phoneConstraints = BoxConstraints.tightFor(width: 390, height: 844);

late _MockKycCubit kycCubit;

setUp(() {
kycCubit = _MockKycCubit();
when(() => kycCubit.state).thenReturn(const KycInitial());
});

group('$KycAccountMergePage', () {
goldenTest(
'default state',
fileName: 'kyc_account_merge_page_default',
constraints: phoneConstraints,
builder: () => wrapForGolden(
BlocProvider<KycCubit>.value(
value: kycCubit,
child: const KycAccountMergePage(),
),
),
);
});
}
19 changes: 19 additions & 0 deletions test/goldens/screens/kyc/kyc_completed_golden_test.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import 'package:alchemist/alchemist.dart';
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:realunit_wallet/screens/kyc/subpages/kyc_completed_page.dart';

import '../../../helper/helper.dart';

void main() {
const phoneConstraints = BoxConstraints.tightFor(width: 390, height: 844);

group('$KycCompletedPage', () {
goldenTest(
'default state',
fileName: 'kyc_completed_page_default',
constraints: phoneConstraints,
builder: () => wrapForGolden(const KycCompletedPage()),
);
});
}
48 changes: 48 additions & 0 deletions test/goldens/screens/kyc/kyc_email_golden_test.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
import 'package:alchemist/alchemist.dart';
import 'package:bloc_test/bloc_test.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:mocktail/mocktail.dart';
import 'package:realunit_wallet/screens/kyc/cubits/kyc/kyc_cubit.dart';
import 'package:realunit_wallet/screens/kyc/steps/email/cubits/email_step/kyc_email_step_cubit.dart';
import 'package:realunit_wallet/screens/kyc/steps/email/kyc_email_page.dart';

import '../../../helper/helper.dart';

class _MockKycEmailStepCubit extends MockCubit<KycEmailStepState>
implements KycEmailStepCubit {}

class _MockKycCubit extends MockCubit<KycState> implements KycCubit {}

void main() {
const phoneConstraints = BoxConstraints.tightFor(width: 390, height: 844);

late _MockKycEmailStepCubit emailStepCubit;
late _MockKycCubit kycCubit;

setUp(() {
emailStepCubit = _MockKycEmailStepCubit();
kycCubit = _MockKycCubit();

when(() => emailStepCubit.state).thenReturn(const KycEmailStepInitial());
when(() => kycCubit.state).thenReturn(const KycInitial());
});

group('$KycEmailView', () {
goldenTest(
'initial empty state',
fileName: 'kyc_email_page_default',
constraints: phoneConstraints,
builder: () => wrapForGolden(
MultiBlocProvider(
providers: [
BlocProvider<KycEmailStepCubit>.value(value: emailStepCubit),
BlocProvider<KycCubit>.value(value: kycCubit),
],
child: const KycEmailView(),
),
),
);
});
}
52 changes: 52 additions & 0 deletions test/goldens/screens/kyc/kyc_email_verification_golden_test.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
import 'package:alchemist/alchemist.dart';
import 'package:bloc_test/bloc_test.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:mocktail/mocktail.dart';
import 'package:realunit_wallet/screens/home/bloc/home_bloc.dart';
import 'package:realunit_wallet/screens/kyc/steps/email/cubits/email_verification/kyc_email_verification_cubit.dart';
import 'package:realunit_wallet/screens/kyc/steps/email/subpages/kyc_email_verification_page.dart';

import '../../../helper/helper.dart';

class _MockKycEmailVerificationCubit extends MockCubit<KycEmailVerificationState>
implements KycEmailVerificationCubit {}

class _MockHomeBloc extends MockBloc<HomeEvent, HomeState> implements HomeBloc {}

void main() {
const phoneConstraints = BoxConstraints.tightFor(width: 390, height: 844);

late _MockKycEmailVerificationCubit verificationCubit;
late _MockHomeBloc homeBloc;

setUp(() {
verificationCubit = _MockKycEmailVerificationCubit();
homeBloc = _MockHomeBloc();

when(() => verificationCubit.state).thenReturn(
const KycEmailVerificationInitial(),
);
when(() => homeBloc.state).thenReturn(const HomeState());
});

group('$KycEmailVerificationView', () {
goldenTest(
'initial state',
fileName: 'kyc_email_verification_page_default',
constraints: phoneConstraints,
builder: () => wrapForGolden(
MultiBlocProvider(
providers: [
BlocProvider<KycEmailVerificationCubit>.value(
value: verificationCubit,
),
BlocProvider<HomeBloc>.value(value: homeBloc),
],
child: const KycEmailVerificationView(),
),
),
);
});
}
Loading
Loading