Добър ден, започнах да се занимавам с jsdom. Написах много проста функция за яснота. Написах тест, използвайки мока, чай и JSDOM.
Всички „документи“ в моя module.js
са скрити поради факта, че ако ги разкоментирам, ще се появи грешката "ReferenceError: document is not defined"
. На теория вече разбирам какво означава. Тази грешка означава, че в Node няма прозорец, документ и т.н.. Но не знам как да разреша този проблем.
Ще бъда благодарен за всяка помощ.
index.html:
<body>
<input type="text" id="inputValue">
<input type="text" id="outputValue">
<button id="getResult">getResult</button>
<script src="./module.js"></script>
</body>
module.js
//var input = document.getElementById("inputValue");
//var output = document.getElementById("outputValue");
//var button = document.getElementById("getResult").addEventListener('click', generateValue);
function generateValue(input, output){
output.value = input.value * 5;
}
module.exports = {
generateValue,
};
tests.js
let object = require("../module.js");
const assert = require("chai").assert;
const { JSDOM } = require("jsdom");
describe("generateValue", function() {
let dom = null;
before(async function() {
dom = new JSDOM('<!doctype html><html><head></head><body></body></html>')
});
it('Should return 25 when parameter 5', function() {
const input = dom.window.document.createElement("input");
input.id = "inputValue";
const output = dom.window.document.createElement("input");
output.id = "outputValue";
dom.window.document.body.append(input);
dom.window.document.body.append(output);
input.value = 5;
const expected = 25;
object.generateValue(input, output);
assert.equal(output.value, expected);
});
});