Импорт фрагмента из файла GraphQL в другой файл GraphQL не работает - PullRequest
1 голос
/ 23 мая 2019

Я пытаюсь сделать тест по каратэ, используя файл .graphql и передавая переменные.В моей схеме graphql я пытаюсь повторно использовать фрагмент из другого файла .graphql.Я попытался следовать объяснению https://www.apollographql.com/docs/react/advanced/fragments#webpack-importing-fragments, но когда я запустил тест Каратэ с оператором #import для файла .graphql, тест не удался, сказав, что фрагмент неизвестен.

FindProfile.feature

@smoke
Feature: Test GraphQL FindTrendingProfiles

    Background:
        * url 'https://192.168.0.0.1'

    Scenario: FindTrendingProfiles Request
        Given def query = read('FindProfile.graphql')
        And def variables = { cursor: "1", cursorType: PAGE, size: 2 }
        And request { query: '#(query)', variables: '#(variables)' }
        When method post
        Then status 200

FindProfile.graphql

#import "./Media.graphql"

query FindProfile($cursor: String, $cursorType: CursorType!, $size: Int!) {
  FindProfile(cursor: $cursor, cursorType: $cursorType, size: $size) {
   edges{
        id
       profilePictureMedia{
               ...Media
             }
  }
}
}

Media.graphql

    fragment Media on Media {
    id
    title
    description
  }

Я ожидаю, что смогу повторно использовать фрагмент из другого файла .graphql, но на самом деле я не могу этого сделать,Любая помощь очень ценится.Спасибо.

1 Ответ

1 голос
/ 23 мая 2019

Для карате GraphQL просто обрабатывается как простой текст или необработанные строки.Не поддерживается импорт GraphQL.

Как правило, команды получают образец действительного GraphQL в тот момент, когда клиент отправляет HTTP-запрос POST на сервер.Это может даже содержать фрагменты, как вы видите в этих примерах .

Тогда все, что нужно сделать вашему тесту, - это повторить его.Карате дает вам множество возможностей для работы со строками, таких как replace, если вам нужно тестирование на основе данных.

Подводя итог, работайте с полностью сформированными строками GraphQL.Если вам нужно изменить их, используйте replace или пользовательские манипуляции со строками, используя JS или утилиту Java.В большинстве случаев переменные GraphQL достаточны для тестов, управляемых данными.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...