Skip to content

Commit 49f174d

Browse files
authoredMar 23, 2020
refactor: onRunComplete method to upgrade on new major version of Istanbul (#406)
1 parent 4cfa697 commit 49f174d

File tree

1 file changed

+28
-31
lines changed

1 file changed

+28
-31
lines changed
 

‎lib/reporter.js

+28-31
Original file line numberDiff line numberDiff line change
@@ -174,17 +174,20 @@ var CoverageReporter = function (rootConfig, helper, logger, emitter) {
174174
return coverageFailed
175175
}
176176

177-
// Generate the output directory from the `coverageReporter.dir` and
177+
// Generate the output path from the `coverageReporter.dir` and
178178
// `coverageReporter.subdir` options.
179-
function generateOutputDir (browserName, dir, subdir) {
180-
dir = dir || 'coverage'
181-
subdir = subdir || browserName
182-
183-
if (typeof subdir === 'function') {
179+
function generateOutputPath (basePath, browserName, dir = 'coverage', subdir) {
180+
if (subdir && typeof subdir === 'function') {
184181
subdir = subdir(browserName)
185182
}
183+
if (browserName) {
184+
browserName = browserName.replace(':', '')
185+
}
186+
187+
let outPutPath = path.join(dir, subdir || browserName)
188+
outPutPath = path.resolve(basePath, outPutPath)
186189

187-
return path.join(dir, subdir)
190+
return helper.normalizeWinPath(outPutPath)
188191
}
189192

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

226229
this.onRunComplete = function (browsers, results) {
227-
var checkedCoverage = {}
230+
const checkedCoverage = {}
228231

229-
reporters.forEach(function (reporterConfig) {
232+
for (const reporterConfig of reporters) {
230233
browsers.forEach(function (browser) {
231-
var coverageMap = coverageMaps[browser.id]
232-
234+
const coverageMap = coverageMaps[browser.id]
233235
if (!coverageMap) {
234236
return
235237
}
236238

237-
var mainDir = reporterConfig.dir || config.dir
238-
var subDir = reporterConfig.subdir || config.subdir
239-
var browserName = browser.name.replace(':', '')
240-
var simpleOutputDir = generateOutputDir(browserName, mainDir, subDir)
241-
var resolvedOutputDir = path.resolve(basePath, simpleOutputDir)
239+
const mainDir = reporterConfig.dir || config.dir
240+
const subDir = reporterConfig.subdir || config.subdir
241+
const outputPath = generateOutputPath(basePath, browser.name, mainDir, subDir)
242242

243-
var outputDir = helper.normalizeWinPath(resolvedOutputDir)
244-
var options = helper.merge(config, reporterConfig, {
245-
dir: outputDir,
243+
const options = helper.merge(config, reporterConfig, {
244+
dir: outputPath,
246245
subdir: '',
247246
browser: browser,
248247
emitter: emitter
249248
})
250-
var remappedCoverageMap = sourceMapStore.transformCoverage(coverageMap).map
249+
const remappedCoverageMap = sourceMapStore.transformCoverage(coverageMap).map
251250

252251
// If config.check is defined, check coverage levels for each browser
253252
if (hasOwnProperty.call(config, 'check') && !checkedCoverage[browser.id]) {
254253
checkedCoverage[browser.id] = true
255254
var coverageFailed = checkCoverage(browser, remappedCoverageMap)
256-
if (coverageFailed) {
257-
if (results) {
258-
results.exitCode = 1
259-
}
255+
if (coverageFailed && results) {
256+
results.exitCode = 1
260257
}
261258
}
262259

263-
var context = istanbulLibReport.createContext(options)
264-
var tree = istanbulLibReport.summarizers.pkg(remappedCoverageMap)
265-
var report = reports.create(reporterConfig.type || 'html', options)
260+
const context = istanbulLibReport.createContext(options)
261+
const tree = istanbulLibReport.summarizers.pkg(remappedCoverageMap)
262+
const report = reports.create(reporterConfig.type || 'html', options)
266263

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

270267
if (!toDisk && reporterConfig.file === undefined) {
271268
tree.visit(report, context)
272269
return
273270
}
274271

275-
helper.mkdirIfNotExists(outputDir, function () {
276-
log.debug('Writing coverage to %s', outputDir)
272+
helper.mkdirIfNotExists(outputPath, function () {
273+
log.debug('Writing coverage to %s', outputPath)
277274
tree.visit(report, context)
278275
})
279276
})
280-
})
277+
}
281278
}
282279

283280
this.onExit = function (done) {

0 commit comments

Comments
 (0)
Please sign in to comment.