我有一个小的GraphQL查询,我想用Apollo的MockedProvider
来模拟。
export const queryType = new GraphQLObjectType({
name: 'Query',
fields: {
getUsername: {
type: GraphQLString,
resolve: ({ session }) => {
if (session.isLoggedIn) return session.username;
return null;
}
}
}
});
export default new GraphQLSchema({ query: queryType, mutation: mutationType });
我尝试将其添加到mocks
数组中,但是我不知道如何将查询转换为可接受的格式。我的代码如下所示:
const { getUsername } = queryType.getFields();
const mocks = [
{
request: { query: getUsername },
result: { data: { getUsername: 'username' } }
}
];
const app = (
<MockedProvider mocks={mocks}>
<App />
</MockedProvider>
)
我试图将其包装在gql标签中,但它也不接受。如何在测试中模拟该查询?
答案 0 :(得分:0)
您做错了。您必须像这样首先为您的查询创建一个响应。
const addLanguageMock = {
request: {
query: Loaction_Query,
variables: {
name: 'हिंदी',
iso_code: 'hin',
name_in_english: 'hindi'
}
},
result: {
data: {}
}
};
然后您可以像这样传递它。
const mocks = [addLanguageMock] <MockedProvider mocks={mocks}> <App /> </MockedProvider>