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 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, ); }, ); }