【问题标题】:Pass GraphQL query to Apollo MockedProvider将 GraphQL 查询传递给 Apollo MockedProvider
【发布时间】:2019-04-02 09:18:28
【问题描述】:

我有一个小的 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 标记中,但它也不接受。如何在测试中模拟此查询?

【问题讨论】:

    标签: reactjs graphql apollo react-apollo


    【解决方案1】:

    你做错了。您必须首先像这样为您的查询创建一个响应。

    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>
    

    【讨论】:

      猜你喜欢
      • 2018-01-27
      • 2018-08-16
      • 1970-01-01
      • 2020-11-12
      • 2017-09-27
      • 2023-01-26
      • 2019-01-26
      • 2022-07-20
      • 2020-01-25
      相关资源
      最近更新 更多