У меня есть плагин, который я абстрагировал от существующего проекта до голого проекта 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