type file используя vue-test-utils + vitest (ну или jest) ? Возник вопрос как правильнее всего это сделать, возможно кто-то может поделиться хорошим примером или статьей, буду благодарен!
А в чём проблема?
не получается правильно замокать ивент, который происходит в случае триггера инпута, что бы потом проверить что заемитались нужные значения вот примерный код it.only("emits correct event", async () => { const inputElement = findByTestId("upload-input", wrapper); await inputElement.trigger("change"); expect(wrapper.emitted("update:modelValue")).toBeTruthy(); expect(wrapper.emitted("update:modelValue")?.[0]).toEqual(event.target.files); });
Можно сделать dispatchEvent нативно если trigger не позволяет указать значение, но вообще должен
test('should emit event when file selected', () => { const wrapper = shallowMount(FileInputWrapper); const file = new File(['foo'], 'foo.txt'); const input = wrapper.find('input'); Object.defineProperty(input.element, 'files', { value: [file] }); input.trigger('change'); expect(wrapper.emitted('change')).toEqual([[[file]]]); }); примерно так
Ага, понял, видел где-то похожий пример, спасибо за помощь!
А зачем забирать с элемента инпута когда файл в событии
где забирать? не понял о чём ты
в событии файла нет, насколько я помню. Во всяком случае, у меня в компоненте это реализовано как event.target.files
а почему [[[file]]]?
wrapper.emitted('change') возвращает список массив срабатываний события
Обсуждают сегодня