所以我的应用程序的某些部分根据当前已登录的用户状态动态运行。因此,我添加了一个cypress命令,以触发对我的服务器的graphql请求,以修改该用户状态。
Cypress.Commands.add('toggleUserState', (isComplete: boolean) => {
const baseUrl = Cypress.config().baseUrl;
return cy.request('/auth/me').then((res) => {
const token = res.body.idToken;
cy.log(`using ${token} as token`);
const gqlClient = new GraphQLClient(`${baseUrl}graphql`, {
headers: { Authorization: `Bearer ${token}` },
});
const sdk = getSdk(gqlClient);
return sdk.user().then((userRe) => {
return sdk.updateUserStateForSession({
userId: userRes.user.id,
isFirstTimeExperienceComplete: isComplete,
});
});
});
});
当我在cypress:open
图形模式下运行cypress时,此方法有效。但是,无头运行,我总是收到一条错误消息,说我无权提出此请求。即使我在这里手动设置访问令牌也是如此。
任何人都对我该如何做有想法