我正在编写一个使用vue-apollo与graphql交互的Vue应用程序。我想知道是否可以存根graphql请求。我认为这应该有效:
id
不幸的是,我从graphql收到错误,抱怨Int
是ObjectId
而不是{{1}}。我错过了什么吗?
答案 0 :(得分:2)
问题在于,赛普拉斯尚未实施存根fetch
请求(这是Vue Apollo正在使用的)。我最终遵循these指示:
github/fetch
cypress/support/index.js
:
Cypress.on('window:before:load', win => {
win.fetch = null;
win.Blob = null;
});
现在有效!
答案 1 :(得分:0)
我在这里使用此软件包:
npm i @iam4x/cypress-graphql-mock
将此行添加到“ support / commands.js”
import "@iam4x/cypress-graphql-mock";
module.exports = (on, config) => {
on("task", {
getSchema() {
return fs.readFileSync(
path.resolve(__dirname, "../../../schema.graphql"),
"utf8"
);
}
});
};
beforeEach(() => {
cy.server();
cy.task("getSchema").then(schema => {
cy.mockGraphql({
schema
});
});
});`
describe("Login Form", () => {
it("should redirect after login", () => {
cy.mockGraphqlOps({
operations: {
Login: {
login: {
jwt: "some-token",
user: {
id: "5d5a8e1e635a8b6694dd7cb0"
}
}
}
}
});
cy.visit("/login");
cy.getTestEl("email-input").type("Max Mustermann");
cy.getTestEl("password-input").type("passwort");
cy.getTestEl("submit").click();
cy.getTestEl("toolbar-title").should("exist");
});
})