1 var assert = require('assert');
2 var runforcover = require('../');
4 exports.coverageInterface = function() {
5 assert.ok(runforcover.cover);
7 var originalRequire = require.extensions['.js'];
9 var coverage = runforcover.cover();
11 assert.notEqual(originalRequire, require.extensions['.js']);
13 var file = require('./src/coverage');
15 coverage(function(coverageData) {
16 assert.equal(Object.keys(coverageData).length, 1);
17 assert.equal(Object.keys(coverageData)[0], __dirname + '/src/coverage.js');
19 var fileCoverageData = coverageData[Object.keys(coverageData)[0]];
21 assert.ok(fileCoverageData.stats);
22 assert.ok(fileCoverageData.missing);
24 var stats = fileCoverageData.stats();
26 assert.ok(stats.percentage !== undefined);
27 assert.ok(stats.lines !== undefined);
28 assert.ok(stats.missing !== undefined);
29 assert.ok(stats.seen !== undefined);
31 assert.equal(stats.lines.length, 3);
32 assert.equal(stats.lines[0].source(), ' if(a > 0) {');
33 assert.equal(stats.lines[1].source(), ' return a + 1;');
34 assert.equal(stats.lines[2].source(), ' return a - 1;');
37 stats = fileCoverageData.stats();
39 assert.equal(stats.lines.length, 1);
40 assert.equal(stats.lines[0].source(), ' return a - 1;');
43 stats = fileCoverageData.stats();
45 assert.equal(stats.lines.length, 0);
48 assert.equal(require.extensions['.js'], originalRequire);