Skip to content
This repository was archived by the owner on Dec 12, 2024. It is now read-only.

Commit e5ce33b

Browse files
test: add tests for TbdexQuoteNotifier (#321)
1 parent 492c3c5 commit e5ce33b

File tree

1 file changed

+68
-0
lines changed

1 file changed

+68
-0
lines changed
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
import 'package:didpay/features/did/did_provider.dart';
2+
import 'package:didpay/features/tbdex/tbdex_quote_notifier.dart';
3+
import 'package:didpay/features/tbdex/tbdex_service.dart';
4+
import 'package:flutter_test/flutter_test.dart';
5+
import 'package:mocktail/mocktail.dart';
6+
7+
import '../../helpers/mocks.dart';
8+
import '../../helpers/riverpod_helpers.dart';
9+
import '../../helpers/test_data.dart';
10+
11+
Future<void> main() async {
12+
await TestData.initializeDids();
13+
14+
final did = TestData.aliceDid;
15+
const pfiDid = '123';
16+
const exchangeId = 'rfq_01ha835rhefwmagsknrrhvaa0k';
17+
18+
group('TbdexQuoteNotifier`', () {
19+
group('startPolling', () {
20+
test('should return Quote if successful', () async {
21+
final mockTbdexService = MockTbdexService();
22+
final quote = TestData.getQuote();
23+
24+
when(() => mockTbdexService.getExchange(did, pfiDid, exchangeId))
25+
.thenAnswer((_) async => [quote]);
26+
27+
final container = createContainer(
28+
overrides: [
29+
tbdexServiceProvider.overrideWith(
30+
(ref) => mockTbdexService,
31+
),
32+
didProvider.overrideWith((ref) => did),
33+
],
34+
);
35+
36+
final tbdexQuoteNotifier = container.read(quoteProvider.notifier);
37+
38+
final result =
39+
await tbdexQuoteNotifier.startPolling(pfiDid, exchangeId);
40+
41+
expect(result, quote);
42+
});
43+
44+
test('should throw an Exception if not successful', () async {
45+
final mockTbdexService = MockTbdexService();
46+
47+
when(() => mockTbdexService.getExchange(did, pfiDid, exchangeId))
48+
.thenThrow(Exception('Error'));
49+
50+
final container = createContainer(
51+
overrides: [
52+
tbdexServiceProvider.overrideWith(
53+
(ref) => mockTbdexService,
54+
),
55+
didProvider.overrideWith((ref) => did),
56+
],
57+
);
58+
59+
final tbdexQuoteNotifier = container.read(quoteProvider.notifier);
60+
61+
expect(
62+
() => tbdexQuoteNotifier.startPolling(pfiDid, exchangeId),
63+
throwsA(isA<Exception>()),
64+
);
65+
});
66+
});
67+
});
68+
}

0 commit comments

Comments
 (0)