在测试中,我通过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();
}