【发布时间】:2019-07-10 23:36:20
【问题描述】:
我正在为我的应用程序的登录功能编写验收测试。在某些时候,我想再次检查 cookie 的到期时间。
单击“登录”按钮后,会向我的服务器发送一个 graphql 查询,该服务器以 Jwt 响应。收到 jwt 后,应用程序使用
设置 cookiedocument.cookie = ...
在我的赛普拉斯测试中,我通过以下方式检查令牌:
Then("sa session s'ouvre pour {SessionDurationType}", expectedDuration => {
cy.get('@graphql').then(() => {
cy.wait(1000)
cy.getCookie('token').then(cookie => {
const tokenDuration = getTokenDuration(cookie.value)
expect(tokenDuration.asSeconds()).to.equal(expectedDuration.asSeconds())
})
})
})
使用cy.get('@graphql'),我正在等待graphql 查询返回响应。别名是这样定义的:
cy.stub(win, 'fetch', fetch).as('graphql')
收到后,应用程序会设置 cookie。
我的问题是我不喜欢下面的电话:
cy.wait(1000)
没有那个调用,我总是得到一个未定义的 cookie。
有没有办法在可能远小于 1000 毫秒的时间内获取该 cookie?我尝试了很多事情都没有成功...
【问题讨论】:
标签: javascript cookies cucumber graphql cypress