我试图嘲笑我的graphql服务器,以便当我查询时,它返回模拟数据,而不是去graphql服务器。在运行我对模拟graphql查询的那一刻,我又回到这个错误:嘲弄graphql服务器
"errors":[{"message":"Syntax Error GraphQL request (1:13) Expected $, found Name \"input\"\n\n1: query login(input: {userName: \"james\" , passWord: \"password\"}
这里是我的当前设置:
查询
let query = `query login(input: {userName: "james" , passWord: "password"}){
login(input: {userName: "james" , passWord: "password"})
}`;
Schema
const typeDefs = `
type loginCrendentialsType {
data: String
}
input loginInputType{
userName: String!
passWord: String!
}
type RootQuery {
login(input: loginInputType): [loginCrendentialsType]
}
schema {
query: RootQuery
}
`;
模拟
const mocks = {
login: (loginInputType) => ({
data: mockDB.getUser(loginInputType.userName, loginInputType.passWord)
})
};
设置
const schema = makeExecutableSchema({
typeDefs
});
addMockFunctionsToSchema({
schema,
mocks,
});
graphql(schema,query).then((result) => {
console.log("reachedhere " + JSON.stringify(result));
});
我想当你提供输入变量时,它一定是变异而不是查询? –
btw check out graphql-faker:https://github.com/APIs-guru/graphql-faker 它使用faker.js伪造GraphQL服务器。此外,它支持扩展模式混合真实的服务器数据与伪造。 – RomanHotsiy