Я пытаюсь высмеять только небольшую часть типа Contact
ниже.Мои средства распознавания возвращают данные из конечной точки REST для всех полей в Contact
, кроме test
.В демонстрационных целях я хочу иметь возможность сохранять данные сервера для всех других полей, но только издеваться над полем test
.
У меня определена следующая схема GraphQL:
const typeDefs = `
type Contact {
id: String,
first_name: String
last_name: String
middle_name: String
date_of_birth: String
test: String
}
type Query {
contacts: [Contact!]!
Contact(id: String!): Contact!
}
`;
У меня определены следующие макеты:
const mocks = {
Contact: () => ({
test: () => "This data is mocked!"
})
};
И определены следующие резольверы:
const resolvers = {
Query: {
contacts: async (parent, args, { dataSources }) =>
dataSources.MYAPI.getAllContacts(),
Contact: async (parent, { id }, { dataSources }) =>
dataSources.MYAPI.getContact(id)
}
};
Затем я инициализирую сервер с помощью:
const server = new ApolloServer({
typeDefs,
resolvers,
mocks,
dataSources: () => {
return {
MYAPI: new MYAPI()
};
},
mockEntireSchema: false
});
Вышене работает.Я добавил конфигурацию mockEntireSchema:true
, которая предотвращала переопределение ответа моего сервера, но атрибут test
по-прежнему возвращает макет String по умолчанию Hello World
вместо моего попытки This data is mocked!
.
. Я знаюмакет настроен правильно, потому что я могу удалить конфигурацию mockEntireSchema
и мои данные макета отображаются правильно.
Возможно ли это вообще или поведение mockEntireSchema
и макеты вообще не поддерживают это?