-
Notifications
You must be signed in to change notification settings - Fork 51
Expand file tree
/
Copy pathcoverage.js
More file actions
114 lines (93 loc) · 3.41 KB
/
coverage.js
File metadata and controls
114 lines (93 loc) · 3.41 KB
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
require('basichtml').init();
let {render, html, svg} = require('../cjs');
render(document.createElement('div'), html`this is a test`);
render(document.createElement('div'), html`this is a ${
[1, 2].map(n => html`${n}`)
} test`);
render(document.createElement('div'), html`this is a ${
[1, 2].map(n => svg`${n}`)
} test`);
delete require.cache[require.resolve('../cjs')];
const {importNode} = document;
document.importNode = function () {
return importNode.apply(this, arguments);
};
const uhtml = require('../cjs');
render = uhtml.render;
html = uhtml.html;
svg = uhtml.svg;
(function twice(i) {
render(document.createElement('div'), html`this is a ${
(i ? [1, 2, 3] : [1, 2]).map(n => svg`${n}`)
} test`);
if (i--) twice(i);
}(1));
render(document.createElement('div'), html`this is a ${'test'}`);
render(document.createElement('div'), html`this is a ${true}`);
render(document.createElement('div'), html`this is a ${1}`);
let div = document.createElement('div');
render(div, html.node`this is a test`);
render(div, html.for(global)`this is a test`);
render(div, html.for(global, 1)`this is a test`);
render(div, () => html.for(global)`this is a test`);
render(div, () => html.for(global, 1)`this is a test`);
(function twice(i) {
render(div, () => html.for(global)`this is a test`);
render(div, () => html.for(global, 1)`this is a test`);
if (i--) twice(i);
}(1));
render(div, html`<div test="${123}" onclick=${() => {}} .disabled=${true} .contentEditable=${false} null=${null} />`);
render(document.createElement('div'), html`<textarea>${'test'}</textarea>`);
render(document.createElement('div'), html`<style>${'test'}</style>`);
const fragment = () => html`<p>1</p><p>2</p>`;
const sameWire = content => html`<div>${content}</div>`;
render(div, sameWire([fragment()]));
render(div, sameWire([]));
render(div, sameWire([fragment()]));
render(div, html`<style>${'text only'}</style>`);
const variousContent = content => html`${content}`;
render(div, variousContent([
html`<p />`,
html`<p />`
]));
render(div, variousContent([
html`<p />`,
html`<p />`,
html`<p />`
]));
render(div, variousContent([
html`<p />`
]));
render(div, html`<style>${html`text only`}</style>`);
render(div, variousContent('text'));
render(div, variousContent(null));
render(div, variousContent(void 0));
render(div, variousContent([true]));
render(div, variousContent([1]));
render(div, variousContent(['one']));
const reference = {};
render(div, html`<div ref=${reference}>test</div>`);
console.assert(reference.hasOwnProperty('current'));
const withHandler = handler => html`<div onclick=${handler} />`;
render(div, withHandler(Object));
render(div, withHandler(Object));
render(div, withHandler(String));
render(div, withHandler(null));
render(div, withHandler([Object, false]));
const withAttribute = value => html`<div test=${value} />`;
render(div, withAttribute(null));
render(div, withAttribute('test'));
render(div, withAttribute('test'));
render(div, withAttribute(null));
render(div, withAttribute('test'));
const withText = value => html`<textarea>${value}</textarea>`;
render(div, withText('test'));
render(div, withText('test'));
render(div, withText(null));
render(div, withText('test'));
render(div, html`${document.createDocumentFragment()}`);
const wire1 = html`<p /><p />`;
const wire2 = html`<div /><div />`;
const wire = what => html`${what}`;
render(div, wire([wire1, fragment(), wire2]));
render(div, wire([wire2, fragment(), wire1]));