mirror of
https://github.com/microsoft/playwright.git
synced 2025-06-26 21:40:17 +00:00
69 lines
1.8 KiB
JavaScript
69 lines
1.8 KiB
JavaScript
const path = require('path');
|
|
const {TestRunner} = require('../utils/testrunner/');
|
|
const utils = require('./utils');
|
|
const {addTests} = require('./playwright.spec.js');
|
|
const firefoxTests = testsForProduct('Firefox');
|
|
const chromiumTests = testsForProduct('Chromium');
|
|
const webkitTests = testsForProduct('WebKit');
|
|
const goalSuite = intersectSets(firefoxTests.all, chromiumTests.all, webkitTests.all);
|
|
const skippedSuite = intersectSets(goalSuite, joinSets(firefoxTests.skipped, chromiumTests.skipped, webkitTests.skipped));
|
|
|
|
module.exports = {
|
|
firefox: {
|
|
total: firefoxTests.all.size,
|
|
skipped: firefoxTests.skipped.size,
|
|
},
|
|
chromium: {
|
|
total: chromiumTests.all.size,
|
|
skipped: chromiumTests.skipped.size,
|
|
},
|
|
webkit: {
|
|
total: webkitTests.all.size,
|
|
skipped: webkitTests.skipped.size,
|
|
},
|
|
all: {
|
|
total: goalSuite.size,
|
|
skipped: skippedSuite.size,
|
|
}
|
|
};
|
|
|
|
/**
|
|
* @param {string} product
|
|
*/
|
|
function testsForProduct(product) {
|
|
const testRunner = new TestRunner();
|
|
addTests({
|
|
product,
|
|
playwrightPath: path.join(utils.projectRoot(), `${product.toLowerCase()}.js`),
|
|
testRunner
|
|
});
|
|
return {
|
|
all: new Set(testRunner.tests().map(test => test.fullName)),
|
|
skipped: new Set(testRunner.tests().filter(test => test.declaredMode === 'skip').map(test => test.fullName))
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @param {...Set} sets
|
|
*/
|
|
function intersectSets(...sets) {
|
|
if (!sets.length)
|
|
return new Set();
|
|
const intersect = new Set();
|
|
const [first, ...rest] = sets;
|
|
outer: for (const item of first) {
|
|
for (const set of rest)
|
|
if (!set.has(item))
|
|
continue outer;
|
|
intersect.add(item);
|
|
}
|
|
return intersect;
|
|
}
|
|
|
|
function joinSets(...sets) {
|
|
const joined = new Set();
|
|
for (const set of sets)
|
|
for (const item of set)
|
|
joined.add(item);
|
|
return joined;
|
|
} |