Cypress w/graphql-在通过UI获取测试身份时遇到问题。更好的方法来消除突变?
因此,如果我在真空中测试页面,而没有与后端进行太多交互,那么效果会很好。如果我的UI遇到任何类型的服务,我在实际与它交互时会遇到问题。基本上,没有什么是授权的。我尝试编程设置cookie,没有骰子。我试着读饼干,没有。顺便说一句,我的整个网站需要登录Cypress w/graphql-在通过UI获取测试身份时遇到问题。更好的方法来消除突变?,cypress,Cypress,因此,如果我在真空中测试页面,而没有与后端进行太多交互,那么效果会很好。如果我的UI遇到任何类型的服务,我在实际与它交互时会遇到问题。基本上,没有什么是授权的。我尝试编程设置cookie,没有骰子。我试着读饼干,没有。顺便说一句,我的整个网站需要登录 cy.setCookie('sess', ';askjdfa;skdjfa;skdjfa;skdjfa;skfjd');<-- does not work cy.getCookie('sess').should('exist') <-
cy.setCookie('sess', ';askjdfa;skdjfa;skdjfa;skdjfa;skfjd');<-- does not work
cy.getCookie('sess').should('exist') <-- does not work
有什么想法吗?我没有做存根和所有这些,因为你在我的另一篇文章中问变异将如何处理
cy.request
。我是这样做的,它基本上是有效的。希望这会有所帮助
不过我先创建了一个const
export const join_graphQL=(查询,额外={})=>{
返回`突变{
${query}(加入:{email:${extra.email}),id:${extra.id}){
身份证、姓名、电子邮件
}
}`
};
请求配置常量
export const graphqlReqConfig=(body={},api=graphQlapi,method='post')=>{
返回{
方法,,
身体,
url:api,
failOnStatusCode:false
}
};
使用cy.request进行变异查询
const mutation = `
mutation {
updateUser(id: 1, firstName: "test") {
firstName
lastName
id
role
}
}`
cy.request({
url: url,
method: 'POST',
body: { query: mutation },
headers: {
Authorization: `Bearer ${token}`,
},
})
const mutationQuery=join_graphQL('mutationName'{
电子邮件:“电子邮件”,
身份证号码:38293
});
cy.request(graphqlReqConfig({
查询:mutationQuery
}))。然后((res)=>{
const data=res.body.data['mutationName'];//结果
});
希望它不会太乱,看不见
基本上,字段必须是字符串,比如“${extra.email}”
,否则会给您带来错误。不确定graphql是如何深入工作的,但如果我只做${extra.email}
我会得到一个错误,我忘了它是什么错误。这里有一个简单的方法来处理带有cy.request
const mutation = `
mutation {
updateUser(id: 1, firstName: "test") {
firstName
lastName
id
role
}
}`
cy.request({
url: url,
method: 'POST',
body: { query: mutation },
headers: {
Authorization: `Bearer ${token}`,
},
})
在运行您的登录规范时,尝试设置Cypress.Cookies.debug(true)
,并查看是否有Cookies打印在命令logHey中,谢谢-我会尝试一下。我不确定这将是什么:api=graphQlapi,这意味着什么?@jamesemanon哦,糟糕,这只是你的graphql的url
,例如https://example.com/graphql-endpoint
我发现没那么凌乱:)