在Cypress的上下文中:如何等待Apollo客户端Graphql请求

在Cypress的上下文中:如何等待Apollo客户端Graphql请求,graphql,apollo,cypress,Graphql,Apollo,Cypress,在我的测试中,我通过Apollo客户端执行graphql查询,并设置数据。使用cypress如何设置,以便在继续之前可以等待执行这些步骤: 现在我正在像这样破解它 cy.wrap(空) 。然后(()=>注册({电子邮件,模板:'basic'})) .然后(()=>{ 登入(电邮); }) .then(resp=>console.log('Logged-IN:',resp)); log('Hello[这是在登录之前注销的--我想等待]) cy.wait(1000); cy.visit('/');

在我的测试中,我通过Apollo客户端执行graphql查询,并设置数据。使用cypress如何设置,以便在继续之前可以等待执行这些步骤:

现在我正在像这样破解它

cy.wrap(空)
。然后(()=>注册({电子邮件,模板:'basic'}))
.然后(()=>{
登入(电邮);
})
.then(resp=>console.log('Logged-IN:',resp));
log('Hello[这是在登录之前注销的--我想等待])
cy.wait(1000);
cy.visit('/');
但我想等整个cy.wrap街区

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

谢谢


如果有用,两个引用的方法如下所示。 TestClient是Apollo客户端的一个实例

导出功能登录(电子邮件:字符串){
const client=newtestclient();
返回客户端
.变异({
突变:逻辑突变,
变量:{email}
})
。然后(resp=>{
cy.setCookie('token',resp!.data!.login!.token!);
返回响应;
});
}

导出功能寄存器(输入:IRegisterInput){
const{email}=输入;
const name=input.name | | faker.name.findName();
返回Create邀请函(电子邮件、姓名)。然后(invitaitonResponse=>{
const inviteCode=invitaitonResponse.data!.createInvitation!.invitation!.inviteCode!;
let变量:RegisterMutationVariables={email,inviteCode};
if(input.template){
variables.template=input.template;
}
const client=newtestclient();
返回client.mutate({
突变:注册突变,
变量:{email,inviteCode}
});
});
}

这不是'没有足够的信息来回答你的问题。您认为这些功能是什么'你要回电话吗?登记和login@bkucera--添加到查询的主体中。Thxcypress将等待从这些函数返回的所有承诺,因此您能否解释更多关于未等待的“步骤”(我在代码中添加了一个控制台日志)——console.log(“Hello”)在console.log(“Logged in”)之前触发——因此未等待不,Cypress命令是同步排队的,但是cypress等待着自己执行它们。Console.log不是Cypress命令