Skip to content

Commit

Permalink
Test cases for process logic
Browse files Browse the repository at this point in the history
  • Loading branch information
thsaravana committed Feb 22, 2021
1 parent ffbedd1 commit 65ff716
Show file tree
Hide file tree
Showing 7 changed files with 463 additions and 380 deletions.
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
node_modules
.idea
.idea
coverage
147 changes: 126 additions & 21 deletions __tests__/__fixtures__/report.xml
Original file line number Diff line number Diff line change
@@ -1,52 +1,157 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><!DOCTYPE report PUBLIC "-//JACOCO//DTD Report 1.0//EN"
"report.dtd">
<report name="jacoco-playground">
<sessioninfo id="Apples-MacBook-Pro.local-454f6086" start="1612575925213" dump="1612575926219"/>
<sessioninfo id="Apples-MacBook-Pro.local-da407ff" start="1613997096666" dump="1613997097758"/>
<package name="com/madrapps/jacoco">
<class name="com/madrapps/jacoco/Arithmetic">
<method name="add" desc="(II)I" line="6">
<counter type="INSTRUCTION" missed="0" covered="4"/>
<counter type="LINE" missed="0" covered="1"/>
<counter type="COMPLEXITY" missed="0" covered="1"/>
<counter type="METHOD" missed="0" covered="1"/>
</method>
<method name="subtract" desc="(II)I" line="10">
<counter type="INSTRUCTION" missed="4" covered="0"/>
<counter type="LINE" missed="1" covered="0"/>
<counter type="COMPLEXITY" missed="1" covered="0"/>
<counter type="METHOD" missed="1" covered="0"/>
</method>
<method name="multiply" desc="(II)I" line="14">
<counter type="INSTRUCTION" missed="4" covered="0"/>
<counter type="LINE" missed="1" covered="0"/>
<counter type="COMPLEXITY" missed="1" covered="0"/>
<counter type="METHOD" missed="1" covered="0"/>
</method>
<method name="&lt;init&gt;" desc="()V" line="3">
<counter type="INSTRUCTION" missed="0" covered="3"/>
<counter type="LINE" missed="0" covered="1"/>
<counter type="COMPLEXITY" missed="0" covered="1"/>
<counter type="METHOD" missed="0" covered="1"/>
</method>
<counter type="INSTRUCTION" missed="8" covered="7"/>
<counter type="LINE" missed="2" covered="2"/>
<counter type="COMPLEXITY" missed="2" covered="2"/>
<counter type="METHOD" missed="2" covered="2"/>
<counter type="CLASS" missed="0" covered="1"/>
</class>
<class name="com/madrapps/jacoco/Utils">
<method name="&lt;init&gt;" desc="()V" line="3">
<counter type="INSTRUCTION" missed="0" covered="3"/>
<counter type="LINE" missed="0" covered="1"/>
<counter type="COMPLEXITY" missed="0" covered="1"/>
<counter type="METHOD" missed="0" covered="1"/>
</method>
<method name="add" desc="(II)I" line="6">
<method name="multiply" desc="(II)I" line="6">
<counter type="INSTRUCTION" missed="4" covered="0"/>
<counter type="LINE" missed="1" covered="0"/>
<counter type="COMPLEXITY" missed="1" covered="0"/>
<counter type="METHOD" missed="1" covered="0"/>
</method>
<method name="add" desc="(II)I" line="10">
<counter type="INSTRUCTION" missed="0" covered="4"/>
<counter type="LINE" missed="0" covered="1"/>
<counter type="COMPLEXITY" missed="0" covered="1"/>
<counter type="METHOD" missed="0" covered="1"/>
</method>
<method name="subtract" desc="(II)I" line="10">
<method name="square" desc="(I)I" line="14">
<counter type="INSTRUCTION" missed="4" covered="0"/>
<counter type="LINE" missed="1" covered="0"/>
<counter type="COMPLEXITY" missed="1" covered="0"/>
<counter type="METHOD" missed="1" covered="0"/>
</method>
<counter type="INSTRUCTION" missed="4" covered="7"/>
<counter type="LINE" missed="1" covered="2"/>
<counter type="COMPLEXITY" missed="1" covered="2"/>
<counter type="METHOD" missed="1" covered="2"/>
<method name="subtract" desc="(II)I" line="18">
<counter type="INSTRUCTION" missed="0" covered="4"/>
<counter type="LINE" missed="0" covered="1"/>
<counter type="COMPLEXITY" missed="0" covered="1"/>
<counter type="METHOD" missed="0" covered="1"/>
</method>
<method name="divide" desc="(II)I" line="22">
<counter type="INSTRUCTION" missed="4" covered="0"/>
<counter type="LINE" missed="1" covered="0"/>
<counter type="COMPLEXITY" missed="1" covered="0"/>
<counter type="METHOD" missed="1" covered="0"/>
</method>
<method name="cube" desc="(I)I" line="26">
<counter type="INSTRUCTION" missed="6" covered="0"/>
<counter type="LINE" missed="1" covered="0"/>
<counter type="COMPLEXITY" missed="1" covered="0"/>
<counter type="METHOD" missed="1" covered="0"/>
</method>
<counter type="INSTRUCTION" missed="18" covered="11"/>
<counter type="LINE" missed="4" covered="3"/>
<counter type="COMPLEXITY" missed="4" covered="3"/>
<counter type="METHOD" missed="4" covered="3"/>
<counter type="CLASS" missed="0" covered="1"/>
</class>
<sourcefile name="Utils.java">
<line nr="3" mi="0" ci="3" mb="0" cb="0"/>
<line nr="6" mi="4" ci="0" mb="0" cb="0"/>
<line nr="10" mi="0" ci="4" mb="0" cb="0"/>
<line nr="14" mi="4" ci="0" mb="0" cb="0"/>
<line nr="18" mi="0" ci="4" mb="0" cb="0"/>
<line nr="22" mi="4" ci="0" mb="0" cb="0"/>
<line nr="26" mi="6" ci="0" mb="0" cb="0"/>
<counter type="INSTRUCTION" missed="18" covered="11"/>
<counter type="LINE" missed="4" covered="3"/>
<counter type="COMPLEXITY" missed="4" covered="3"/>
<counter type="METHOD" missed="4" covered="3"/>
<counter type="CLASS" missed="0" covered="1"/>
</sourcefile>
<sourcefile name="Math.kt">
<line nr="3" mi="0" ci="3" mb="0" cb="0"/>
<line nr="6" mi="0" ci="4" mb="0" cb="0"/>
<line nr="10" mi="4" ci="0" mb="0" cb="0"/>
<counter type="INSTRUCTION" missed="4" covered="7"/>
<counter type="LINE" missed="1" covered="2"/>
<counter type="COMPLEXITY" missed="1" covered="2"/>
<counter type="METHOD" missed="1" covered="2"/>
<line nr="14" mi="4" ci="0" mb="0" cb="0"/>
<counter type="INSTRUCTION" missed="8" covered="7"/>
<counter type="LINE" missed="2" covered="2"/>
<counter type="COMPLEXITY" missed="2" covered="2"/>
<counter type="METHOD" missed="2" covered="2"/>
<counter type="CLASS" missed="0" covered="1"/>
</sourcefile>
<counter type="INSTRUCTION" missed="26" covered="18"/>
<counter type="LINE" missed="6" covered="5"/>
<counter type="COMPLEXITY" missed="6" covered="5"/>
<counter type="METHOD" missed="6" covered="5"/>
<counter type="CLASS" missed="0" covered="2"/>
</package>
<package name="com/madrapps/jacoco/operation">
<class name="com/madrapps/jacoco/operation/StringOp">
<method name="&lt;init&gt;" desc="()V" line="3">
<counter type="INSTRUCTION" missed="0" covered="3"/>
<counter type="LINE" missed="0" covered="1"/>
<counter type="COMPLEXITY" missed="0" covered="1"/>
<counter type="METHOD" missed="0" covered="1"/>
</method>
<method name="endsWith" desc="(Ljava/lang/String;Ljava/lang/String;)Z" line="6">
<counter type="INSTRUCTION" missed="0" covered="4"/>
<counter type="LINE" missed="0" covered="1"/>
<counter type="COMPLEXITY" missed="0" covered="1"/>
<counter type="METHOD" missed="0" covered="1"/>
</method>
<counter type="INSTRUCTION" missed="0" covered="7"/>
<counter type="LINE" missed="0" covered="2"/>
<counter type="COMPLEXITY" missed="0" covered="2"/>
<counter type="METHOD" missed="0" covered="2"/>
<counter type="CLASS" missed="0" covered="1"/>
</class>
<sourcefile name="StringOp.java">
<line nr="3" mi="0" ci="3" mb="0" cb="0"/>
<line nr="6" mi="0" ci="4" mb="0" cb="0"/>
<counter type="INSTRUCTION" missed="0" covered="7"/>
<counter type="LINE" missed="0" covered="2"/>
<counter type="COMPLEXITY" missed="0" covered="2"/>
<counter type="METHOD" missed="0" covered="2"/>
<counter type="CLASS" missed="0" covered="1"/>
</sourcefile>
<counter type="INSTRUCTION" missed="4" covered="7"/>
<counter type="LINE" missed="1" covered="2"/>
<counter type="COMPLEXITY" missed="1" covered="2"/>
<counter type="METHOD" missed="1" covered="2"/>
<counter type="INSTRUCTION" missed="0" covered="7"/>
<counter type="LINE" missed="0" covered="2"/>
<counter type="COMPLEXITY" missed="0" covered="2"/>
<counter type="METHOD" missed="0" covered="2"/>
<counter type="CLASS" missed="0" covered="1"/>
</package>
<counter type="INSTRUCTION" missed="4" covered="7"/>
<counter type="LINE" missed="1" covered="2"/>
<counter type="COMPLEXITY" missed="1" covered="2"/>
<counter type="METHOD" missed="1" covered="2"/>
<counter type="CLASS" missed="0" covered="1"/>
</report>
<counter type="INSTRUCTION" missed="26" covered="25"/>
<counter type="LINE" missed="6" covered="7"/>
<counter type="COMPLEXITY" missed="6" covered="7"/>
<counter type="METHOD" missed="6" covered="7"/>
<counter type="CLASS" missed="0" covered="3"/>
</report>
65 changes: 0 additions & 65 deletions __tests__/index.test.js

