-
Notifications
You must be signed in to change notification settings - Fork 6
/
test-anonymous.js
75 lines (56 loc) · 1.78 KB
/
test-anonymous.js
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
const { chromium } = require('playwright');
const EC = require('eight-colors');
const MCR = require('../');
const checkSnapshot = require('./check-snapshot.js');
// v8 and lcov
const coverageOptions = {
// logging: 'debug',
name: 'My Anonymous Coverage Report',
assetsPath: '../assets',
outputDir: './docs/anonymous',
onEnd: function(coverageResults) {
checkSnapshot(coverageResults);
}
};
const test = async () => {
console.log('start anonymous test ...');
const browser = await chromium.launch({
// headless: false
});
const page = await browser.newPage();
// JavaScript Coverage doesn't include anonymous scripts by default.
await page.coverage.startJSCoverage({
reportAnonymousScripts: true,
resetOnNavigation: false
});
await page.setContent(`<html>
<head>
<title>mock page anonymous</title>
</head>
<body>
mock page anonymous
</body>
</html>`);
await new Promise((resolve) => {
setTimeout(resolve, 500);
});
const jsCoverage = await page.coverage.stopJSCoverage();
await page.close();
const coverageList = [... jsCoverage];
// v8
const report = await MCR(coverageOptions).add(coverageList);
console.log('anonymous coverage added', report.type);
await browser.close();
};
const generate = async () => {
console.log('generate anonymous coverage reports ...');
const coverageResults = await MCR(coverageOptions).generate();
console.log('anonymous coverage reportPath', EC.magenta(coverageResults.reportPath));
};
const main = async () => {
// clean cache first
await MCR(coverageOptions).cleanCache();
await test();
await generate();
};
main();