Skip to content

Commit 12ba55c

Browse files
authored
feat: improve anotation message (#97)
1 parent 452cac6 commit 12ba55c

3 files changed

Lines changed: 48 additions & 46 deletions

File tree

dist/index.js

Lines changed: 31 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -10024,20 +10024,20 @@ const showAnnotations = async (compareFileData) => {
1002410024
);
1002510025

1002610026
fileLinesWithChangedFiles.forEach(({ file, lines }) => {
10027-
const linesToDisplay = lines.map((line) =>
10028-
Array.isArray(line) ? line.join("-") : line
10029-
);
10030-
10031-
const linesWord = linesToDisplay.length === 1 ? "line is" : "lines are";
10032-
10033-
const formattedLines = linesToDisplay.join(", ");
10034-
10035-
const message = `file=${file}::${formattedLines} ${linesWord} not covered with tests`;
10036-
10037-
// NOTE: consider an option to show lines directly by attaching 'line' param
10038-
// Need to fix the issue where we consider 'empty line' as covered line
10039-
// Empty lines should not interapt uncovered interval
10040-
core.info(`::${showAnnotationsInput} ${message}`);
10027+
lines.forEach((line) => {
10028+
const message = () => {
10029+
if (Array.isArray(line)) {
10030+
return `file=${file},line=${line[0]},endLine=${
10031+
line[line.length - 1]
10032+
}::${line.join("-")} lines are not covered with tests`;
10033+
}
10034+
return `file=${file},line=${line}::${line} line is not covered with tests`;
10035+
};
10036+
// NOTE: consider an option to show lines directly by attaching 'line' param
10037+
// Need to fix the issue where we consider 'empty line' as covered line
10038+
// Empty lines should not interapt uncovered interval
10039+
core.info(`::${showAnnotationsInput} ${message()}`);
10040+
});
1004110041
});
1004210042
}
1004310043
};
@@ -10572,111 +10572,111 @@ module.exports = JSON.parse('{"name":"axios","version":"0.21.1","description":"P
1057210572
/***/ ((module) => {
1057310573

1057410574
"use strict";
10575-
module.exports = require("assert");;
10575+
module.exports = require("assert");
1057610576

1057710577
/***/ }),
1057810578

1057910579
/***/ 8614:
1058010580
/***/ ((module) => {
1058110581

1058210582
"use strict";
10583-
module.exports = require("events");;
10583+
module.exports = require("events");
1058410584

1058510585
/***/ }),
1058610586

1058710587
/***/ 5747:
1058810588
/***/ ((module) => {
1058910589

1059010590
"use strict";
10591-
module.exports = require("fs");;
10591+
module.exports = require("fs");
1059210592

1059310593
/***/ }),
1059410594

1059510595
/***/ 8605:
1059610596
/***/ ((module) => {
1059710597

1059810598
"use strict";
10599-
module.exports = require("http");;
10599+
module.exports = require("http");
1060010600

1060110601
/***/ }),
1060210602

1060310603
/***/ 7211:
1060410604
/***/ ((module) => {
1060510605

1060610606
"use strict";
10607-
module.exports = require("https");;
10607+
module.exports = require("https");
1060810608

1060910609
/***/ }),
1061010610

1061110611
/***/ 1631:
1061210612
/***/ ((module) => {
1061310613

1061410614
"use strict";
10615-
module.exports = require("net");;
10615+
module.exports = require("net");
1061610616

1061710617
/***/ }),
1061810618

1061910619
/***/ 2087:
1062010620
/***/ ((module) => {
1062110621

1062210622
"use strict";
10623-
module.exports = require("os");;
10623+
module.exports = require("os");
1062410624

1062510625
/***/ }),
1062610626

1062710627
/***/ 5622:
1062810628
/***/ ((module) => {
1062910629

1063010630
"use strict";
10631-
module.exports = require("path");;
10631+
module.exports = require("path");
1063210632

1063310633
/***/ }),
1063410634

1063510635
/***/ 2413:
1063610636
/***/ ((module) => {
1063710637

1063810638
"use strict";
10639-
module.exports = require("stream");;
10639+
module.exports = require("stream");
1064010640

1064110641
/***/ }),
1064210642

1064310643
/***/ 4016:
1064410644
/***/ ((module) => {
1064510645

1064610646
"use strict";
10647-
module.exports = require("tls");;
10647+
module.exports = require("tls");
1064810648

1064910649
/***/ }),
1065010650

1065110651
/***/ 3867:
1065210652
/***/ ((module) => {
1065310653

1065410654
"use strict";
10655-
module.exports = require("tty");;
10655+
module.exports = require("tty");
1065610656

1065710657
/***/ }),
1065810658

1065910659
/***/ 8835:
1066010660
/***/ ((module) => {
1066110661

1066210662
"use strict";
10663-
module.exports = require("url");;
10663+
module.exports = require("url");
1066410664

1066510665
/***/ }),
1066610666

1066710667
/***/ 1669:
1066810668
/***/ ((module) => {
1066910669

1067010670
"use strict";
10671-
module.exports = require("util");;
10671+
module.exports = require("util");
1067210672

1067310673
/***/ }),
1067410674

1067510675
/***/ 8761:
1067610676
/***/ ((module) => {
1067710677

1067810678
"use strict";
10679-
module.exports = require("zlib");;
10679+
module.exports = require("zlib");
1068010680

1068110681
/***/ })
1068210682

@@ -10715,7 +10715,9 @@ module.exports = require("zlib");;
1071510715
/************************************************************************/
1071610716
/******/ /* webpack/runtime/compat */
1071710717
/******/
10718-
/******/ if (typeof __nccwpck_require__ !== 'undefined') __nccwpck_require__.ab = __dirname + "/";/************************************************************************/
10718+
/******/ if (typeof __nccwpck_require__ !== 'undefined') __nccwpck_require__.ab = __dirname + "/";
10719+
/******/
10720+
/************************************************************************/
1071910721
var __webpack_exports__ = {};
1072010722
// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.
1072110723
(() => {

src/features/showAnnotations.js

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -22,20 +22,20 @@ const showAnnotations = async (compareFileData) => {
2222
);
2323

2424
fileLinesWithChangedFiles.forEach(({ file, lines }) => {
25-
const linesToDisplay = lines.map((line) =>
26-
Array.isArray(line) ? line.join("-") : line
27-
);
28-
29-
const linesWord = linesToDisplay.length === 1 ? "line is" : "lines are";
30-
31-
const formattedLines = linesToDisplay.join(", ");
32-
33-
const message = `file=${file}::${formattedLines} ${linesWord} not covered with tests`;
34-
35-
// NOTE: consider an option to show lines directly by attaching 'line' param
36-
// Need to fix the issue where we consider 'empty line' as covered line
37-
// Empty lines should not interapt uncovered interval
38-
core.info(`::${showAnnotationsInput} ${message}`);
25+
lines.forEach((line) => {
26+
const message = () => {
27+
if (Array.isArray(line)) {
28+
return `file=${file},line=${line[0]},endLine=${
29+
line[line.length - 1]
30+
}::${line.join("-")} lines are not covered with tests`;
31+
}
32+
return `file=${file},line=${line}::${line} line is not covered with tests`;
33+
};
34+
// NOTE: consider an option to show lines directly by attaching 'line' param
35+
// Need to fix the issue where we consider 'empty line' as covered line
36+
// Empty lines should not interapt uncovered interval
37+
core.info(`::${showAnnotationsInput} ${message()}`);
38+
});
3939
});
4040
}
4141
};

tests/features/showAnnotations.test.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ describe("features/showAnnotations", () => {
7979
assert.isTrue(mergeFileLinesWithChangedFiles.calledOnce);
8080
assert.isTrue(info.calledTwice);
8181
assert.deepEqual(info.secondCall.args, [
82-
`::warning file=${filename}::${line} line is not covered with tests`
82+
`::warning file=${filename},line=${line}::${line} line is not covered with tests`
8383
]);
8484
});
8585

@@ -111,9 +111,9 @@ describe("features/showAnnotations", () => {
111111
assert.isTrue(getChangedFiles.calledOnce);
112112
assert.isTrue(uncoveredFileLinesByFileNames.calledOnce);
113113
assert.isTrue(mergeFileLinesWithChangedFiles.calledOnce);
114-
assert.isTrue(info.calledTwice);
114+
assert.equal(info.callCount, 4);
115115
assert.deepEqual(info.secondCall.args, [
116-
`::warning file=${filename}::1-4, 8, 45-50 lines are not covered with tests`
116+
`::warning file=${filename},line=1,endLine=4::1-4 lines are not covered with tests`
117117
]);
118118
});
119119
});

0 commit comments

Comments
 (0)