This file was deleted.

78 changes: 78 additions & 0 deletions __tests__/process.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
const fs = require('fs');
const parser = require('xml2js');
const process = require('../src/process');

test("get overall coverage", async () => {
const report = await getReport();
const coverage = process.getOverallCoverage(report);
expect(coverage).toBeCloseTo(49.01, 1);
})

describe("get file coverage", function () {

it("no files changed", async () => {
const report = await getReport();
const changedFiles = [];
const actual = process.getFileCoverage(report, changedFiles);
expect(actual).toEqual([]);
});

it("one file changed", async () => {
const report = await getReport();
const changedFiles = [
{
filePath: "src/main/java/com/madrapps/jacoco/operation/StringOp.java",
url: "https://github.com/thsaravana/jacoco-playground/blob/77b14eb61efcd211ee93a7d8bac80cf292d207cc/src/main/java/com/madrapps/jacoco/operation/StringOp.java"
}
];
const actual = process.getFileCoverage(report, changedFiles);
expect(actual).toEqual([
{
"filePath": "src/main/java/com/madrapps/jacoco/operation/StringOp.java",
"url": "https://github.com/thsaravana/jacoco-playground/blob/77b14eb61efcd211ee93a7d8bac80cf292d207cc/src/main/java/com/madrapps/jacoco/operation/StringOp.java",
"name": "StringOp.java",
"coverage": 100,
}
]);
});

it("multiple files changed", async () => {
const report = await getReport();
const changedFiles = [
{
filePath: "src/main/java/com/madrapps/jacoco/operation/StringOp.java",
url: "https://github.com/thsaravana/jacoco-playground/blob/77b14eb61efcd211ee93a7d8bac80cf292d207cc/src/main/java/com/madrapps/jacoco/operation/StringOp.java"
},
{
filePath: 'src/main/kotlin/com/madrapps/jacoco/Math.kt',
url: 'https://github.com/thsaravana/jacoco-playground/blob/77b14eb61efcd211ee93a7d8bac80cf292d207cc/src/main/kotlin/com/madrapps/jacoco/Math.kt'
},
{
filePath: 'src/test/java/com/madrapps/jacoco/operation/StringOpTest.java',
url: 'https://github.com/thsaravana/jacoco-playground/blob/77b14eb61efcd211ee93a7d8bac80cf292d207cc/src/test/java/com/madrapps/jacoco/operation/StringOpTest.java'
},
];
const actual = process.getFileCoverage(report, changedFiles);
expect(actual).toEqual([
{
"coverage": 46.67,
"filePath": "src/main/kotlin/com/madrapps/jacoco/Math.kt",
"name": "Math.kt",
"url": "https://github.com/thsaravana/jacoco-playground/blob/77b14eb61efcd211ee93a7d8bac80cf292d207cc/src/main/kotlin/com/madrapps/jacoco/Math.kt",
},
{
"filePath": "src/main/java/com/madrapps/jacoco/operation/StringOp.java",
"url": "https://github.com/thsaravana/jacoco-playground/blob/77b14eb61efcd211ee93a7d8bac80cf292d207cc/src/main/java/com/madrapps/jacoco/operation/StringOp.java",
"name": "StringOp.java",
"coverage": 100,
},
]);
});
})

async function getReport() {
const reportPath = "./__tests__/__fixtures__/report.xml";
const reportXml = await fs.promises.readFile(reportPath, "utf-8");
const json = await parser.parseStringPromise(reportXml);
return json["report"];
}
Loading

0 comments on commit 65ff716

Please sign in to comment.