Home Manual Reference Source Test Repository

src/BuilderTest/CoverageDocTest.js

import fs from 'fs';
import {assert} from './../util.js';

/** @test {CoverageBuilder} */
describe('Coverage:', ()=> {

  /** @test {CoverageBuilder#exec} */
  it('has coverage.json', ()=>{
    let json = fs.readFileSync('./test/fixture/esdoc/coverage.json', {encoding: 'utf8'}).toString();
    let coverage = JSON.parse(json);
    assert.equal(coverage.coverage, '89.79%');
    assert.equal(coverage.expectCount, 147);
    assert.equal(coverage.actualCount, 132);
    assert.deepEqual(coverage.files, {
      "src/ForTestDoc/AbstractDoc.js": {
        "expectCount": 3,
        "actualCount": 0,
        "undocumentLines": [
          1,
          2,
          4
        ]
      },
      "src/ForTestDoc/ClassDoc.js": {
        "expectCount": 1,
        "actualCount": 0,
        "undocumentLines": [
          3
        ]
      },
      "src/ForTestDoc/ClassDocBuilder.js": {
        "expectCount": 2,
        "actualCount": 0,
        "undocumentLines": [
          1,
          2
        ]
      },
      "src/MyClass.js": {
        "expectCount": 43,
        "actualCount": 38,
        "undocumentLines": [
          226,
          231,
          144,
          145,
          146
        ]
      },
      "src/MyError.js": {
        "expectCount": 1,
        "actualCount": 1,
        "undocumentLines": []
      },
      "src/MyEvent.js": {
        "expectCount": 1,
        "actualCount": 1,
        "undocumentLines": []
      },
      "src/Export.js": {
        "expectCount": 24,
        "actualCount": 24,
        "undocumentLines": []
      },
      "src/MyExpressionExtend.js": {
        "expectCount": 2,
        "actualCount": 2,
        "undocumentLines": []
      },
      "src/MyInterface.js": {
        "expectCount": 3,
        "actualCount": 3,
        "undocumentLines": []
      },
      "src/ExtendNest.js": {
        "expectCount": 2,
        "actualCount": 2,
        "undocumentLines": []
      },
      "src/ReactJSX.js": {
        "expectCount": 2,
        "actualCount": 2,
        "undocumentLines": []
      },
      "src/OtherClass/SuperMyClass.js": {
        "expectCount": 19,
        "actualCount": 19,
        "undocumentLines": []
      },
      "src/Z001_MyDuplicationPropertyClass.js": {
        "expectCount": 5,
        "actualCount": 5,
        "undocumentLines": []
      },
      "src/Z002_MyComputedMethodClass.js": {
        "expectCount": 11,
        "actualCount": 11,
        "undocumentLines": []
      },
      "src/nMyAnonymous.js": {
        "expectCount": 4,
        "actualCount": 4,
        "undocumentLines": []
      },
      "src/Z003_MyInvalidLintClass.js": {
        "actualCount": 5,
        "expectCount": 5,
        "undocumentLines": []
      },
      "src/myFunction.js": {
        "expectCount": 11,
        "actualCount": 9,
        "undocumentLines": [
          50,
          55
        ]
      },
      "src/myVariable.js": {
        "expectCount": 8,
        "actualCount": 6,
        "undocumentLines": [
          22,
          23
        ]
      }
    });
  });

  /** @test {CoverageBuilder#exec} */
  it('creates coverage badge', ()=>{
    let json = fs.readFileSync('./test/fixture/esdoc/coverage.json', {encoding: 'utf8'}).toString();
    let coverage = JSON.parse(json);
    let badge = fs.readFileSync('./test/fixture/esdoc/badge.svg', {encoding: 'utf8'}).toString();
    let ratio = Math.floor(100 * coverage.actualCount / coverage.expectCount) + '%';
    assert(badge.includes(ratio));
  });
});