Angular 10-HttpInterceptor单元测试扩展

时间:2020-08-22 19:56:38

标签: angular rxjs jasmine angular-http-interceptors

我已经花了很长时间尝试测试以下拦截器,但是没有运气。

@Injectable()
export class PaginationInterceptor implements HttpInterceptor {

  constructor() {}

  intercept(request: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>> {
    if (!request.url.includes('https://myurl.com/api')) {
      return next.handle(request);
    }

    return next.handle(request).pipe(
      filter(event => event instanceof HttpResponse),
      expand((previous: HttpResponse<any>, index) => {
        if (!previous.body.next) {
          return empty();
        }

        return this.intercept(request.clone({ url: previous.body.next }), next);
      }),
    );
  }
}

我如何断言:

  1. URL是否为example.com时代码是否退出?
  2. 响应具有next属性时,请求是否得到扩展?
  3. 当响应没有next时,它不会扩展吗?

谢谢:)

0 个答案:

没有答案