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.
		
		
		
		
			
				
					49 lines
				
				1.2 KiB
			
		
		
			
		
	
	
					49 lines
				
				1.2 KiB
			| 
								 
											4 years ago
										 
									 | 
							
								/*
							 | 
						||
| 
								 | 
							
								 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;
							 |