Skip to content

Commit f1c18f5

Browse files
author
Peter Bryant
committed
✅ Write integration test for Passputter
1 parent ffe160f commit f1c18f5

File tree

2 files changed

+65
-0
lines changed

2 files changed

+65
-0
lines changed

pubspec.yaml

+2
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,9 @@ dependencies:
1212

1313
dev_dependencies:
1414
import_sorter: ^4.5.0
15+
mock_web_server: ^5.0.0-nullsafety.1
1516
mocktail: ^0.1.2
17+
pretty_dio_logger: ^1.2.0-beta-1
1618
test: ^1.17.3
1719
time: ^2.0.0
1820
very_good_analysis: ^2.0.3

test/passputter_test.dart

+63
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
// 📦 Package imports:
2+
import 'package:dio/dio.dart';
3+
import 'package:mock_web_server/mock_web_server.dart';
4+
import 'package:pretty_dio_logger/pretty_dio_logger.dart';
5+
import 'package:test/test.dart';
6+
7+
// 🌎 Project imports:
8+
import 'package:passputter/passputter.dart';
9+
10+
void main() {
11+
const clientId = 'id';
12+
const clientSecret = 'secret';
13+
14+
late MockWebServer server;
15+
late InMemoryTokenStorage storage;
16+
late Passputter passputter;
17+
18+
setUp(() async {
19+
server = MockWebServer();
20+
storage = InMemoryTokenStorage();
21+
22+
await server.start();
23+
24+
passputter = Passputter(
25+
dio: Dio()..interceptors.add(PrettyDioLogger()),
26+
endpoint: server.url,
27+
clientId: clientId,
28+
clientSecret: clientSecret,
29+
tokenStorage: storage,
30+
);
31+
});
32+
33+
tearDown(() {
34+
server.shutdown();
35+
});
36+
37+
group('isLoggedIn', () {
38+
test('is false when no token is stored', () async {
39+
await storage.deleteUserToken();
40+
41+
expect(passputter.isLoggedIn, isFalse);
42+
});
43+
44+
test('is true after logging in then false after logging out', () async {
45+
server.enqueue(
46+
body: '''
47+
{
48+
"access_token": "token",
49+
"expires_in": 1000
50+
}
51+
''',
52+
);
53+
54+
await passputter.logIn(email: '[email protected]', password: 'password');
55+
56+
expect(passputter.isLoggedIn, isTrue);
57+
58+
await passputter.logOut();
59+
60+
expect(passputter.isLoggedIn, isFalse);
61+
});
62+
});
63+
}

0 commit comments

Comments
 (0)