All files / lib/http-controller http-controller.mock.ts

60% Statements 3/5
55.55% Branches 5/9
33.33% Functions 1/3
60% Lines 3/5

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34                                            11x             11x 10x      
import type { HttpRequest } from '@angular/common/http';
import type { HttpTestingController, RequestMatch, TestRequest } from '@angular/common/http/testing';
 
export type THttpRequestMatcher<T> = string | RequestMatch | ((req: HttpRequest<T>) => boolean);
 
/**
 * This function should be used in unit tests to flush HttpTestingController requests.
 */
export function flushHttpRequests<T>(
  httpController: HttpTestingController,
  verify = false,
  matcher: THttpRequestMatcher<T> = (req: HttpRequest<T>): boolean => true,
  responseData:
    | string
    | number
    | Record<string, unknown>
    | ArrayBuffer
    | Blob
    | Array<string | number | Record<string, unknown> | null>
    | null = {},
  produceError?: boolean,
): void {
  httpController.match(matcher).forEach((req: TestRequest) => {
    return produceError === true
      ? req.error(new ProgressEvent('error', { total: 1, loaded: 1, cancelable: true }))
      : !req.cancelled
        ? req.flush(responseData)
        : null;
  });
  if (verify) {
    httpController.verify();
  }
}