Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Add code coverage using Istanbul. Closes #9
  • Loading branch information
Silvestre Herrera committed Jul 27, 2016
1 parent eeead43 commit 54c64fd
Show file tree
Hide file tree
Showing 15 changed files with 928 additions and 3 deletions.
3 changes: 3 additions & 0 deletions coverage/coverage-final.json
@@ -0,0 +1,3 @@
{
"/Users/silvestre/Projects/rollup-starter-project/lib/utils.js":{"path":"/Users/silvestre/Projects/rollup-starter-project/lib/utils.js","s":{"1":1,"2":15},"b":{},"f":{"1":15},"fnMap":{"1":{"name":"add","line":4,"loc":{"start":{"line":4,"column":7},"end":{"line":4,"column":26}}}},"statementMap":{"1":{"start":{"line":4,"column":7},"end":{"line":6,"column":1}},"2":{"start":{"line":5,"column":2},"end":{"line":5,"column":15}}},"branchMap":{},"l":{"4":1,"5":15}},
"/Users/silvestre/Projects/rollup-starter-project/lib/index.js":{"path":"/Users/silvestre/Projects/rollup-starter-project/lib/index.js","s":{"1":1,"2":13,"3":13,"4":2,"5":11,"6":1,"7":10,"8":1,"9":9,"10":1,"11":8,"12":1,"13":7,"14":1,"15":6,"16":6,"17":15,"18":6},"b":{"1":[11,2],"2":[13,2],"3":[2,11],"4":[13,12],"5":[1,10],"6":[1,9],"7":[1,8],"8":[9,2],"9":[1,7],"10":[1,6],"11":[2,4]},"f":{"1":13},"fnMap":{"1":{"name":"multiply","line":19,"loc":{"start":{"line":19,"column":7},"end":{"line":19,"column":31}}}},"statementMap":{"1":{"start":{"line":19,"column":7},"end":{"line":41,"column":1}},"2":{"start":{"line":20,"column":2},"end":{"line":20,"column":92}},"3":{"start":{"line":22,"column":2},"end":{"line":34,"column":3}},"4":{"start":{"line":23,"column":4},"end":{"line":23,"column":13}},"5":{"start":{"line":24,"column":9},"end":{"line":34,"column":3}},"6":{"start":{"line":25,"column":4},"end":{"line":25,"column":13}},"7":{"start":{"line":26,"column":9},"end":{"line":34,"column":3}},"8":{"start":{"line":27,"column":4},"end":{"line":27,"column":13}},"9":{"start":{"line":28,"column":9},"end":{"line":34,"column":3}},"10":{"start":{"line":29,"column":4},"end":{"line":29,"column":28}},"11":{"start":{"line":30,"column":9},"end":{"line":34,"column":3}},"12":{"start":{"line":31,"column":4},"end":{"line":31,"column":38}},"13":{"start":{"line":32,"column":9},"end":{"line":34,"column":3}},"14":{"start":{"line":33,"column":4},"end":{"line":33,"column":38}},"15":{"start":{"line":36,"column":2},"end":{"line":36,"column":17}},"16":{"start":{"line":37,"column":2},"end":{"line":39,"column":3}},"17":{"start":{"line":38,"column":4},"end":{"line":38,"column":28}},"18":{"start":{"line":40,"column":2},"end":{"line":40,"column":37}}},"branchMap":{"1":{"line":20,"type":"cond-expr","locations":[{"start":{"line":20,"column":71},"end":{"line":20,"column":76}},{"start":{"line":20,"column":79},"end":{"line":20,"column":91}}]},"2":{"line":20,"type":"binary-expr","locations":[{"start":{"line":20,"column":17},"end":{"line":20,"column":38}},{"start":{"line":20,"column":42},"end":{"line":20,"column":68}}]},"3":{"line":22,"type":"if","locations":[{"start":{"line":22,"column":2},"end":{"line":22,"column":2}},{"start":{"line":22,"column":2},"end":{"line":22,"column":2}}]},"4":{"line":22,"type":"binary-expr","locations":[{"start":{"line":22,"column":6},"end":{"line":22,"column":13}},{"start":{"line":22,"column":17},"end":{"line":22,"column":24}}]},"5":{"line":24,"type":"if","locations":[{"start":{"line":24,"column":9},"end":{"line":24,"column":9}},{"start":{"line":24,"column":9},"end":{"line":24,"column":9}}]},"6":{"line":26,"type":"if","locations":[{"start":{"line":26,"column":9},"end":{"line":26,"column":9}},{"start":{"line":26,"column":9},"end":{"line":26,"column":9}}]},"7":{"line":28,"type":"if","locations":[{"start":{"line":28,"column":9},"end":{"line":28,"column":9}},{"start":{"line":28,"column":9},"end":{"line":28,"column":9}}]},"8":{"line":28,"type":"binary-expr","locations":[{"start":{"line":28,"column":13},"end":{"line":28,"column":18}},{"start":{"line":28,"column":22},"end":{"line":28,"column":27}}]},"9":{"line":30,"type":"if","locations":[{"start":{"line":30,"column":9},"end":{"line":30,"column":9}},{"start":{"line":30,"column":9},"end":{"line":30,"column":9}}]},"10":{"line":32,"type":"if","locations":[{"start":{"line":32,"column":9},"end":{"line":32,"column":9}},{"start":{"line":32,"column":9},"end":{"line":32,"column":9}}]},"11":{"line":40,"type":"cond-expr","locations":[{"start":{"line":40,"column":20},"end":{"line":40,"column":27}},{"start":{"line":40,"column":30},"end":{"line":40,"column":36}}]}},"l":{"19":1,"20":13,"22":13,"23":2,"24":11,"25":1,"26":10,"27":1,"28":9,"29":1,"30":8,"31":1,"32":7,"33":1,"36":6,"37":6,"38":15,"40":6}}}
213 changes: 213 additions & 0 deletions coverage/lcov-report/base.css
@@ -0,0 +1,213 @@
body, html {
margin:0; padding: 0;
height: 100%;
}
body {
font-family: Helvetica Neue, Helvetica, Arial;
font-size: 14px;
color:#333;
}
.small { font-size: 12px; }
*, *:after, *:before {
-webkit-box-sizing:border-box;
-moz-box-sizing:border-box;
box-sizing:border-box;
}
h1 { font-size: 20px; margin: 0;}
h2 { font-size: 14px; }
pre {
font: 12px/1.4 Consolas, "Liberation Mono", Menlo, Courier, monospace;
margin: 0;
padding: 0;
-moz-tab-size: 2;
-o-tab-size: 2;
tab-size: 2;
}
a { color:#0074D9; text-decoration:none; }
a:hover { text-decoration:underline; }
.strong { font-weight: bold; }
.space-top1 { padding: 10px 0 0 0; }
.pad2y { padding: 20px 0; }
.pad1y { padding: 10px 0; }
.pad2x { padding: 0 20px; }
.pad2 { padding: 20px; }
.pad1 { padding: 10px; }
.space-left2 { padding-left:55px; }
.space-right2 { padding-right:20px; }
.center { text-align:center; }
.clearfix { display:block; }
.clearfix:after {
content:'';
display:block;
height:0;
clear:both;
visibility:hidden;
}
.fl { float: left; }
@media only screen and (max-width:640px) {
.col3 { width:100%; max-width:100%; }
.hide-mobile { display:none!important; }
}

.quiet {
color: #7f7f7f;
color: rgba(0,0,0,0.5);
}
.quiet a { opacity: 0.7; }

.fraction {
font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace;
font-size: 10px;
color: #555;
background: #E8E8E8;
padding: 4px 5px;
border-radius: 3px;
vertical-align: middle;
}

div.path a:link, div.path a:visited { color: #333; }
table.coverage {
border-collapse: collapse;
margin: 10px 0 0 0;
padding: 0;
}

table.coverage td {
margin: 0;
padding: 0;
vertical-align: top;
}
table.coverage td.line-count {
text-align: right;
padding: 0 5px 0 20px;
}
table.coverage td.line-coverage {
text-align: right;
padding-right: 10px;
min-width:20px;
}

table.coverage td span.cline-any {
display: inline-block;
padding: 0 5px;
width: 100%;
}
.missing-if-branch {
display: inline-block;
margin-right: 5px;
border-radius: 3px;
position: relative;
padding: 0 4px;
background: #333;
color: yellow;
}

.skip-if-branch {
display: none;
margin-right: 10px;
position: relative;
padding: 0 4px;
background: #ccc;
color: white;
}
.missing-if-branch .typ, .skip-if-branch .typ {
color: inherit !important;
}
.coverage-summary {
border-collapse: collapse;
width: 100%;
}
.coverage-summary tr { border-bottom: 1px solid #bbb; }
.keyline-all { border: 1px solid #ddd; }
.coverage-summary td, .coverage-summary th { padding: 10px; }
.coverage-summary tbody { border: 1px solid #bbb; }
.coverage-summary td { border-right: 1px solid #bbb; }
.coverage-summary td:last-child { border-right: none; }
.coverage-summary th {
text-align: left;
font-weight: normal;
white-space: nowrap;
}
.coverage-summary th.file { border-right: none !important; }
.coverage-summary th.pct { }
.coverage-summary th.pic,
.coverage-summary th.abs,
.coverage-summary td.pct,
.coverage-summary td.abs { text-align: right; }
.coverage-summary td.file { white-space: nowrap; }
.coverage-summary td.pic { min-width: 120px !important; }
.coverage-summary tfoot td { }

.coverage-summary .sorter {
height: 10px;
width: 7px;
display: inline-block;
margin-left: 0.5em;
background: url(sort-arrow-sprite.png) no-repeat scroll 0 0 transparent;
}
.coverage-summary .sorted .sorter {
background-position: 0 -20px;
}
.coverage-summary .sorted-desc .sorter {
background-position: 0 -10px;
}
.status-line { height: 10px; }
/* dark red */
.red.solid, .status-line.low, .low .cover-fill { background:#C21F39 }
.low .chart { border:1px solid #C21F39 }
/* medium red */
.cstat-no, .fstat-no, .cbranch-no, .cbranch-no { background:#F6C6CE }
/* light red */
.low, .cline-no { background:#FCE1E5 }
/* light green */
.high, .cline-yes { background:rgb(230,245,208) }
/* medium green */
.cstat-yes { background:rgb(161,215,106) }
/* dark green */
.status-line.high, .high .cover-fill { background:rgb(77,146,33) }
.high .chart { border:1px solid rgb(77,146,33) }
/* dark yellow (gold) */
.medium .chart { border:1px solid #f9cd0b; }
.status-line.medium, .medium .cover-fill { background: #f9cd0b; }
/* light yellow */
.medium { background: #fff4c2; }
/* light gray */
span.cline-neutral { background: #eaeaea; }

.cbranch-no { background: yellow !important; color: #111; }

.cstat-skip { background: #ddd; color: #111; }
.fstat-skip { background: #ddd; color: #111 !important; }
.cbranch-skip { background: #ddd !important; color: #111; }


.cover-fill, .cover-empty {
display:inline-block;
height: 12px;
}
.chart {
line-height: 0;
}
.cover-empty {
background: white;
}
.cover-full {
border-right: none !important;
}
pre.prettyprint {
border: none !important;
padding: 0 !important;
margin: 0 !important;
}
.com { color: #999 !important; }
.ignore-none { color: #999; font-weight: normal; }

.wrapper {
min-height: 100%;
height: auto !important;
height: 100%;
margin: 0 auto -48px;
}
.footer, .push {
height: 48px;
}
93 changes: 93 additions & 0 deletions coverage/lcov-report/index.html
@@ -0,0 +1,93 @@
<!doctype html>
<html lang="en">
<head>
<title>Code coverage report for All files</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="prettify.css" />
<link rel="stylesheet" href="base.css" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<style type='text/css'>
.coverage-summary .sorter {
background-image: url(sort-arrow-sprite.png);
}
</style>
</head>
<body>
<div class='wrapper'>
<div class='pad1'>
<h1>
/
</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Statements</span>
<span class='fraction'>20/20</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Branches</span>
<span class='fraction'>22/22</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Functions</span>
<span class='fraction'>2/2</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Lines</span>
<span class='fraction'>20/20</span>
</div>
</div>
</div>
<div class='status-line high'></div>
<div class="pad1">
<table class="coverage-summary">
<thead>
<tr>
<th data-col="file" data-fmt="html" data-html="true" class="file">File</th>
<th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th>
<th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th>
<th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th>
<th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th>
<th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th>
<th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th>
<th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th>
<th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th>
<th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th>
</tr>
</thead>
<tbody><tr>
<td class="file high" data-value="lib/"><a href="lib/index.html">lib/</a></td>
<td data-value="100" class="pic high"><div class="chart"><div class="cover-fill cover-full" style="width: 100%;"></div><div class="cover-empty" style="width:0%;"></div></div></td>
<td data-value="100" class="pct high">100%</td>
<td data-value="20" class="abs high">20/20</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="22" class="abs high">22/22</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="2" class="abs high">2/2</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="20" class="abs high">20/20</td>
</tr>

</tbody>
</table>
</div><div class='push'></div><!-- for sticky footer -->
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
Code coverage
generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Wed Jul 27 2016 16:19:42 GMT-0300 (ART)
</div>
</div>
<script src="prettify.js"></script>
<script>
window.onload = function () {
if (typeof prettyPrint === 'function') {
prettyPrint();
}
};
</script>
<script src="sorter.js"></script>
</body>
</html>

0 comments on commit 54c64fd

Please sign in to comment.