Проверить в nightwatchjs, правильно ли сохранен тест E2E в базе данных? - PullRequest
1 голос
/ 28 марта 2019

Для проекта meteor с машинописью и реакцией я использую тестирование nightwatch , которое отлично работает: https://github.com/arichter83/meteor-react-typescript-nightwatch

a.) Проверка результатов базы данных через клиента

Теперь я хочу проверить в базе данных , успешно ли тест end2end добавил данные, и это оказалось удивительно трудным. Я могу пройти через клиента и посмотреть в Mongo.Collection (на github ):

browser
  .execute(function() {
    return (Meteor as any).connection._stores['links']._getCollection()
      .insert({title:"new link"})
  }, [], (result) => {
    const newid = result.value
    browser
      .assert.containsText('#' + newid, 'new link')
      .execute(function(newid) {
        return (Meteor as any).connection._stores['links']._getCollection()
          .remove({_id: newid})
      }, [newid], () => {
        browser
          .assert.elementNotPresent('#' + newid)
      })
  })

При таком подходе довольно сложно использовать мои существующие модели и взаимодействовать с Nightwatch.

b.) Проверка результатов базы данных в тесте

Но я бы вместо этого использовал nightwatch возможность модульного теста между ними, но из документов кажется, что E2E и модульные тесты не могут быть смешаны.

Кроме того, когда импортирует мои модели в тесте на сервере:

import { Links } from '../../imports/api/links'
console.log(Links.findOne())

Typescript выдает ошибку, что он не может разрешить пакет атмосферы meteor/mongo - так что @types/meteor, кажется, не загружен (вероятно, для метеора):

Cannot find module 'meteor/mongo'

Вопросы

  1. Обычно рекомендуется проверять результаты базы данных для тестов E2E?
  2. Какой самый элегантный способ сделать это с Nightwatch (+ метеор)? (Я также создал Запрос функций там )
  3. Как использовать метеорные библиотеки в ночных часовых тестах?
...