puppeteer/test/assert-coverage-test.js
2022-06-09 19:00:50 +02:00

39 lines
1.2 KiB
JavaScript

const { describe, it } = require('mocha');
const { getCoverageResults } = require('./coverage-utils.js');
const expect = require('expect');
const EXCLUDED_METHODS = new Set([
'Puppeteer.registerCustomQueryHandler',
'Puppeteer.unregisterCustomQueryHandler',
'Puppeteer.customQueryHandlerNames',
'Puppeteer.clearCustomQueryHandlers',
'PuppeteerNode.connect',
'PuppeteerNode.launch',
'PuppeteerNode.executablePath',
'PuppeteerNode.defaultArgs',
'PuppeteerNode.createBrowserFetcher',
]);
describe('API coverage test', () => {
it('calls every method', () => {
if (!process.env.COVERAGE) return;
const coverageMap = getCoverageResults();
const missingMethods = [];
for (const method of coverageMap.keys()) {
if (!coverageMap.get(method) && !EXCLUDED_METHODS.has(method))
missingMethods.push(method);
}
if (missingMethods.length) {
console.error(
'\nCoverage check failed: not all API methods called. See above output for list of missing methods.'
);
console.error(missingMethods.join('\n'));
}
// We know this will fail because we checked above
// but we need the actual test to fail.
expect(missingMethods.length).toEqual(0);
});
});