diff --git a/src/mock-doc/element.ts b/src/mock-doc/element.ts index 894f322a017..6c9cd5ccaa9 100644 --- a/src/mock-doc/element.ts +++ b/src/mock-doc/element.ts @@ -49,6 +49,9 @@ export function createElement(ownerDocument: any, tagName: string): any { case 'title': return new MockTitleElement(ownerDocument); + + case 'ul': + return new MockUListElement(ownerDocument); } if (ownerDocument != null && tagName.includes('-')) { @@ -493,6 +496,12 @@ export class MockTitleElement extends MockHTMLElement { } } +export class MockUListElement extends MockHTMLElement { + constructor(ownerDocument: any) { + super(ownerDocument, 'ul'); + } +} + export class MockCanvasElement extends MockHTMLElement { constructor(ownerDocument: any) { super(ownerDocument, 'canvas'); diff --git a/src/mock-doc/global.ts b/src/mock-doc/global.ts index 389b991782e..ba535ea5110 100644 --- a/src/mock-doc/global.ts +++ b/src/mock-doc/global.ts @@ -12,6 +12,7 @@ import { MockStyleElement, MockTemplateElement, MockTitleElement, + MockUListElement, } from './element'; import { MockCustomEvent, MockEvent, MockFocusEvent, MockKeyboardEvent, MockMouseEvent } from './event'; import { MockHeaders } from './headers'; @@ -177,4 +178,5 @@ const GLOBAL_CONSTRUCTORS: [string, any][] = [ ['HTMLStyleElement', MockStyleElement], ['HTMLTemplateElement', MockTemplateElement], ['HTMLTitleElement', MockTitleElement], + ['HTMLUListElement', MockUListElement], ]; diff --git a/src/mock-doc/test/element.spec.ts b/src/mock-doc/test/element.spec.ts index d9671e7a723..74c3753a91e 100644 --- a/src/mock-doc/test/element.spec.ts +++ b/src/mock-doc/test/element.spec.ts @@ -1,5 +1,5 @@ import { MockDocument } from '../document'; -import { MockAnchorElement, MockMetaElement, MockSVGElement } from '../element'; +import { MockAnchorElement, MockMetaElement, MockSVGElement, MockUListElement } from '../element'; import { MockElement, MockHTMLElement } from '../node'; import { cloneWindow, MockWindow } from '../window'; @@ -479,4 +479,12 @@ describe('element', () => { expect(elm.pathname).toBe('/path/to/page'); }); }); + + describe('ul', () => { + it('textContent', () => { + const elm: MockUListElement = doc.createElement('ul'); + elm.textContent = 'this is an item in an unordered list'; + expect(elm.textContent).toBe('this is an item in an unordered list'); + }); + }); });