mirror of
https://github.com/tenrok/OverlayScrollbars.git
synced 2026-06-17 21:40:36 +03:00
full coverage
This commit is contained in:
@@ -4,8 +4,10 @@
|
|||||||
"exports": {
|
"exports": {
|
||||||
"./resolve": "./src/resolve.json",
|
"./resolve": "./src/resolve.json",
|
||||||
"./playwright": "./src/playwright.js",
|
"./playwright": "./src/playwright.js",
|
||||||
|
"./playwright.coverage": "./src/playwright.coverage.js",
|
||||||
"./jest": "./src/jest.js",
|
"./jest": "./src/jest.js",
|
||||||
"./babel": "./src/babel.js"
|
"./babel": "./src/babel.js",
|
||||||
|
"./full-coverage": "./src/full-coverage.js"
|
||||||
},
|
},
|
||||||
"version": "0.0.0"
|
"version": "0.0.0"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,4 @@
|
|||||||
|
module.exports = {
|
||||||
|
tmpCoverageDirectory: './.coverage/.nycFull',
|
||||||
|
coverageDirectory: './.coverage/full',
|
||||||
|
};
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
module.exports = {
|
||||||
|
tmpCoverageDirectory: './.coverage/.nycPlaywright',
|
||||||
|
coverageDirectory: './.coverage/playwright',
|
||||||
|
};
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
#!/usr/bin/env node
|
||||||
|
const fs = require('fs');
|
||||||
|
const { execSync } = require('child_process');
|
||||||
|
const { join, dirname, basename } = require('path');
|
||||||
|
const { coverageDirectory, tmpCoverageDirectory } = require('@local/config/full-coverage');
|
||||||
|
const { coverageDirectory: playwrightCoverage } = require('@local/config/playwright.coverage');
|
||||||
|
const { coverageDirectory: jestCoverage } = require('@local/config/jest');
|
||||||
|
|
||||||
|
const reportFileName = 'coverage-final.json';
|
||||||
|
|
||||||
|
const copyReportFile = (path) => {
|
||||||
|
if (fs.existsSync(path)) {
|
||||||
|
if (!fs.existsSync(tmpCoverageDirectory)) {
|
||||||
|
fs.mkdirSync(tmpCoverageDirectory);
|
||||||
|
}
|
||||||
|
fs.copyFileSync(
|
||||||
|
path,
|
||||||
|
join(tmpCoverageDirectory, `${basename(dirname(path))}_${Date.now()}.json`)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const generateFullCoverage = async () => {
|
||||||
|
copyReportFile(join(playwrightCoverage, reportFileName));
|
||||||
|
copyReportFile(join(jestCoverage, reportFileName));
|
||||||
|
|
||||||
|
const mergeDestination = join(tmpCoverageDirectory, `full_${Date.now()}.json`);
|
||||||
|
execSync(`nyc merge ${tmpCoverageDirectory} ${mergeDestination}`);
|
||||||
|
|
||||||
|
const files = fs.readdirSync(tmpCoverageDirectory);
|
||||||
|
files.forEach((file) => {
|
||||||
|
const filePath = join(tmpCoverageDirectory, file);
|
||||||
|
if (filePath !== mergeDestination) {
|
||||||
|
fs.rmSync(filePath);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
execSync(
|
||||||
|
`nyc report --reporter=lcov --reporter=clover --reporter=json --report-dir=${coverageDirectory} --temp-dir=${tmpCoverageDirectory}`
|
||||||
|
/* { stdio: 'inherit' } */
|
||||||
|
);
|
||||||
|
fs.rmSync(tmpCoverageDirectory, { recursive: true });
|
||||||
|
};
|
||||||
|
|
||||||
|
(async () => {
|
||||||
|
try {
|
||||||
|
await generateFullCoverage();
|
||||||
|
} catch (e) {
|
||||||
|
console.error(`Full coverage couldn't be generated.`, e);
|
||||||
|
}
|
||||||
|
})();
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"private": true,
|
||||||
|
"name": "@local/full-coverage",
|
||||||
|
"bin": {
|
||||||
|
"full-coverage": "./bin/generateFullCoverage.js"
|
||||||
|
},
|
||||||
|
"version": "0.0.0"
|
||||||
|
}
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
#!/usr/bin/env node
|
||||||
|
const fs = require('fs');
|
||||||
|
const { execSync } = require('child_process');
|
||||||
|
const { join } = require('path');
|
||||||
|
const { coverageDirectory, tmpCoverageDirectory } = require('@local/config/playwright.coverage');
|
||||||
|
|
||||||
|
const mergeCoverage = async () => {
|
||||||
|
if (fs.existsSync(tmpCoverageDirectory)) {
|
||||||
|
const mergeDestination = join(tmpCoverageDirectory, `merged_${Date.now()}.json`);
|
||||||
|
execSync(`nyc merge ${tmpCoverageDirectory} ${mergeDestination}`);
|
||||||
|
const files = fs.readdirSync(tmpCoverageDirectory);
|
||||||
|
files.forEach((file) => {
|
||||||
|
const filePath = join(tmpCoverageDirectory, file);
|
||||||
|
if (filePath !== mergeDestination) {
|
||||||
|
fs.rmSync(filePath);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
execSync(
|
||||||
|
`nyc report --reporter=lcov --reporter=text --reporter=clover --reporter=json --report-dir=${coverageDirectory} --temp-dir=${tmpCoverageDirectory}`,
|
||||||
|
{ stdio: 'inherit' }
|
||||||
|
);
|
||||||
|
fs.rmSync(tmpCoverageDirectory, { recursive: true });
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
(async () => {
|
||||||
|
try {
|
||||||
|
await mergeCoverage();
|
||||||
|
} catch (e) {
|
||||||
|
console.error(`Playwright coverage couldn't be merged.`, e);
|
||||||
|
}
|
||||||
|
})();
|
||||||
@@ -2,6 +2,9 @@
|
|||||||
"private": true,
|
"private": true,
|
||||||
"name": "@local/playwright-tooling",
|
"name": "@local/playwright-tooling",
|
||||||
"main": "./src/index.js",
|
"main": "./src/index.js",
|
||||||
|
"bin": {
|
||||||
|
"playwright-merge-coverage": "./bin/mergeCoverage.js"
|
||||||
|
},
|
||||||
"types": "index.d.ts",
|
"types": "index.d.ts",
|
||||||
"version": "0.0.0"
|
"version": "0.0.0"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,22 @@
|
|||||||
|
const fs = require('fs');
|
||||||
|
const { basename, dirname, join } = require('path');
|
||||||
|
const v8toIstanbul = require('v8-to-istanbul');
|
||||||
|
const { tmpCoverageDirectory } = require('@local/config/playwright.coverage');
|
||||||
|
|
||||||
|
module.exports = async (coverageOutputDir, sourceDir, coverage, testfile) => {
|
||||||
|
// eslint-disable-next-line no-restricted-syntax
|
||||||
|
for (const entry of coverage) {
|
||||||
|
process.chdir(sourceDir);
|
||||||
|
const converter = v8toIstanbul('', 0, { source: entry.source });
|
||||||
|
// eslint-disable-next-line no-await-in-loop
|
||||||
|
await converter.load();
|
||||||
|
converter.applyCoverage(entry.functions);
|
||||||
|
|
||||||
|
const coveragePath = join(
|
||||||
|
coverageOutputDir,
|
||||||
|
`${tmpCoverageDirectory}/${basename(dirname(testfile))}_${Date.now()}.json`
|
||||||
|
);
|
||||||
|
fs.mkdirSync(dirname(coveragePath), { recursive: true });
|
||||||
|
fs.writeFileSync(coveragePath, JSON.stringify(converter.toIstanbul()));
|
||||||
|
}
|
||||||
|
};
|
||||||
@@ -1,43 +0,0 @@
|
|||||||
const fs = require('fs');
|
|
||||||
const { execSync } = require("child_process");
|
|
||||||
const { basename, dirname, join } = require('path');
|
|
||||||
const v8toIstanbul = require('v8-to-istanbul');
|
|
||||||
|
|
||||||
const tmpCoveragePath = './.coverage/.nycPlaywright';
|
|
||||||
const reportDir = './.coverage/playwright';
|
|
||||||
|
|
||||||
module.exports = {
|
|
||||||
collectCoverage: async (coverageOutputDir, sourceDir, coverage, testfile) => {
|
|
||||||
// eslint-disable-next-line no-restricted-syntax
|
|
||||||
for (const entry of coverage) {
|
|
||||||
process.chdir(sourceDir);
|
|
||||||
const converter = v8toIstanbul('', 0, { source: entry.source });
|
|
||||||
// eslint-disable-next-line no-await-in-loop
|
|
||||||
await converter.load();
|
|
||||||
converter.applyCoverage(entry.functions);
|
|
||||||
|
|
||||||
const coveragePath = join(
|
|
||||||
coverageOutputDir,
|
|
||||||
`${tmpCoveragePath}/${basename(dirname(testfile))}_${Date.now()}.json`
|
|
||||||
);
|
|
||||||
fs.mkdirSync(dirname(coveragePath), { recursive: true });
|
|
||||||
fs.writeFileSync(coveragePath, JSON.stringify(converter.toIstanbul()));
|
|
||||||
}
|
|
||||||
},
|
|
||||||
mergeCoverage: async () => {
|
|
||||||
if(fs.existsSync(tmpCoveragePath)) {
|
|
||||||
const mergeDestination = join(tmpCoveragePath, `merged_${Date.now()}.json`)
|
|
||||||
execSync(`nyc merge ${tmpCoveragePath} ${mergeDestination}`);
|
|
||||||
const files = fs.readdirSync(tmpCoveragePath);
|
|
||||||
files.forEach((file) => {
|
|
||||||
const filePath = join(tmpCoveragePath, file);
|
|
||||||
if (filePath !== mergeDestination) {
|
|
||||||
fs.rmSync(filePath);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
execSync(`nyc report --reporter=lcov --reporter=text --reporter=clover --reporter=json --report-dir=${reportDir} --temp-dir=${tmpCoveragePath}`, {stdio:'inherit' });
|
|
||||||
fs.rmSync(tmpCoveragePath, { recursive: true });
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -2,7 +2,7 @@ const { dirname } = require('path');
|
|||||||
const { rollup, watch: rollupWatch } = require('rollup');
|
const { rollup, watch: rollupWatch } = require('rollup');
|
||||||
const { test } = require('@playwright/test');
|
const { test } = require('@playwright/test');
|
||||||
const createPlaywrightRollupConfig = require('@local/rollup/playwright');
|
const createPlaywrightRollupConfig = require('@local/rollup/playwright');
|
||||||
const { collectCoverage } = require('./coverage');
|
const collectCoverage = require('./collectCoverage');
|
||||||
|
|
||||||
const createRollupBundle = async (testDir, watch = false) => {
|
const createRollupBundle = async (testDir, watch = false) => {
|
||||||
let server;
|
let server;
|
||||||
|
|||||||
Generated
+7355
-1868
File diff suppressed because it is too large
Load Diff
+4
-8
@@ -41,8 +41,8 @@
|
|||||||
"eslint-plugin-react": "^7.30.0",
|
"eslint-plugin-react": "^7.30.0",
|
||||||
"eslint-plugin-react-hooks": "^4.6.0",
|
"eslint-plugin-react-hooks": "^4.6.0",
|
||||||
"glob": "^7.1.6",
|
"glob": "^7.1.6",
|
||||||
"jest": "^28.1.1",
|
"jest": "^28.1.3",
|
||||||
"jest-environment-jsdom": "^28.1.1",
|
"jest-environment-jsdom": "^28.1.3",
|
||||||
"node-sass": "^7.0.1",
|
"node-sass": "^7.0.1",
|
||||||
"nyc": "^15.1.0",
|
"nyc": "^15.1.0",
|
||||||
"playwright": "^1.22.2",
|
"playwright": "^1.22.2",
|
||||||
@@ -70,19 +70,15 @@
|
|||||||
"@local/tsconfig": "file:./local/tsconfig",
|
"@local/tsconfig": "file:./local/tsconfig",
|
||||||
"@local/config": "file:./local/config",
|
"@local/config": "file:./local/config",
|
||||||
"@local/rollup": "file:./local/rollup",
|
"@local/rollup": "file:./local/rollup",
|
||||||
|
"@local/full-coverage": "file:./local/full-coverage",
|
||||||
"@local/playwright-tooling": "file:./local/playwright-tooling",
|
"@local/playwright-tooling": "file:./local/playwright-tooling",
|
||||||
"@local/browser-testing": "file:./local/browser-testing"
|
"@local/browser-testing": "file:./local/browser-testing"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "yarn workspaces run test",
|
"test": "yarn workspaces run test",
|
||||||
"test:jsdom": "yarn workspaces run test:jsdom",
|
"test:jsdom": "yarn workspaces run test:jsdom",
|
||||||
"test:browser": "yarn workspaces run test:browser",
|
|
||||||
"test:browser:quick": "yarn workspaces run test:browser:quick",
|
|
||||||
"test:browser-dev": "yarn workspaces run test:browser-dev",
|
|
||||||
"test:playwright": "yarn workspaces run test:playwright",
|
"test:playwright": "yarn workspaces run test:playwright",
|
||||||
"build": "yarn workspaces run build",
|
"build": "yarn workspaces run build",
|
||||||
"lint": "npx eslint --fix .",
|
"lint": "npx eslint --fix ."
|
||||||
"aa": "echo hi",
|
|
||||||
"root:some": "workspace-root aa"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,14 +9,10 @@
|
|||||||
],
|
],
|
||||||
"types": "types/index.d.ts",
|
"types": "types/index.d.ts",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "jest --coverage --runInBand --detectOpenHandles",
|
|
||||||
"test:jsdom": "jest --coverage --runInBand --detectOpenHandles --testPathPattern",
|
"test:jsdom": "jest --coverage --runInBand --detectOpenHandles --testPathPattern",
|
||||||
"test:browser": "jest --runInBand --detectOpenHandles --selectProjects browser --testPathPattern",
|
"posttest:jsdom": "full-coverage",
|
||||||
"test:browser:quick": "jest --runInBand --detectOpenHandles --selectProjects browser --testPathIgnorePatterns=\"/node_modules/|/structureLifecycle/\"",
|
|
||||||
"test:browser-dev": "jest --runInBand --detectOpenHandles --selectProjects browser-dev --testPathPattern",
|
|
||||||
"build": "rollup -c",
|
"build": "rollup -c",
|
||||||
"test:playwright": "playwright test",
|
"test:playwright": "playwright test",
|
||||||
"posttest:playwright": "node playwright.coverage.js",
|
"posttest:playwright": "playwright-merge-coverage && full-coverage"
|
||||||
"root:tt": "node workspace.root.js root:some"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user