enqueueJson method

void enqueueJson({
  1. required String method,
  2. required String path,
  3. required Object? response,
  4. Object? expectedRequest,
  5. int statusCode = 200,
  6. Map<String, String> headers = const <String, String>{},
})

Adds a JSON response and optionally validates the decoded request body.

Implementation

void enqueueJson({
  required String method,
  required String path,
  required Object? response,
  Object? expectedRequest,
  int statusCode = 200,
  Map<String, String> headers = const <String, String>{},
}) {
  enqueue(
    method: method,
    path: path,
    respond: (request) {
      if (expectedRequest != null) {
        final actual = request.jsonObject();
        if (jsonEncode(actual) != jsonEncode(expectedRequest)) {
          throw StateError(
            'Unexpected auth request JSON for ${request.uri.path}: '
            '${jsonEncode(actual)}',
          );
        }
      }
      return AuthTestHttpResponse.json(
        response,
        statusCode: statusCode,
        headers: headers,
      );
    },
  );
}