Submit customer identity proofs and show reviewed limits
This commit is contained in:
1 parent
7bf8b8087a
commit
1354551ae8
50 files changed
+1777
-67
No files matched your search
@@ -0,0 +1,41 @@
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
|
||||
import 'package:sxchnge_kyc/sxchnge_kyc.dart';
|
||||
|
||||
class RealIdentity extends DummyIdentityService {
|
||||
IdentityStatus status = IdentityStatus.unverified;
|
||||
bool unavailable = false;
|
||||
@override
|
||||
bool get isSimulated => false;
|
||||
@override
|
||||
Future<Identity> fetch() async {
|
||||
if (unavailable) throw const KycException(KycError.unavailable);
|
||||
return Identity(status: status);
|
||||
}
|
||||
}
|
||||
|
||||
void main() {
|
||||
test('offers optional verification once to a basic customer and allows later corrections', () async {
|
||||
final service = RealIdentity(),
|
||||
provider = IdentityOnboardingProvider(RealIdentity());
|
||||
expect(await provider.offer('customer'), true);
|
||||
expect(await provider.offer('customer'), false);
|
||||
final subject = IdentityOnboardingProvider(service);
|
||||
service.status = IdentityStatus.pending;
|
||||
expect(await subject.offer('pending'), false);
|
||||
service.status = IdentityStatus.approved;
|
||||
expect(await subject.offer('approved'), false);
|
||||
service.status = IdentityStatus.changesRequested;
|
||||
expect(await subject.offer('correction'), true);
|
||||
});
|
||||
test(
|
||||
'a failed optional identity dependency never blocks basic login',
|
||||
() async {
|
||||
final service = RealIdentity()..unavailable = true;
|
||||
expect(
|
||||
await IdentityOnboardingProvider(service).offer('customer'),
|
||||
false,
|
||||
);
|
||||
},
|
||||
);
|
||||
}
|
||||
Reference in new issue
Block a user