-
Notifications
You must be signed in to change notification settings - Fork 303
/
Copy pathscript.ts
44 lines (38 loc) · 1.26 KB
/
script.ts
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
describe('script element', () => {
it('should work with src', async (done) => {
const p = <p>Should see hello below:</p>;
document.body.appendChild(p);
var x = document.createElement('script');
x.src = 'assets:///assets/hello.js';
document.head.appendChild(x);
x.onload = async () => {
await snapshot();
done();
};
});
it('load failed with error event', (done) => {
const script = document.createElement('script');
document.body.appendChild(script);
script.onerror = () => {
done();
};
script.src = 'http://127.0.0.1/path/to/a/file';
});
it('async script execute in delayed order', async (done) => {
const scriptA = document.createElement('script');
scriptA.async = true;
scriptA.src = 'assets:///assets/defineA.js';
const scriptB = document.createElement('script');
scriptB.src = 'assets:///assets/defineB.js';
document.body.appendChild(scriptA);
document.body.appendChild(scriptB);
scriptA.onload = () => {
// expect bundle B has already loaded.
expect(window.A).toEqual('A');
expect(window.B).toEqual('B');
// Bundle B load earlier than A.
expect(window.bundleALoadTime - window.bundleBLoadTime > 0).toEqual(true);
done();
};
});
});