Skip to content

Commit 1fc317a

Browse files
committed
fake_api: Allow recording and taking multiple requests.
Signed-off-by: Zixuan James Li <[email protected]>
1 parent d76183c commit 1fc317a

File tree

2 files changed

+12
-12
lines changed

2 files changed

+12
-12
lines changed

test/api/fake_api.dart

+7-7
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,11 @@ class _PreparedSuccess extends _PreparedResponse {
2929
/// An [http.Client] that accepts and replays canned responses, for testing.
3030
class FakeHttpClient extends http.BaseClient {
3131

32-
http.BaseRequest? lastRequest;
32+
List<http.BaseRequest> previousRequests = [];
3333

34-
http.BaseRequest? takeLastRequest() {
35-
final result = lastRequest;
36-
lastRequest = null;
34+
List<http.BaseRequest> takePreviousRequests() {
35+
final result = previousRequests;
36+
previousRequests = [];
3737
return result;
3838
}
3939

@@ -80,7 +80,7 @@ class FakeHttpClient extends http.BaseClient {
8080

8181
@override
8282
Future<http.StreamedResponse> send(http.BaseRequest request) {
83-
lastRequest = request;
83+
previousRequests.add(request);
8484

8585
if (_nextResponse == null) {
8686
throw FlutterError.fromParts([
@@ -205,9 +205,9 @@ class FakeApiConnection extends ApiConnection {
205205
super.close();
206206
}
207207

208-
http.BaseRequest? get lastRequest => client.lastRequest;
208+
http.BaseRequest? get lastRequest => client.previousRequests.lastOrNull;
209209

210-
http.BaseRequest? takeLastRequest() => client.takeLastRequest();
210+
List<http.BaseRequest> takePreviousRequests() => client.takePreviousRequests();
211211

212212
/// Prepare the response for the next request.
213213
///

test/model/store_test.dart

+5-5
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,7 @@ void main() {
205205
await store.sendMessage(
206206
destination: StreamDestination(stream.streamId, 'world'),
207207
content: 'hello');
208-
check(connection.takeLastRequest()).isA<http.Request>()
208+
check(connection.takePreviousRequests()).single.isA<http.Request>()
209209
..method.equals('POST')
210210
..url.path.equals('/api/v1/messages')
211211
..bodyFields.deepEquals({
@@ -233,7 +233,7 @@ void main() {
233233
}
234234

235235
void checkLastRequest() {
236-
check(connection.takeLastRequest()).isA<http.Request>()
236+
check(connection.takePreviousRequests()).single.isA<http.Request>()
237237
..method.equals('POST')
238238
..url.path.equals('/api/v1/register');
239239
}
@@ -337,7 +337,7 @@ void main() {
337337
}
338338

339339
void checkLastRequest({required int lastEventId}) {
340-
check(connection.takeLastRequest()).isA<http.Request>()
340+
check(connection.takePreviousRequests()).single.isA<http.Request>()
341341
..method.equals('GET')
342342
..url.path.equals('/api/v1/events')
343343
..url.queryParameters.deepEquals({
@@ -487,14 +487,14 @@ void main() {
487487
}
488488

489489
void checkLastRequestApns({required String token, required String appid}) {
490-
check(connection.takeLastRequest()).isA<http.Request>()
490+
check(connection.takePreviousRequests()).single.isA<http.Request>()
491491
..method.equals('POST')
492492
..url.path.equals('/api/v1/users/me/apns_device_token')
493493
..bodyFields.deepEquals({'token': token, 'appid': appid});
494494
}
495495

496496
void checkLastRequestFcm({required String token}) {
497-
check(connection.takeLastRequest()).isA<http.Request>()
497+
check(connection.takePreviousRequests()).single.isA<http.Request>()
498498
..method.equals('POST')
499499
..url.path.equals('/api/v1/users/me/android_gcm_reg_id')
500500
..bodyFields.deepEquals({'token': token});

0 commit comments

Comments
 (0)