aboutsummaryrefslogtreecommitdiff
path: root/packages/webapi/test/basic.js
blob: 9eb5864d59ad82101af7ac320d56ac72d15f5e4e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
import { expect } from 'chai'
import { polyfill } from '../mod.js'

describe('Basic', () => {
	before(() => polyfill(globalThis))

	it('Globals exist', () => {
		const webAPIs = [
			'ByteLengthQueuingStrategy',
			'CSSStyleSheet',
			'CountQueuingStrategy',
			'CustomElementRegistry',
			'CustomEvent',
			'DOMException',
			'Document',
			'DocumentFragment',
			'Element',
			'Event',
			'EventTarget',
			'File',
			'FormData',
			'HTMLDocument',
			'HTMLElement',
			'HTMLDivElement',
			'HTMLHeadElement',
			'HTMLHtmlElement',
			'HTMLImageElement',
			'HTMLStyleElement',
			'HTMLTemplateElement',
			'HTMLUnknownElement',
			'Headers',
			'IntersectionObserver',
			'Image',
			'MediaQueryList',
			'MutationObserver',
			'Node',
			'ReadableByteStreamController',
			'ReadableStream',
			'ReadableStreamBYOBReader',
			'ReadableStreamBYOBRequest',
			'ReadableStreamDefaultController',
			'ReadableStreamDefaultReader',
			'Request',
			'Response',
			'ShadowRoot',
			'StyleSheet',
			'TransformStream',
			'WritableStream',
			'WritableStreamDefaultController',
			'WritableStreamDefaultWriter',
			'Window',
			'cancelAnimationFrame',
			'cancelIdleCallback',
			'clearTimeout',
			'fetch',
			'requestAnimationFrame',
			'requestIdleCallback',
			'setTimeout',
		]

		for (const name of webAPIs) {
			expect(globalThis[name]).to.be.a('function')
		}
	})

	it('Classes extend as expected', () => {
		expect(HTMLElement.prototype).to.be.an.instanceof(Element)
		expect(Element.prototype).to.be.an.instanceof(Node)
		expect(Node.prototype).to.be.an.instanceof(EventTarget)
	})

	it('DOM Methods have no effect', () => {
		const element = document.createElement('div')

		expect(element.innerHTML).to.be.empty
		element.innerHTML = 'frozen'
		expect(element.innerHTML).to.be.empty

		expect(element.textContent).to.be.empty
		element.textContent = 'frozen'
		expect(element.textContent).to.be.empty
	})

	it('globalThis.window === globalThis', () => {
		expect(globalThis.window).to.equal(globalThis)
	})
})