赛普拉斯的上下文中:如何等待Apollo客户端Graphql请求

时间:2019-03-16 17:37:40

标签: graphql apollo cypress

在测试中,我通过ApolloClient执行graphql查询,并通过变异来设置数据。如何使用cypress进行设置,以便在继续执行之前等待这些步骤执行:

现在我正在像这样入侵它...

export function login(email: string) {
  const client = new TestClient();

  return client
    .mutate<LoginMutation, LoginMutationVariables>({
      mutation: loginMutation,
      variables: { email }
    })
    .then(resp => {
      cy.setCookie('token', resp!.data!.login!.token!);
      return resp;
    });
}

但是我要等待整个cy.wrap块。

任何人都有一个好的工作解决方案。

谢谢!


在有用的情况下,两个引用的方法如下所示。 TestClient是ApolloClient的实例

export function register(input: IRegisterInput) {
  const { email } = input;
  const name = input.name || faker.name.findName();
  return createInvitation(email, name).then(invitaitonResponse => {
    const inviteCode = invitaitonResponse.data!.createInvitation!.invitation!.inviteCode!;

    let variables: RegisterMutationVariables = { email, inviteCode };

    if (input.template) {
      variables.template = input.template;
    }

    const client = new TestClient();
    return client.mutate<RegisterMutation, RegisterMutationVariables>({
      mutation: registerMutation,
      variables: { email, inviteCode }
    });
  });
}

public async Task<IEnumerable<Articolo>> GetArticoliByDivisioneAsync(string divisione)
{
    return await _ctx.Articoli
                     .Where(a => a.Divisione == divisione
                                 && a.Category!= "001")
                     .Include(i => i.Varianti)
                     .Include(i => i.FotoArticoli)               
                     .ToListAsync();
}

0 个答案:

没有答案