Submit customer identity proofs and show reviewed limits

This commit is contained in:
Stephan D committed 2026-10-15 02:22:28 +02:00
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,
);
},
);
}