Интеграционный тест плагина Vue.js - PullRequest
0 голосов
/ 19 марта 2019

У меня есть плагин, который я абстрагировал от существующего проекта до голого проекта vue-create, см. Код ниже.Плагины добавляют div в текст документа (src / plugin.js).Он имеет компонент .vue с текстом «test», который изменит видимость при нажатии на логотип Vue (src / plugin.vue и vue-test-plugin.gif ).

Проблема:

Я могу получить доступ к HTML-элементу этого плагина через vm.$el.parentElement.getElementsByClassName('plugin-container') в src / main.js, но я получаю TypeError: Cannot read property 'getElementsByClassName' of null при обращении к нему в тестовом файле (tests \unit \ plugin.spec.js).

 PASS  tests/unit/example.spec.js
 FAIL  tests/unit/plugin.spec.js
  ● Plugin › should change visibility when Vue image is clicked

    TypeError: Cannot read property 'getElementsByClassName' of null

      16 |
      17 |     const image = vm.$el.getElementsByTagName('img')[0];
    > 18 |     const pluginContainer = vm.$el.parentElement.getElementsByClassName('plugin-container').length;
         |                                                  ^
      19 |
      20 |     expect(pluginContainer).toBe(0);
      21 |     image.click();

      at Object.getElementsByClassName (tests/unit/plugin.spec.js:18:50)

Test Suites: 1 failed, 1 passed, 2 total
Tests:       1 failed, 1 passed, 2 total
Snapshots:   0 total
Time:        2.266s
Ran all test suites.

Watch Usage: Press w to show more.

Ожидаемый результат:

Ожидаю, что мой тест пройдет без проблем.

Код:

Доступно в https://github.com/tomchoo46/vue-test-plugin

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