在Angular中,如果有多个客户端,则测试GraphQL Apollo请求

时间:2019-06-21 10:12:38

标签: angular graphql apollo apollo-client

如果有多个客户端,我正在测试GraphQL Apollo请求。

项目基于微服务架构,因此有很多客户端。 在组件中,我写道:this.apollo.use('domain_1'),这很好! enter link description here

但是我的问题与测试此组件有关! 就我而言,我想在domain_1客户上测试我的请求。 当我运行测试时,这是错误:

  

“ TypeError:无法读取未定义的属性'查询'”

组件:

public callDummyAPI(): any {
    apollo.create({
      link: httpLink.create({ uri }),
      cache: new InMemoryCache(),
    });
    return this.apollo.use('domain_1').query<QueryType>({
      query: MY_QUERY,
    })
    .pipe(
      map(result => result.data.hello)
    );
  }

测试组件:

it('should test search', (done) => {
    const fixture = TestBed.createComponent(DummyComponent);
    const component = fixture.debugElement.componentInstance;
    component.callDummyAPI().subscribe(result => {
      expect(result).toEqual('tetete');
      done();
    });
    controller.expectOne('/', MY_QUERY).flush({
      data : {
        hello: 'tetete'
      }
    });
  });

我不知道如何模拟Apollo的use()函数。 Use()未定义!!!我想通过这个测试。

有人知道要解决此问题吗? 提前非常感谢您。 值

0 个答案:

没有答案