You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							48 lines
						
					
					
						
							1.2 KiB
						
					
					
				
			
		
		
	
	
							48 lines
						
					
					
						
							1.2 KiB
						
					
					
				/* | 
						|
 Copyright 2012-2015, Yahoo Inc. | 
						|
 Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. | 
						|
 */ | 
						|
'use strict'; | 
						|
 | 
						|
function JsonSummaryReport(opts) { | 
						|
    this.file = opts.file || 'coverage-summary.json'; | 
						|
    this.contentWriter = null; | 
						|
    this.first = true; | 
						|
} | 
						|
 | 
						|
JsonSummaryReport.prototype.onStart = function(root, context) { | 
						|
    this.contentWriter = context.writer.writeFile(this.file); | 
						|
    this.contentWriter.write('{'); | 
						|
}; | 
						|
 | 
						|
JsonSummaryReport.prototype.writeSummary = function(filePath, sc) { | 
						|
    const cw = this.contentWriter; | 
						|
    if (this.first) { | 
						|
        this.first = false; | 
						|
    } else { | 
						|
        cw.write(','); | 
						|
    } | 
						|
    cw.write(JSON.stringify(filePath)); | 
						|
    cw.write(': '); | 
						|
    cw.write(JSON.stringify(sc)); | 
						|
    cw.println(''); | 
						|
}; | 
						|
 | 
						|
JsonSummaryReport.prototype.onSummary = function(node) { | 
						|
    if (!node.isRoot()) { | 
						|
        return; | 
						|
    } | 
						|
    this.writeSummary('total', node.getCoverageSummary()); | 
						|
}; | 
						|
 | 
						|
JsonSummaryReport.prototype.onDetail = function(node) { | 
						|
    this.writeSummary(node.getFileCoverage().path, node.getCoverageSummary()); | 
						|
}; | 
						|
 | 
						|
JsonSummaryReport.prototype.onEnd = function() { | 
						|
    const cw = this.contentWriter; | 
						|
    cw.println('}'); | 
						|
    cw.close(); | 
						|
}; | 
						|
 | 
						|
module.exports = JsonSummaryReport;
 | 
						|
 |