fix: take lines from methods that is not present in class lines

Signed-off-by: Anton Ganhammar <ganhammar@gmail.com>
This commit is contained in:
Anton Ganhammar
2023-08-27 08:58:21 +02:00
parent d409ed988a
commit d1d8ec0b05
7 changed files with 2590 additions and 2486 deletions
@@ -87,10 +87,10 @@ describe('aggregateCoverage', () => {
percentage: 81.55,
},
line: {
available: 2559,
covered: 2027,
missed: 532,
percentage: 79.21,
available: 2632,
covered: 2079,
missed: 553,
percentage: 78.99,
},
timestamp: 1234567890,
},
@@ -105,10 +105,10 @@ describe('aggregateCoverage', () => {
percentage: 67.12,
},
line: {
available: 95,
covered: 77,
missed: 18,
percentage: 81.05,
available: 110,
covered: 91,
missed: 19,
percentage: 82.73,
},
timestamp: 1234567890,
},
@@ -141,10 +141,10 @@ describe('aggregateCoverage', () => {
percentage: 55.26,
},
line: {
available: 169,
covered: 118,
available: 175,
covered: 124,
missed: 51,
percentage: 69.82,
percentage: 70.86,
},
timestamp: 1234567890,
},
@@ -1,7 +1,6 @@
[
{
"filename": "src/main/scala/com/example/Main.scala",
"branchHits": {},
"lineHits": {
"100": 2,
"103": 1,
@@ -81,11 +80,11 @@
"95": 1,
"97": 4,
"99": 1
}
},
"branchHits": {}
},
{
"filename": "src/main/scala/com/example/Other.scala",
"branchHits": {},
"lineHits": {
"103": 6,
"104": 2,
@@ -152,15 +151,16 @@
"92": 4,
"93": 3,
"94": 2
}
},
"branchHits": {}
},
{
"filename": "src/main/scala/com/example/utils/Util.scala",
"branchHits": {},
"lineHits": {
"7": 1,
"8": 2,
"13": 1
}
},
"branchHits": {}
}
]
@@ -1,13 +1,34 @@
[
{
"filename": "src/atoms/BoxShadow/box-shadow.ts",
"branchHits": {},
"lineHits": {
"4": 5
}
},
"branchHits": {}
},
{
"filename": "src/atoms/Button/button.tsx",
"lineHits": {
"17": 41,
"34": 41,
"70": 41,
"72": 41,
"74": 41,
"31": 41,
"32": 41,
"35": 0,
"36": 0,
"37": 0,
"38": 0,
"39": 0,
"40": 0,
"41": 0,
"42": 0,
"43": 0,
"47": 41,
"68": 10,
"75": 41
},
"branchHits": {
"35": {
"covered": 0,
@@ -29,55 +50,113 @@
"missed": 0,
"available": 2
}
},
"lineHits": {
"31": 41,
"32": 41,
"34": 41,
"35": 0,
"36": 0,
"37": 0,
"38": 0,
"39": 0,
"40": 0,
"41": 0,
"42": 0,
"43": 0,
"47": 41,
"68": 10,
"70": 41,
"72": 41,
"75": 41
}
},
{
"filename": "src/atoms/Container/components.ts",
"branchHits": {},
"lineHits": {
"4": 13,
"5": 35,
"13": 13,
"19": 35,
"20": 35,
"23": 35
}
"23": 35,
"4": 13,
"13": 13
},
"branchHits": {}
},
{
"filename": "src/atoms/Container/container.tsx",
"branchHits": {},
"lineHits": {
"12": 35,
"20": 35
}
},
"branchHits": {}
},
{
"filename": "src/atoms/DownArrow/down-arrow.tsx",
"branchHits": {},
"lineHits": {
"3": 28,
"4": 28
}
},
"branchHits": {}
},
{
"filename": "src/molecules/Hero/components.ts",
"lineHits": {
"26": 10,
"28": 10,
"94": 10,
"103": 10,
"121": 10,
"182": 10,
"203": 5,
"218": 5,
"236": 5,
"241": 5,
"249": 4,
"254": 4,
"264": 4,
"277": 4,
"282": 4,
"294": 4,
"299": 3,
"25": 2,
"29": 10,
"37": 3,
"39": 3,
"40": 3,
"42": 3,
"43": 1,
"44": 1,
"45": 0,
"46": 0,
"48": 1,
"52": 0,
"53": 1,
"57": 0,
"59": 1,
"60": 1,
"63": 3,
"95": 10,
"112": 2,
"122": 10,
"125": 9,
"134": 0,
"151": 1,
"170": 2,
"181": 2,
"194": 2,
"204": 5,
"207": 3,
"209": 0,
"211": 1,
"213": 1,
"219": 5,
"222": 3,
"224": 0,
"226": 0,
"228": 1,
"230": 1,
"245": 2,
"255": 4,
"258": 3,
"260": 1,
"265": 4,
"268": 2,
"270": 1,
"272": 1,
"283": 4,
"286": 2,
"288": 1,
"290": 1,
"298": 2,
"304": 2,
"311": 2,
"319": 2,
"329": 2,
"361": 2,
"371": 2
},
"branchHits": {
"29": {
"covered": 2,
@@ -194,89 +273,25 @@
"missed": 1,
"available": 2
}
},
"lineHits": {
"25": 2,
"26": 10,
"29": 10,
"37": 3,
"39": 3,
"40": 3,
"42": 3,
"43": 1,
"44": 1,
"45": 0,
"46": 0,
"48": 1,
"52": 0,
"53": 1,
"57": 0,
"59": 1,
"60": 1,
"63": 3,
"95": 10,
"103": 10,
"112": 2,
"122": 10,
"125": 9,
"134": 0,
"151": 1,
"170": 2,
"181": 2,
"182": 10,
"194": 2,
"204": 5,
"207": 3,
"209": 0,
"211": 1,
"213": 1,
"219": 5,
"222": 3,
"224": 0,
"226": 0,
"228": 1,
"230": 1,
"236": 5,
"241": 5,
"245": 2,
"249": 4,
"255": 4,
"258": 3,
"260": 1,
"265": 4,
"268": 2,
"270": 1,
"272": 1,
"277": 4,
"283": 4,
"286": 2,
"288": 1,
"290": 1,
"294": 4,
"298": 2,
"299": 3,
"304": 2,
"311": 2,
"319": 2,
"329": 2,
"361": 2,
"371": 2
}
},
{
"filename": "src/molecules/Hero/hero.tsx",
"lineHits": {
"40": 10,
"72": 0,
"127": 3,
"56": 10,
"58": 10,
"73": 0,
"128": 3
},
"branchHits": {
"73": {
"covered": 0,
"missed": 2,
"available": 2
}
},
"lineHits": {
"56": 10,
"58": 10,
"73": 0,
"128": 3
}
}
]
@@ -1,7 +1,6 @@
[
{
"filename": "Sources/TDSOptions.m",
"branchHits": {},
"lineHits": {
"32": 0,
"33": 0,
@@ -39,11 +38,11 @@
"75": 0,
"76": 0,
"77": 0
}
},
"branchHits": {}
},
{
"filename": "Sources/TDSUserLock.m",
"branchHits": {},
"lineHits": {
"17": 0,
"18": 0,
@@ -89,11 +88,11 @@
"68": 0,
"69": 0,
"70": 0
}
},
"branchHits": {}
},
{
"filename": "Sources/TDSUserManager.m",
"branchHits": {},
"lineHits": {
"24": 0,
"25": 0,
@@ -329,11 +328,11 @@
"294": 0,
"295": 0,
"296": 0
}
},
"branchHits": {}
},
{
"filename": "Sources/TDSUtil.m",
"branchHits": {},
"lineHits": {
"8": 0,
"9": 0,
@@ -346,6 +345,7 @@
"18": 0,
"19": 0,
"20": 0
}
},
"branchHits": {}
}
]
@@ -1,7 +1,6 @@
[
{
"filename": "src/graphql/queries.ts",
"branchHits": {},
"lineHits": {
"1": 3,
"3": 3,
@@ -10,10 +9,95 @@
"80": 3,
"92": 3,
"138": 3
}
},
"branchHits": {}
},
{
"filename": "src/graphql/resolvers.ts",
"lineHits": {
"22": 17,
"28": 4,
"36": 4,
"27": 4,
"35": 4,
"43": 9,
"51": 4,
"56": 4,
"61": 4,
"50": 4,
"55": 4,
"60": 4,
"128": 7,
"139": 4,
"145": 4,
"160": 4,
"177": 4,
"185": 4,
"70": 4,
"78": 4,
"81": 4,
"84": 4,
"97": 4,
"103": 4,
"114": 4,
"144": 4,
"159": 4,
"176": 4,
"184": 4,
"1": 4,
"2": 4,
"3": 4,
"5": 4,
"6": 4,
"7": 4,
"8": 4,
"9": 4,
"10": 4,
"14": 4,
"21": 4,
"24": 17,
"32": 10,
"37": 12,
"42": 4,
"45": 9,
"47": 9,
"52": 11,
"57": 4,
"62": 4,
"67": 4,
"73": 8,
"83": 4,
"85": 4,
"86": 4,
"87": 4,
"88": 4,
"94": 4,
"95": 4,
"98": 4,
"104": 4,
"107": 4,
"115": 4,
"118": 4,
"119": 4,
"120": 0,
"124": 4,
"130": 7,
"132": 7,
"134": 7,
"136": 7,
"140": 4,
"151": 4,
"165": 4,
"166": 4,
"167": 4,
"168": 1,
"169": 4,
"178": 3,
"186": 9,
"187": 9,
"193": 2,
"194": 0
},
"branchHits": {
"86": {
"covered": 2,
@@ -40,89 +124,33 @@
"missed": 1,
"available": 2
}
},
"lineHits": {
"1": 4,
"2": 4,
"3": 4,
"5": 4,
"6": 4,
"7": 4,
"8": 4,
"9": 4,
"10": 4,
"14": 4,
"21": 4,
"24": 17,
"27": 4,
"28": 4,
"32": 10,
"35": 4,
"36": 4,
"37": 12,
"42": 4,
"45": 9,
"47": 9,
"50": 4,
"51": 4,
"52": 11,
"55": 4,
"56": 4,
"57": 4,
"60": 4,
"61": 4,
"62": 4,
"67": 4,
"70": 4,
"73": 8,
"78": 4,
"81": 4,
"83": 4,
"85": 4,
"86": 4,
"87": 4,
"88": 4,
"94": 4,
"95": 4,
"97": 4,
"98": 4,
"103": 4,
"104": 4,
"107": 4,
"114": 4,
"115": 4,
"118": 4,
"119": 4,
"120": 0,
"124": 4,
"130": 7,
"132": 7,
"134": 7,
"136": 7,
"140": 4,
"144": 4,
"145": 4,
"151": 4,
"159": 4,
"160": 4,
"165": 4,
"166": 4,
"167": 4,
"168": 1,
"169": 4,
"176": 4,
"177": 4,
"178": 3,
"184": 4,
"185": 4,
"186": 9,
"187": 9,
"193": 2,
"194": 0
}
},
{
"filename": "src/graphql/router.ts",
"lineHits": {
"21": 1,
"22": 1,
"43": 3,
"53": 18,
"12": 3,
"14": 3,
"23": 1,
"26": 0,
"32": 1,
"33": 1,
"34": 1,
"37": 0,
"54": 11,
"55": 0,
"57": 11,
"58": 11,
"63": 11,
"64": 11,
"65": 10,
"66": 10,
"68": 1
},
"branchHits": {
"23": {
"covered": 3,
@@ -149,55 +177,45 @@
"missed": 1,
"available": 2
}
},
"lineHits": {
"12": 3,
"14": 3,
"22": 1,
"23": 1,
"26": 0,
"32": 1,
"33": 1,
"34": 1,
"37": 0,
"43": 3,
"53": 18,
"54": 11,
"55": 0,
"57": 11,
"58": 11,
"63": 11,
"64": 11,
"65": 10,
"66": 10,
"68": 1
}
},
{
"filename": "src/graphql/schema.ts",
"branchHits": {
"11": {
"covered": 0,
"missed": 1,
"available": 1
}
},
"lineHits": {
"9": 3,
"1": 3,
"2": 3,
"4": 3,
"5": 3,
"9": 3,
"11": 0,
"13": 4,
"15": 4,
"16": 4,
"17": 4,
"19": 4
},
"branchHits": {
"11": {
"covered": 0,
"missed": 1,
"available": 1
}
}
},
{
"filename": "src/graphql/transforms.ts",
"lineHits": {
"9": 4,
"20": 4,
"13": 6,
"14": 2,
"15": 6,
"16": 1,
"17": 6,
"23": 1,
"24": 0,
"25": 1
},
"branchHits": {
"13": {
"covered": 2,
@@ -214,22 +232,36 @@
"missed": 1,
"available": 2
}
},
"lineHits": {
"9": 4,
"13": 6,
"14": 2,
"15": 6,
"16": 1,
"17": 6,
"20": 4,
"23": 1,
"24": 0,
"25": 1
}
},
{
"filename": "src/workers/primary-worker.js",
"lineHits": {
"16": 0,
"25": 0,
"49": 0,
"2": 0,
"3": 0,
"4": 0,
"5": 0,
"6": 0,
"8": 0,
"17": 0,
"21": 0,
"22": 0,
"23": 0,
"24": 0,
"27": 0,
"28": 0,
"31": 0,
"33": 0,
"34": 0,
"37": 0,
"38": 0,
"48": 0,
"51": 0,
"53": 0
},
"branchHits": {
"17": {
"covered": 0,
@@ -246,36 +278,32 @@
"missed": 2,
"available": 2
}
},
"lineHits": {
"2": 0,
"3": 0,
"4": 0,
"5": 0,
"6": 0,
"8": 0,
"16": 0,
"17": 0,
"21": 0,
"22": 0,
"23": 0,
"24": 0,
"25": 0,
"27": 0,
"28": 0,
"31": 0,
"33": 0,
"34": 0,
"37": 0,
"38": 0,
"48": 0,
"49": 0,
"51": 0,
"53": 0
}
},
{
"filename": "src/workers/secondary-worker.js",
"lineHits": {
"4": 0,
"13": 0,
"2": 0,
"5": 0,
"9": 0,
"10": 0,
"11": 0,
"12": 0,
"14": 0,
"15": 0,
"16": 0,
"18": 0,
"19": 0,
"22": 0,
"23": 0,
"24": 0,
"25": 0,
"26": 0,
"27": 0,
"29": 0
},
"branchHits": {
"5": {
"covered": 0,
@@ -292,28 +320,6 @@
"missed": 2,
"available": 2
}
},
"lineHits": {
"2": 0,
"4": 0,
"5": 0,
"9": 0,
"10": 0,
"11": 0,
"12": 0,
"13": 0,
"14": 0,
"15": 0,
"16": 0,
"18": 0,
"19": 0,
"22": 0,
"23": 0,
"24": 0,
"25": 0,
"26": 0,
"27": 0,
"29": 0
}
}
]
@@ -107,10 +107,20 @@ export class Cobertura implements Converter {
* @param clz - class coverage information
*/
private extractLines(clz: InnerClass): Array<LineHit> {
const lines = clz.lines
const classLines = clz.lines.flatMap(l => l.line);
const methodLines = clz.methods
?.flatMap(m => m.method)
.filter(Boolean)
.flatMap(m => m.lines)
.filter(Boolean)
.flatMap(l => l.line)
.flat()
.filter(Boolean);
.filter(
({ $: methodLine }) =>
classLines.some(
({ $: classLine }) => methodLine.number === classLine.number,
) === false,
);
const lines = [classLines, methodLines].flat().filter(Boolean);
const lineHits = lines.map(l => {
return {
number: parseInt(l.$.number as unknown as string, 10),