onRequest method

  1. @override
void onRequest(
  1. RequestOptions requestOptions,
  2. RequestInterceptorHandler requestInterceptorHandler
)

Dio Interceptor`s onRequest configuration intended to catch and return mocked request and data respectively.

Implementation

@override
void onRequest(requestOptions, requestInterceptorHandler) async {
  await setDefaultRequestHeaders(dio, requestOptions);
  final response = await mockResponse(requestOptions);

  if (response == null) {
    requestInterceptorHandler.next(requestOptions);
    return;
  }

  // Reject the response if type is MockDioException.
  if (isMockDioException(response)) {
    requestInterceptorHandler.reject(response as DioException);

    return;
  }

  final responseBody = response as MockResponseBody;

  requestInterceptorHandler.resolve(
    Response(
      data: await dio.transformer.transformResponse(
        requestOptions,
        responseBody,
      ),
      headers: Headers.fromMap(responseBody.headers),
      isRedirect: responseBody.isRedirect,
      redirects: responseBody.redirects ?? [],
      requestOptions: requestOptions,
      statusCode: responseBody.statusCode,
      statusMessage: responseBody.statusMessage,
    ),
  );
}