2017-02-13 7 views
3

Я пытаюсь высмеять мой сервер graphql, так что когда я запрашиваю, он возвращает обратно макет данных вместо перехода на сервер graphql. В тот момент, когда я бег моего запроса к притворной graphql, я получаю обратно эту ошибку:Mocking graphql server

"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"}) 
}`; 

Схемы

const typeDefs = ` 
type loginCrendentialsType { 
    data: String 
} 
input loginInputType{ 
    userName: String! 
    passWord: String! 
} 
type RootQuery { 
    login(input: loginInputType): [loginCrendentialsType] 
} 
schema { 
    query: RootQuery 
} 
`; 

Mock

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)); 
}); 
+0

Я думаю, что когда вы предоставляете входные переменные, это должна быть мутация, а не запрос? –

+1

btw check graphql-faker: https://github.com/APIs-guru/graphql-faker Он использует faker.js для подделки сервера GraphQL. Также он поддерживает расширенный режим для смешивания реальных данных сервера с поддельными. – RomanHotsiy

ответ

2

Я думаю, когда вы предоставите входные переменные, то она должна быть мутация не запрос ??

использовать переменную для хранения объекта ввода, и назначить ей $input

let query = `query login($input: {input: {userName: "james" , passWord: "password"} }){ 
    login(input: $input) 
}`; 

ИЛИ

let query = `query login{ 
    login(input: {userName: "james" , passWord: "password"}) 
}`; 
0

Использование GraphQL Инструменты из команды Apollo, чтобы помочь вам имитировали вещи https://github.com/apollographql/graphql-tools

Ваш запрос был неправильным и должен быть в переменной, на которую ответил @ p0k8_

+0

Я не понял? * Ваш запрос был неправильным, как на это ответил @ p0k8_ * –

+0

ваш ответ был хорошим @ p0k8_. я скорректировал свой ответ –

+0

теперь это более ясно –

 Смежные вопросы

  • Нет связанных вопросов^_^