Я пытаюсь написать пример модульного теста для моего компонента svelte, используя библиотеку jest-transform-svelte. Ниже приводится компонент:
XYZ.svelte
<script>
function submit() {
var name = document.getElementById("name").value; // Here document.getElementById("name") is coming as null when run from unit test case.
dispatch("abc", {
text: name
});
}
</script>
<input id="name" value="" type="text" label="Name" />
<button label="Submit" variant="primary" on:click={submit} />
XYZ.test.js
import XYZ from "XYZ.svelte";
describe("XYZ Component", () => {
it('dispatches abc event on submit', (next) => {
const target = document.createElement('div');
const xyz = new XYZ({ target: target });
setTimeout(() => {
const button = target.querySelector("button");
button.click();
xyz.$on('abc', event => {
next();
});
}, 10);
});
});
Когда происходит button.click на тестовом примере, вызов запускает функцию отправки в XYZ.svelte, но,
document.getElementById ("имя")
приходит как null, из-за чего возникает ошибка исключения нулевого указателя.
Есть идеи, что я делаю неправильно?