Я не могу получить «документ» JSDOM в классе View, когда я вызываю его. Что мне нужно сделать?
Я установил все @types/
зависимости, и JSDOM хорошо работает в ситуации, затем я вызываю его непосредственно из тестов, и не работал, когда я звонил View.ts
//view.ts
interface View {
_element_id?: string,
_elem?: any,
};
class View {
constructor(param: View) {
this._element_id = param._element_id;
this._elem = document.getElementById(param._element_id);
}
a = document.getElementById(this._element_id).textContent
}
export { View };
Затем я создал тестовый файл, и он выглядит как
//test.ts
import { View } from 'view';
import { assert } from 'chai';
import { JSDOM, FromFileOptions, DOMWindow } from 'jsdom';
const dom = new JSDOM(`<!DOCTYPE html><html><body><div id="slider">Hello!</div></body></html>`);
let document = dom.window.document;
let view = new View({
_element_id: "slider"} as View)
describe('Test View',
() => {
it('Simple JSDOM', () => {
let a = document.getElementById("slider").textContent;
assert.equal(a, "Hello!")};
Первый тест в порядке! Но мне нужно запустить следующий тест, который сейчас не работает
it('Call JSDOM from class View', () => {
let a = view.a;
assert.equal(a, "Hello!")}
};
ошибка
this._elem = document.getElementById(param._element_id);
^
ReferenceError: document is not defined