Skip to content

Commit

Permalink
refactor: onRunComplete method to upgrade on new major version of Ist…
Browse files Browse the repository at this point in the history
…anbul (#406)
  • Loading branch information
anthony-redFox committed Mar 23, 2020
1 parent 4cfa697 commit 49f174d
Showing 1 changed file with 28 additions and 31 deletions.
59 changes: 28 additions & 31 deletions lib/reporter.js
Expand Up @@ -174,17 +174,20 @@ var CoverageReporter = function (rootConfig, helper, logger, emitter) {
return coverageFailed
}

// Generate the output directory from the `coverageReporter.dir` and
// Generate the output path from the `coverageReporter.dir` and
// `coverageReporter.subdir` options.
function generateOutputDir (browserName, dir, subdir) {
dir = dir || 'coverage'
subdir = subdir || browserName

if (typeof subdir === 'function') {
function generateOutputPath (basePath, browserName, dir = 'coverage', subdir) {
if (subdir && typeof subdir === 'function') {
subdir = subdir(browserName)
}
if (browserName) {
browserName = browserName.replace(':', '')
}

let outPutPath = path.join(dir, subdir || browserName)
outPutPath = path.resolve(basePath, outPutPath)

return path.join(dir, subdir)
return helper.normalizeWinPath(outPutPath)
}

this.onRunStart = function (browsers) {
Expand Down Expand Up @@ -224,60 +227,54 @@ var CoverageReporter = function (rootConfig, helper, logger, emitter) {
}

this.onRunComplete = function (browsers, results) {
var checkedCoverage = {}
const checkedCoverage = {}

reporters.forEach(function (reporterConfig) {
for (const reporterConfig of reporters) {
browsers.forEach(function (browser) {
var coverageMap = coverageMaps[browser.id]

const coverageMap = coverageMaps[browser.id]
if (!coverageMap) {
return
}

var mainDir = reporterConfig.dir || config.dir
var subDir = reporterConfig.subdir || config.subdir
var browserName = browser.name.replace(':', '')
var simpleOutputDir = generateOutputDir(browserName, mainDir, subDir)
var resolvedOutputDir = path.resolve(basePath, simpleOutputDir)
const mainDir = reporterConfig.dir || config.dir
const subDir = reporterConfig.subdir || config.subdir
const outputPath = generateOutputPath(basePath, browser.name, mainDir, subDir)

var outputDir = helper.normalizeWinPath(resolvedOutputDir)
var options = helper.merge(config, reporterConfig, {
dir: outputDir,
const options = helper.merge(config, reporterConfig, {
dir: outputPath,
subdir: '',
browser: browser,
emitter: emitter
})
var remappedCoverageMap = sourceMapStore.transformCoverage(coverageMap).map
const remappedCoverageMap = sourceMapStore.transformCoverage(coverageMap).map

// If config.check is defined, check coverage levels for each browser
if (hasOwnProperty.call(config, 'check') && !checkedCoverage[browser.id]) {
checkedCoverage[browser.id] = true
var coverageFailed = checkCoverage(browser, remappedCoverageMap)
if (coverageFailed) {
if (results) {
results.exitCode = 1
}
if (coverageFailed && results) {
results.exitCode = 1
}
}

var context = istanbulLibReport.createContext(options)
var tree = istanbulLibReport.summarizers.pkg(remappedCoverageMap)
var report = reports.create(reporterConfig.type || 'html', options)
const context = istanbulLibReport.createContext(options)
const tree = istanbulLibReport.summarizers.pkg(remappedCoverageMap)
const report = reports.create(reporterConfig.type || 'html', options)

// // If reporting to console or in-memory skip directory creation
var toDisk = !reporterConfig.type || !reporterConfig.type.match(/^(text|text-summary|in-memory)$/)
const toDisk = !reporterConfig.type || !reporterConfig.type.match(/^(text|text-summary|in-memory)$/)

if (!toDisk && reporterConfig.file === undefined) {
tree.visit(report, context)
return
}

helper.mkdirIfNotExists(outputDir, function () {
log.debug('Writing coverage to %s', outputDir)
helper.mkdirIfNotExists(outputPath, function () {
log.debug('Writing coverage to %s', outputPath)
tree.visit(report, context)
})
})
})
}
}

this.onExit = function (done) {
Expand Down

0 comments on commit 49f174d

Please sign in to comment.