From d18d49be3c2b4d83cfb706635b7122c75a1f1645 Mon Sep 17 00:00:00 2001 From: Gleb Bahmutov Date: Fri, 17 Apr 2020 15:59:03 -0400 Subject: [PATCH 1/6] chore: refactor --- task.js | 33 +++++++++++++++++++++++++++------ 1 file changed, 27 insertions(+), 6 deletions(-) diff --git a/task.js b/task.js index c48f5e65..4f954316 100644 --- a/task.js +++ b/task.js @@ -38,11 +38,9 @@ function saveCoverage(coverage) { } /** - * Looks at all coverage objects in the given JSON coverage file - * and if the file is relative, and exists, changes its path to - * be absolute. + * A small debug utility to inspect paths saved in NYC output JSON file */ -function resolvePaths(nycFilename) { +function showNycInfo(nycFilename) { const nycCoverage = JSON.parse(readFileSync(nycFilename, 'utf8')) const coverageKeys = Object.keys(nycCoverage) @@ -52,10 +50,10 @@ function resolvePaths(nycFilename) { } debug('NYC file %s has %d key(s)', nycFilename, coverageKeys.length) - let changed const maxPrintKeys = 3 + const showKeys = coverageKeys.slice(0, maxPrintKeys) - Object.keys(nycCoverage).forEach((key, k) => { + showKeys.forEach((key, k) => { const coverage = nycCoverage[key] // printing a few found keys and file paths from the coverage file @@ -63,6 +61,28 @@ function resolvePaths(nycFilename) { if (k < maxPrintKeys) { debug('%d key %s file path %s', k + 1, key, coverage.path) } + }) +} + +/** + * Looks at all coverage objects in the given JSON coverage file + * and if the file is relative, and exists, changes its path to + * be absolute. + */ +function resolvePaths(nycFilename) { + const nycCoverage = JSON.parse(readFileSync(nycFilename, 'utf8')) + + const coverageKeys = Object.keys(nycCoverage) + if (!coverageKeys.length) { + console.error('⚠️ file %s has no coverage information', nycFilename) + return + } + debug('NYC file %s has %d key(s)', nycFilename, coverageKeys.length) + + let changed + + coverageKeys.forEach((key, k) => { + const coverage = nycCoverage[key] if (coverage.path && !isAbsolute(coverage.path)) { if (existsSync(coverage.path)) { @@ -143,6 +163,7 @@ const tasks = { return null } + showNycInfo(nycFilename) resolvePaths(nycFilename) if (customNycReportScript) { From 7923697dd97384d70c7b4aef26585c8edeca1098 Mon Sep 17 00:00:00 2001 From: Gleb Bahmutov Date: Fri, 17 Apr 2020 16:56:02 -0400 Subject: [PATCH 2/6] adding detecting folder that matches current folder root --- task.js | 139 +++++++++++++++++++++++++++++++++++++++++++++++-------- utils.js | 30 +++++++++++- 2 files changed, 148 insertions(+), 21 deletions(-) diff --git a/task.js b/task.js index 4f954316..3e4d5a04 100644 --- a/task.js +++ b/task.js @@ -3,8 +3,8 @@ const istanbul = require('istanbul-lib-coverage') const { join, resolve, isAbsolute } = require('path') const { existsSync, mkdirSync, readFileSync, writeFileSync } = require('fs') const execa = require('execa') -const fs = require('fs') -const { fixSourcePathes } = require('./utils') +const path = require('path') +const { fixSourcePathes, showNycInfo } = require('./utils') const NYC = require('nyc') const debug = require('debug')('code-coverage') @@ -20,8 +20,8 @@ const nycFilename = join(coverageFolder, 'out.json') // potentially there might be "nyc" options in other configuration files // it allows, but for now ignore those options const pkgFilename = join(processWorkingDirectory, 'package.json') -const pkg = fs.existsSync(pkgFilename) - ? JSON.parse(fs.readFileSync(pkgFilename, 'utf8')) +const pkg = existsSync(pkgFilename) + ? JSON.parse(readFileSync(pkgFilename, 'utf8')) : {} const nycOptions = pkg.nyc || {} const scripts = pkg.scripts || {} @@ -38,9 +38,94 @@ function saveCoverage(coverage) { } /** - * A small debug utility to inspect paths saved in NYC output JSON file + * @param {string[]} filepaths + * @returns {string | undefined} common prefix that corresponds to current folder */ -function showNycInfo(nycFilename) { +function findCommonRoot(filepaths) { + if (!filepaths.length) { + debug('cannot find common root without any files') + return + } + + // assuming / as file separator + const splitParts = filepaths.map(name => name.split('/')) + const lengths = splitParts.map(arr => arr.length) + const shortestLength = Math.min.apply(null, lengths) + debug('shorted file path has %d parts', shortestLength) + + const cwd = process.cwd() + let commonPrefix = [] + let foundCurrentFolder + + for (let k = 0; k < shortestLength; k += 1) { + const part = splitParts[0][k] + const prefix = commonPrefix.concat(part).join('/') + debug('testing prefix %o', prefix) + const allFilesStart = filepaths.every(name => name.startsWith(prefix)) + if (!allFilesStart) { + debug('stopped at non-common prefix %s', prefix) + break + } + + commonPrefix.push(part) + + const removedPrefixNames = filepaths.map(filepath => + filepath.slice(prefix.length) + ) + debug('removedPrefix %o', removedPrefixNames) + const foundAllPaths = removedPrefixNames.every(filepath => + existsSync(path.join(cwd, filepath)) + ) + debug('all files found at %s? %o', prefix, foundAllPaths) + if (foundAllPaths) { + debug('found prefix that matches current folder: %s', prefix) + foundCurrentFolder = prefix + break + } + } + + return foundCurrentFolder +} + +function tryFindingLocalFiles(nycFilename) { + const nycCoverage = JSON.parse(readFileSync(nycFilename, 'utf8')) + const coverageKeys = Object.keys(nycCoverage) + const filenames = coverageKeys.map(key => nycCoverage[key].path) + const commonFolder = findCommonRoot(filenames) + if (!commonFolder) { + debug('could not find common folder %s', commonFolder) + return + } + const cwd = process.cwd() + debug( + 'found common folder %s that matches current working directory %s', + commonFolder, + cwd + ) + const length = commonFolder.length + let changed + + coverageKeys.forEach(key => { + const from = nycCoverage[key].path + if (from.startsWith(commonFolder)) { + const to = path.join(cwd, from.slice(length)) + nycCoverage[key].path = to + debug('replaced %s -> %s', from, to) + changed = true + } + }) + + if (changed) { + debug('saving updated file %s', nycFilename) + writeFileSync( + nycFilename, + JSON.stringify(nycCoverage, null, 2) + '\n', + 'utf8' + ) + } +} + +function checkAllPathsNotFound(nycFilename) { const nycCoverage = JSON.parse(readFileSync(nycFilename, 'utf8')) const coverageKeys = Object.keys(nycCoverage) @@ -48,20 +133,18 @@ function showNycInfo(nycFilename) { console.error('⚠️ file %s has no coverage information', nycFilename) return } - debug('NYC file %s has %d key(s)', nycFilename, coverageKeys.length) - const maxPrintKeys = 3 - const showKeys = coverageKeys.slice(0, maxPrintKeys) - - showKeys.forEach((key, k) => { + const allFilesAreMissing = coverageKeys.every((key, k) => { const coverage = nycCoverage[key] - - // printing a few found keys and file paths from the coverage file - // will make debugging any problems much much easier - if (k < maxPrintKeys) { - debug('%d key %s file path %s', k + 1, key, coverage.path) - } + return !existsSync(coverage.path) }) + + debug( + 'in file %s all files are not found? %o', + nycFilename, + allFilesAreMissing + ) + return allFilesAreMissing } /** @@ -69,7 +152,7 @@ function showNycInfo(nycFilename) { * and if the file is relative, and exists, changes its path to * be absolute. */ -function resolvePaths(nycFilename) { +function resolveRelativePaths(nycFilename) { const nycCoverage = JSON.parse(readFileSync(nycFilename, 'utf8')) const coverageKeys = Object.keys(nycCoverage) @@ -84,12 +167,23 @@ function resolvePaths(nycFilename) { coverageKeys.forEach((key, k) => { const coverage = nycCoverage[key] - if (coverage.path && !isAbsolute(coverage.path)) { + if (!coverage.path) { + debug('key %s does not have path', key) + return + } + + if (!isAbsolute(coverage.path)) { if (existsSync(coverage.path)) { debug('resolving path %s', coverage.path) coverage.path = resolve(coverage.path) changed = true } + return + } + + // path is absolute, let's check if it exists + if (!existsSync(coverage.path)) { + debug('⚠️ cannot find file %s with hash %s', coverage.path, coverage.hash) } }) @@ -164,7 +258,12 @@ const tasks = { } showNycInfo(nycFilename) - resolvePaths(nycFilename) + const allSourceFilesMissing = checkAllPathsNotFound(nycFilename) + if (allSourceFilesMissing) { + tryFindingLocalFiles(nycFilename) + } + + resolveRelativePaths(nycFilename) if (customNycReportScript) { debug( diff --git a/utils.js b/utils.js index 75a43f84..e3a0ed25 100644 --- a/utils.js +++ b/utils.js @@ -58,7 +58,35 @@ function fixSourcePathes(coverage) { }) } +/** + * A small debug utility to inspect paths saved in NYC output JSON file + */ +function showNycInfo(nycFilename) { + const nycCoverage = JSON.parse(readFileSync(nycFilename, 'utf8')) + + const coverageKeys = Object.keys(nycCoverage) + if (!coverageKeys.length) { + console.error('⚠️ file %s has no coverage information', nycFilename) + return + } + debug('NYC file %s has %d key(s)', nycFilename, coverageKeys.length) + + const maxPrintKeys = 3 + const showKeys = coverageKeys.slice(0, maxPrintKeys) + + showKeys.forEach((key, k) => { + const coverage = nycCoverage[key] + + // printing a few found keys and file paths from the coverage file + // will make debugging any problems much much easier + if (k < maxPrintKeys) { + debug('%d key %s file path %s', k + 1, key, coverage.path) + } + }) +} + module.exports = { fixSourcePathes, - filterSpecsFromCoverage + filterSpecsFromCoverage, + showNycInfo } From 98539f8a17810bb4127f938e4392b4cd30f9e0fc Mon Sep 17 00:00:00 2001 From: Gleb Bahmutov Date: Fri, 17 Apr 2020 17:01:33 -0400 Subject: [PATCH 3/6] move utility functions --- task.js | 170 +++---------------------------------------------------- utils.js | 170 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 177 insertions(+), 163 deletions(-) diff --git a/task.js b/task.js index 3e4d5a04..6859d63c 100644 --- a/task.js +++ b/task.js @@ -1,10 +1,16 @@ // @ts-check const istanbul = require('istanbul-lib-coverage') -const { join, resolve, isAbsolute } = require('path') +const { join, resolve } = require('path') const { existsSync, mkdirSync, readFileSync, writeFileSync } = require('fs') const execa = require('execa') const path = require('path') -const { fixSourcePathes, showNycInfo } = require('./utils') +const { + fixSourcePathes, + showNycInfo, + resolveRelativePaths, + checkAllPathsNotFound, + tryFindingLocalFiles +} = require('./utils') const NYC = require('nyc') const debug = require('debug')('code-coverage') @@ -37,166 +43,6 @@ function saveCoverage(coverage) { writeFileSync(nycFilename, JSON.stringify(coverage, null, 2)) } -/** - * @param {string[]} filepaths - * @returns {string | undefined} common prefix that corresponds to current folder - */ -function findCommonRoot(filepaths) { - if (!filepaths.length) { - debug('cannot find common root without any files') - return - } - - // assuming / as file separator - const splitParts = filepaths.map(name => name.split('/')) - const lengths = splitParts.map(arr => arr.length) - const shortestLength = Math.min.apply(null, lengths) - debug('shorted file path has %d parts', shortestLength) - - const cwd = process.cwd() - let commonPrefix = [] - let foundCurrentFolder - - for (let k = 0; k < shortestLength; k += 1) { - const part = splitParts[0][k] - const prefix = commonPrefix.concat(part).join('/') - debug('testing prefix %o', prefix) - const allFilesStart = filepaths.every(name => name.startsWith(prefix)) - if (!allFilesStart) { - debug('stopped at non-common prefix %s', prefix) - break - } - - commonPrefix.push(part) - - const removedPrefixNames = filepaths.map(filepath => - filepath.slice(prefix.length) - ) - debug('removedPrefix %o', removedPrefixNames) - const foundAllPaths = removedPrefixNames.every(filepath => - existsSync(path.join(cwd, filepath)) - ) - debug('all files found at %s? %o', prefix, foundAllPaths) - if (foundAllPaths) { - debug('found prefix that matches current folder: %s', prefix) - foundCurrentFolder = prefix - break - } - } - - return foundCurrentFolder -} - -function tryFindingLocalFiles(nycFilename) { - const nycCoverage = JSON.parse(readFileSync(nycFilename, 'utf8')) - const coverageKeys = Object.keys(nycCoverage) - const filenames = coverageKeys.map(key => nycCoverage[key].path) - const commonFolder = findCommonRoot(filenames) - if (!commonFolder) { - debug('could not find common folder %s', commonFolder) - return - } - const cwd = process.cwd() - debug( - 'found common folder %s that matches current working directory %s', - commonFolder, - cwd - ) - const length = commonFolder.length - let changed - - coverageKeys.forEach(key => { - const from = nycCoverage[key].path - if (from.startsWith(commonFolder)) { - const to = path.join(cwd, from.slice(length)) - nycCoverage[key].path = to - debug('replaced %s -> %s', from, to) - changed = true - } - }) - - if (changed) { - debug('saving updated file %s', nycFilename) - writeFileSync( - nycFilename, - JSON.stringify(nycCoverage, null, 2) + '\n', - 'utf8' - ) - } -} - -function checkAllPathsNotFound(nycFilename) { - const nycCoverage = JSON.parse(readFileSync(nycFilename, 'utf8')) - - const coverageKeys = Object.keys(nycCoverage) - if (!coverageKeys.length) { - console.error('⚠️ file %s has no coverage information', nycFilename) - return - } - - const allFilesAreMissing = coverageKeys.every((key, k) => { - const coverage = nycCoverage[key] - return !existsSync(coverage.path) - }) - - debug( - 'in file %s all files are not found? %o', - nycFilename, - allFilesAreMissing - ) - return allFilesAreMissing -} - -/** - * Looks at all coverage objects in the given JSON coverage file - * and if the file is relative, and exists, changes its path to - * be absolute. - */ -function resolveRelativePaths(nycFilename) { - const nycCoverage = JSON.parse(readFileSync(nycFilename, 'utf8')) - - const coverageKeys = Object.keys(nycCoverage) - if (!coverageKeys.length) { - console.error('⚠️ file %s has no coverage information', nycFilename) - return - } - debug('NYC file %s has %d key(s)', nycFilename, coverageKeys.length) - - let changed - - coverageKeys.forEach((key, k) => { - const coverage = nycCoverage[key] - - if (!coverage.path) { - debug('key %s does not have path', key) - return - } - - if (!isAbsolute(coverage.path)) { - if (existsSync(coverage.path)) { - debug('resolving path %s', coverage.path) - coverage.path = resolve(coverage.path) - changed = true - } - return - } - - // path is absolute, let's check if it exists - if (!existsSync(coverage.path)) { - debug('⚠️ cannot find file %s with hash %s', coverage.path, coverage.hash) - } - }) - - if (changed) { - debug('saving updated file %s', nycFilename) - writeFileSync( - nycFilename, - JSON.stringify(nycCoverage, null, 2) + '\n', - 'utf8' - ) - } -} - const tasks = { /** * Clears accumulated code coverage information. diff --git a/utils.js b/utils.js index e3a0ed25..be17e815 100644 --- a/utils.js +++ b/utils.js @@ -1,4 +1,30 @@ +// @ts-check /// +const { readFileSync, writeFileSync, existsSync } = require('fs') +const { isAbsolute, resolve, join } = require('path') +const debug = require('debug')('code-coverage') + +function checkAllPathsNotFound(nycFilename) { + const nycCoverage = JSON.parse(readFileSync(nycFilename, 'utf8')) + + const coverageKeys = Object.keys(nycCoverage) + if (!coverageKeys.length) { + console.error('⚠️ file %s has no coverage information', nycFilename) + return + } + + const allFilesAreMissing = coverageKeys.every((key, k) => { + const coverage = nycCoverage[key] + return !existsSync(coverage.path) + }) + + debug( + 'in file %s all files are not found? %o', + nycFilename, + allFilesAreMissing + ) + return allFilesAreMissing +} /** * remove coverage for the spec files themselves, @@ -6,6 +32,7 @@ */ const filterSpecsFromCoverage = (totalCoverage, config = Cypress.config) => { const integrationFolder = config('integrationFolder') + // @ts-ignore const testFilePattern = config('testFiles') // test files chould be: @@ -85,8 +112,149 @@ function showNycInfo(nycFilename) { }) } +/** + * Looks at all coverage objects in the given JSON coverage file + * and if the file is relative, and exists, changes its path to + * be absolute. + */ +function resolveRelativePaths(nycFilename) { + const nycCoverage = JSON.parse(readFileSync(nycFilename, 'utf8')) + + const coverageKeys = Object.keys(nycCoverage) + if (!coverageKeys.length) { + console.error('⚠️ file %s has no coverage information', nycFilename) + return + } + debug('NYC file %s has %d key(s)', nycFilename, coverageKeys.length) + + let changed + + coverageKeys.forEach((key, k) => { + const coverage = nycCoverage[key] + + if (!coverage.path) { + debug('key %s does not have path', key) + return + } + + if (!isAbsolute(coverage.path)) { + if (existsSync(coverage.path)) { + debug('resolving path %s', coverage.path) + coverage.path = resolve(coverage.path) + changed = true + } + return + } + + // path is absolute, let's check if it exists + if (!existsSync(coverage.path)) { + debug('⚠️ cannot find file %s with hash %s', coverage.path, coverage.hash) + } + }) + + if (changed) { + debug('saving updated file %s', nycFilename) + writeFileSync( + nycFilename, + JSON.stringify(nycCoverage, null, 2) + '\n', + 'utf8' + ) + } +} + +/** + * @param {string[]} filepaths + * @returns {string | undefined} common prefix that corresponds to current folder + */ +function findCommonRoot(filepaths) { + if (!filepaths.length) { + debug('cannot find common root without any files') + return + } + + // assuming / as file separator + const splitParts = filepaths.map(name => name.split('/')) + const lengths = splitParts.map(arr => arr.length) + const shortestLength = Math.min.apply(null, lengths) + debug('shorted file path has %d parts', shortestLength) + + const cwd = process.cwd() + let commonPrefix = [] + let foundCurrentFolder + + for (let k = 0; k < shortestLength; k += 1) { + const part = splitParts[0][k] + const prefix = commonPrefix.concat(part).join('/') + debug('testing prefix %o', prefix) + const allFilesStart = filepaths.every(name => name.startsWith(prefix)) + if (!allFilesStart) { + debug('stopped at non-common prefix %s', prefix) + break + } + + commonPrefix.push(part) + + const removedPrefixNames = filepaths.map(filepath => + filepath.slice(prefix.length) + ) + debug('removedPrefix %o', removedPrefixNames) + const foundAllPaths = removedPrefixNames.every(filepath => + existsSync(join(cwd, filepath)) + ) + debug('all files found at %s? %o', prefix, foundAllPaths) + if (foundAllPaths) { + debug('found prefix that matches current folder: %s', prefix) + foundCurrentFolder = prefix + break + } + } + + return foundCurrentFolder +} + +function tryFindingLocalFiles(nycFilename) { + const nycCoverage = JSON.parse(readFileSync(nycFilename, 'utf8')) + const coverageKeys = Object.keys(nycCoverage) + const filenames = coverageKeys.map(key => nycCoverage[key].path) + const commonFolder = findCommonRoot(filenames) + if (!commonFolder) { + debug('could not find common folder %s', commonFolder) + return + } + const cwd = process.cwd() + debug( + 'found common folder %s that matches current working directory %s', + commonFolder, + cwd + ) + const length = commonFolder.length + let changed + + coverageKeys.forEach(key => { + const from = nycCoverage[key].path + if (from.startsWith(commonFolder)) { + const to = join(cwd, from.slice(length)) + nycCoverage[key].path = to + debug('replaced %s -> %s', from, to) + changed = true + } + }) + + if (changed) { + debug('saving updated file %s', nycFilename) + writeFileSync( + nycFilename, + JSON.stringify(nycCoverage, null, 2) + '\n', + 'utf8' + ) + } +} + module.exports = { fixSourcePathes, filterSpecsFromCoverage, - showNycInfo + showNycInfo, + resolveRelativePaths, + checkAllPathsNotFound, + tryFindingLocalFiles } From 7c37d8a9ed03f79872a18f26be2f62ba9b297246 Mon Sep 17 00:00:00 2001 From: Gleb Bahmutov Date: Fri, 17 Apr 2020 17:41:47 -0400 Subject: [PATCH 4/6] feat: find matching folder example --- examples/docker-paths/README.md | 38 ++++++++++++ examples/docker-paths/app/index.html | 17 +++++ examples/docker-paths/app/main.js | 3 + examples/docker-paths/app/second.js | 7 +++ examples/docker-paths/cypress.json | 5 ++ .../docker-paths/cypress/integration/spec.js | 11 ++++ examples/docker-paths/dist/index.html | 17 +++++ examples/docker-paths/dist/main.js | 58 ++++++++++++++++++ examples/docker-paths/dist/second.js | 48 +++++++++++++++ examples/docker-paths/images/file.png | Bin 0 -> 70964 bytes examples/docker-paths/images/files.png | Bin 0 -> 88215 bytes examples/docker-paths/package.json | 14 +++++ task.js | 1 - 13 files changed, 218 insertions(+), 1 deletion(-) create mode 100644 examples/docker-paths/README.md create mode 100644 examples/docker-paths/app/index.html create mode 100644 examples/docker-paths/app/main.js create mode 100644 examples/docker-paths/app/second.js create mode 100644 examples/docker-paths/cypress.json create mode 100644 examples/docker-paths/cypress/integration/spec.js create mode 100644 examples/docker-paths/dist/index.html create mode 100644 examples/docker-paths/dist/main.js create mode 100644 examples/docker-paths/dist/second.js create mode 100644 examples/docker-paths/images/file.png create mode 100644 examples/docker-paths/images/files.png create mode 100644 examples/docker-paths/package.json diff --git a/examples/docker-paths/README.md b/examples/docker-paths/README.md new file mode 100644 index 00000000..0e8c20d1 --- /dev/null +++ b/examples/docker-paths/README.md @@ -0,0 +1,38 @@ +# example-docker-paths + +In this example, the source files are "instrumented" as if they were instrumented inside a Docker container. Still, Cypress code coverage plugin should find the matching current folder where same files exist and update `.nyc_output/out.json` file before generating reports. + +Source files from `app` folder were instrumented into `dist` folder with command + +```shell +$ npx nyc instrument app dist +``` + +Then the `index.html` file was copied into `dist` folder. + +Then the source paths in [dist/main.js](dist/main.js) and [dist/second.js](dist/second.js) were changed to non-existent prefix folder `/var/www/test/site`. + +When Cypress runs, the `.nyc_output/out.json` is updated, so the path is valid local path like: + +``` +{ + "/var/www/test/site/app/main.js": { + "path": "/Users/gleb/git/code-coverage/examples/docker-paths/app/main.js", + "statementMap": { + ... +``` + +And the report has valid HTML with sources + +![All files](images/files.png) + +![Single file](images/file.png) + +**Note:** remember to remove existing `.nyc_output` folder if running Cypress in non-interactive mode `rm -rf .nyc_output/`. + +When running with [debug logs](https://github.com/cypress-io/code-coverage#debugging) you should see messages: + +``` +found common folder /var/www/test/site that matches +current working directory /Users/gleb/git/code-coverage/examples/docker-paths +``` diff --git a/examples/docker-paths/app/index.html b/examples/docker-paths/app/index.html new file mode 100644 index 00000000..993f0c18 --- /dev/null +++ b/examples/docker-paths/app/index.html @@ -0,0 +1,17 @@ + + Page body + + + + diff --git a/examples/docker-paths/app/main.js b/examples/docker-paths/app/main.js new file mode 100644 index 00000000..5dd69be2 --- /dev/null +++ b/examples/docker-paths/app/main.js @@ -0,0 +1,3 @@ +window.add = (a, b) => a + b + +window.sub = (a, b) => a - b diff --git a/examples/docker-paths/app/second.js b/examples/docker-paths/app/second.js new file mode 100644 index 00000000..494a0c5f --- /dev/null +++ b/examples/docker-paths/app/second.js @@ -0,0 +1,7 @@ +// this file should be excluded from the final coverage numbers +// using "nyc.exclude" list in package.json +window.reverse = s => + s + .split('') + .reverse() + .join('') diff --git a/examples/docker-paths/cypress.json b/examples/docker-paths/cypress.json new file mode 100644 index 00000000..3681940e --- /dev/null +++ b/examples/docker-paths/cypress.json @@ -0,0 +1,5 @@ +{ + "pluginsFile": "../../plugins", + "supportFile": "../../support", + "fixturesFolder": false +} diff --git a/examples/docker-paths/cypress/integration/spec.js b/examples/docker-paths/cypress/integration/spec.js new file mode 100644 index 00000000..3da439de --- /dev/null +++ b/examples/docker-paths/cypress/integration/spec.js @@ -0,0 +1,11 @@ +/// +describe('docker-paths', () => { + it('works', () => { + cy.visit('dist/index.html') + cy.contains('Page body') + + cy.window() + .invoke('reverse', 'super') + .should('equal', 'repus') + }) +}) diff --git a/examples/docker-paths/dist/index.html b/examples/docker-paths/dist/index.html new file mode 100644 index 00000000..993f0c18 --- /dev/null +++ b/examples/docker-paths/dist/index.html @@ -0,0 +1,17 @@ + + Page body + + + + diff --git a/examples/docker-paths/dist/main.js b/examples/docker-paths/dist/main.js new file mode 100644 index 00000000..9bb7cd41 --- /dev/null +++ b/examples/docker-paths/dist/main.js @@ -0,0 +1,58 @@ +function cov_25n278q6qe() { + var path = '/var/www/test/site/app/main.js' + var hash = '8817d7301264befa6a587eeb9305a1bf2cbde8bc' + var global = new Function('return this')() + var gcv = '__coverage__' + var coverageData = { + path: '/var/www/test/site/app/main.js', + statementMap: { + '0': { start: { line: 1, column: 0 }, end: { line: 1, column: 28 } }, + '1': { start: { line: 1, column: 23 }, end: { line: 1, column: 28 } }, + '2': { start: { line: 3, column: 0 }, end: { line: 3, column: 28 } }, + '3': { start: { line: 3, column: 23 }, end: { line: 3, column: 28 } } + }, + fnMap: { + '0': { + name: '(anonymous_0)', + decl: { start: { line: 1, column: 13 }, end: { line: 1, column: 14 } }, + loc: { start: { line: 1, column: 23 }, end: { line: 1, column: 28 } }, + line: 1 + }, + '1': { + name: '(anonymous_1)', + decl: { start: { line: 3, column: 13 }, end: { line: 3, column: 14 } }, + loc: { start: { line: 3, column: 23 }, end: { line: 3, column: 28 } }, + line: 3 + } + }, + branchMap: {}, + s: { '0': 0, '1': 0, '2': 0, '3': 0 }, + f: { '0': 0, '1': 0 }, + b: {}, + _coverageSchema: '1a1c01bbd47fc00a2c39e90264f33305004495a9', + hash: '8817d7301264befa6a587eeb9305a1bf2cbde8bc' + } + var coverage = global[gcv] || (global[gcv] = {}) + if (!coverage[path] || coverage[path].hash !== hash) { + coverage[path] = coverageData + } + var actualCoverage = coverage[path] + cov_25n278q6qe = function() { + return actualCoverage + } + return actualCoverage +} +cov_25n278q6qe() +cov_25n278q6qe().s[0]++ +window.add = (a, b) => { + cov_25n278q6qe().f[0]++ + cov_25n278q6qe().s[1]++ + return a + b +} +cov_25n278q6qe().s[2]++ +window.sub = (a, b) => { + cov_25n278q6qe().f[1]++ + cov_25n278q6qe().s[3]++ + return a - b +} +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1haW4uanMiXSwibmFtZXMiOlsid2luZG93IiwiYWRkIiwiYSIsImIiLCJzdWIiXSwibWFwcGluZ3MiOiJtdkNBQUFBLE1BQU0sQ0FBQ0MsR0FBUCxDQUFhLENBQUNDLENBQUQsQ0FBSUMsQ0FBSixHQUFVLHVEQUFBRCxDQUFBQSxDQUFDLENBQUdDLENBQUosQ0FBSyxDQUE1QixDLHdCQUVBSCxNQUFNLENBQUNJLEdBQVAsQ0FBYSxDQUFDRixDQUFELENBQUlDLENBQUosR0FBVSx1REFBQUQsQ0FBQUEsQ0FBQyxDQUFHQyxDQUFKLENBQUssQ0FBNUIiLCJzb3VyY2VzQ29udGVudCI6WyJ3aW5kb3cuYWRkID0gKGEsIGIpID0+IGEgKyBiXG5cbndpbmRvdy5zdWIgPSAoYSwgYikgPT4gYSAtIGJcbiJdfQ== diff --git a/examples/docker-paths/dist/second.js b/examples/docker-paths/dist/second.js new file mode 100644 index 00000000..d5dfce4c --- /dev/null +++ b/examples/docker-paths/dist/second.js @@ -0,0 +1,48 @@ +function cov_oh5ama61f() { + var path = '/var/www/test/site/app/second.js' + var hash = 'b86d13c912cff987dc7ed851327509c7a170ff4b' + var global = new Function('return this')() + var gcv = '__coverage__' + var coverageData = { + path: '/var/www/test/site/app/second.js', + statementMap: { + '0': { start: { line: 3, column: 0 }, end: { line: 7, column: 13 } }, + '1': { start: { line: 4, column: 2 }, end: { line: 7, column: 13 } } + }, + fnMap: { + '0': { + name: '(anonymous_0)', + decl: { start: { line: 3, column: 17 }, end: { line: 3, column: 18 } }, + loc: { start: { line: 4, column: 2 }, end: { line: 7, column: 13 } }, + line: 4 + } + }, + branchMap: {}, + s: { '0': 0, '1': 0 }, + f: { '0': 0 }, + b: {}, + _coverageSchema: '1a1c01bbd47fc00a2c39e90264f33305004495a9', + hash: 'b86d13c912cff987dc7ed851327509c7a170ff4b' + } + var coverage = global[gcv] || (global[gcv] = {}) + if (!coverage[path] || coverage[path].hash !== hash) { + coverage[path] = coverageData + } + var actualCoverage = coverage[path] + cov_oh5ama61f = function() { + return actualCoverage + } + return actualCoverage +} +cov_oh5ama61f() +cov_oh5ama61f().s[0]++ // this file should be excluded from the final coverage numbers +// using "nyc.exclude" list in package.json +window.reverse = s => { + cov_oh5ama61f().f[0]++ + cov_oh5ama61f().s[1]++ + return s + .split('') + .reverse() + .join('') +} +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNlY29uZC5qcyJdLCJuYW1lcyI6WyJ3aW5kb3ciLCJyZXZlcnNlIiwicyIsInNwbGl0Iiwiam9pbiJdLCJtYXBwaW5ncyI6InErQkFBQTtBQUNBO0FBQ0FBLE1BQU0sQ0FBQ0MsT0FBUCxDQUFpQkMsQ0FBQyxFQUNoQixxREFBQUEsQ0FBQUEsQ0FBQyxDQUNFQyxLQURILENBQ1MsRUFEVCxFQUVHRixPQUZILEdBR0dHLElBSEgsQ0FHUSxFQUhSLEVBR1csQ0FKYiIsInNvdXJjZXNDb250ZW50IjpbIi8vIHRoaXMgZmlsZSBzaG91bGQgYmUgZXhjbHVkZWQgZnJvbSB0aGUgZmluYWwgY292ZXJhZ2UgbnVtYmVyc1xuLy8gdXNpbmcgXCJueWMuZXhjbHVkZVwiIGxpc3QgaW4gcGFja2FnZS5qc29uXG53aW5kb3cucmV2ZXJzZSA9IHMgPT5cbiAgc1xuICAgIC5zcGxpdCgnJylcbiAgICAucmV2ZXJzZSgpXG4gICAgLmpvaW4oJycpXG4iXX0= diff --git a/examples/docker-paths/images/file.png b/examples/docker-paths/images/file.png new file mode 100644 index 0000000000000000000000000000000000000000..8a050cb432866713b34cca410f9dc0bcbb80da1a GIT binary patch literal 70964 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 literal 0 HcmV?d00001 diff --git a/examples/docker-paths/images/files.png b/examples/docker-paths/images/files.png new file mode 100644 index 0000000000000000000000000000000000000000..29be1b4f90a458a0d20d6511425d760b3d554c70 GIT binary patch literal 88215 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 Date: Fri, 17 Apr 2020 17:43:39 -0400 Subject: [PATCH 5/6] add docker paths example to circleci --- .circleci/config.yml | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index 799407b9..e5e67f83 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -194,6 +194,30 @@ workflows: ../../node_modules/.bin/only-covered main.js working_directory: examples/before-all-visit + - cypress/run: + attach-workspace: true + name: example-docker-paths + requires: + - cypress/install + # there are no jobs to follow this one + # so no need to save the workspace files (saves time) + no-workspace: true + working_directory: examples/docker-paths + command: '../../node_modules/.bin/cypress run' + post-steps: + # store the created coverage report folder + # you can click on it in the CircleCI UI + # to see live static HTML site + - store_artifacts: + path: examples/docker-paths/coverage + - run: + name: Check code coverage 📈 + command: | + ../../node_modules/.bin/check-coverage main.js + ../../node_modules/.bin/check-coverage second.js + ../../node_modules/.bin/only-covered main.js second.js + working_directory: examples/docker-paths + - cypress/run: attach-workspace: true name: example-ts-example @@ -395,3 +419,4 @@ workflows: - example-use-plugins-and-support - example-one-spec - example-exclude-files + - example-docker-paths From fbf4e2a34fd1dca7c22eed3f52aab47c787aedc3 Mon Sep 17 00:00:00 2001 From: Gleb Bahmutov Date: Fri, 17 Apr 2020 18:05:50 -0400 Subject: [PATCH 6/6] exclude utils file from coverage --- package.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/package.json b/package.json index ad715ebe..68d98088 100644 --- a/package.json +++ b/package.json @@ -66,5 +66,8 @@ "serve": "11.3.0", "start-server-and-test": "1.10.11", "typescript": "3.8.3" + }, + "nyc": { + "exclude": ["utils.js"] } }