Use dedicated birthday entry controls (#67)
This commit is contained in:
1 parent
f1ff40d072
commit
4605a197ad
7 files changed
+551
-13
No files matched your search
@@ -11,6 +11,7 @@ import 'package:sxchnge_analytics/sxchnge_analytics.dart';
|
||||
|
||||
import 'package:sxchnge_kyc/sxchnge_kyc.dart';
|
||||
|
||||
import 'package:sxchnge_app/kyc/birth.dart';
|
||||
import 'package:sxchnge_app/kyc/country.dart';
|
||||
import 'package:sxchnge_app/main.dart';
|
||||
import 'package:sxchnge_app/providers/locale.dart';
|
||||
@@ -66,10 +67,16 @@ void main() {
|
||||
return service;
|
||||
}
|
||||
|
||||
Future<void> submit(WidgetTester t) async {
|
||||
Future<void> profile(WidgetTester t) async {
|
||||
await tap(t, find.byKey(const ValueKey('kyc-start')));
|
||||
await t.enterText(find.byKey(const ValueKey('kyc-name')), 'Example Person');
|
||||
await t.enterText(find.byKey(const ValueKey('kyc-birth')), '1990-04-23');
|
||||
await t.enterText(find.byKey(const ValueKey('birth-day')), '23');
|
||||
await tap(t, find.byType(DropdownButtonFormField<int>));
|
||||
// The month label follows the selected app locale.
|
||||
await tap(t, find.textContaining(RegExp(r'^(April|апрель)$')).last);
|
||||
await t.enterText(find.byKey(const ValueKey('birth-year')), '1990');
|
||||
await t.pumpAndSettle();
|
||||
expect(t.widget<BirthField>(find.byType(BirthField)).value, '1990-04-23');
|
||||
await tap(
|
||||
t,
|
||||
find.descendant(
|
||||
@@ -85,6 +92,10 @@ void main() {
|
||||
'PL',
|
||||
);
|
||||
await t.pumpAndSettle();
|
||||
}
|
||||
|
||||
Future<void> submit(WidgetTester t) async {
|
||||
await profile(t);
|
||||
await tap(t, find.byKey(const ValueKey('pick-passport')));
|
||||
await tap(t, find.byKey(const ValueKey('kyc-next')));
|
||||
await tap(t, find.byKey(const ValueKey('pick-selfie')));
|
||||
@@ -93,6 +104,41 @@ void main() {
|
||||
await tap(t, find.byKey(const ValueKey('kyc-submit')));
|
||||
}
|
||||
|
||||
testWidgets(
|
||||
'invalid birthday blocks advancing and valid birthday survives Back',
|
||||
(t) async {
|
||||
await open(t);
|
||||
await profile(t);
|
||||
await tap(t, find.byKey(const ValueKey('pick-passport')));
|
||||
final next = find.byKey(const ValueKey('kyc-next'));
|
||||
await t.enterText(find.byKey(const ValueKey('birth-day')), '31');
|
||||
await t.pumpAndSettle();
|
||||
expect(t.widget<FilledButton>(next).onPressed, isNull);
|
||||
expect(find.text('Enter a valid date of birth.'), findsOneWidget);
|
||||
await t.enterText(find.byKey(const ValueKey('birth-day')), '23');
|
||||
await t.pumpAndSettle();
|
||||
expect(t.widget<FilledButton>(next).onPressed, isNotNull);
|
||||
await tap(t, next);
|
||||
await tap(t, find.text('Back'));
|
||||
expect(t.widget<BirthField>(find.byType(BirthField)).value, '1990-04-23');
|
||||
expect(
|
||||
t
|
||||
.widget<TextFormField>(find.byKey(const ValueKey('birth-day')))
|
||||
.controller!
|
||||
.text,
|
||||
'23',
|
||||
);
|
||||
expect(find.text('April'), findsOneWidget);
|
||||
expect(
|
||||
t
|
||||
.widget<TextFormField>(find.byKey(const ValueKey('birth-year')))
|
||||
.controller!
|
||||
.text,
|
||||
'1990',
|
||||
);
|
||||
},
|
||||
);
|
||||
|
||||
testWidgets('two photos, review, pending and approval with service limits', (
|
||||
t,
|
||||
) async {
|
||||
|
||||
Reference in new issue
Block a user