Тестирование распознавателей GraphQL с помощью Jest - PullRequest
0 голосов
/ 24 мая 2018

Я ищу написать тесты для распознавателя GraphQL с использованием Jest и не знаю, с чего начать.Решающие устройства - это простые функции CRUD для записи в базу данных MongoDB с помощью mongoose на NodeJS.

Тип:

type Article {
  _id: ID!
  title: String
  authors: [User]
}

Запрос

extend type Query {
  articles: [Article]
  article(_id: ID!): Article
}

Resolvers (только для чтения)

Query: {
  articles: () => new Promise((resolve, reject) => {
    Article.find({}, (err, articles) => {
      if (err) reject(err);
      else resolve(articles);
    });
  }),
  article: (root, {
    _id,
  }) => new Promise((resolve, reject) => {
    Article.findById(_id, (err, article) => {
      if (err) reject(err);
      else resolve(article);
    });
  }),
},

Как выполнить тестирование без взаимодействия с базой данных?

1 Ответ

0 голосов
/ 20 августа 2018

выполните следующие действия

  • Используйте переменную среды для изменения базы данных в соответствии с режимом (производство, тестирование, разработка)
  • схема импорта
  • запись тестови используйте graphql следующим образом:

    const query=`mutation name($id:String!)  //dummy example query
       {
            user(id:$id)
            {
             //fields goes here
              }
       }` 
    const result = await graphql(schema, query, {}, {}, data);
    if (result.data) {
        return result.data.addEventTag
    } else {
        throw new Error(...result.errors.map(err => ` \n${err.message}`));
    }  
    

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

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