Skip to content

Commit

Permalink
feature(report): adds support for 'instability' type rules in the azu…
Browse files Browse the repository at this point in the history
…re-devops reporter
  • Loading branch information
sverweij committed Jul 8, 2023
1 parent 83c7930 commit c790d0a
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 10 deletions.
14 changes: 13 additions & 1 deletion src/report/azure-devops.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,18 @@ function formatReachabilityViolation(pViolation) {
} (via ${pViolation.via.join(" -> ")})`;
}

/**
* @param {import("../../types/violations.js").IViolation} pViolation
* @returns {string}
*/
function formatInstabilityViolation(pViolation) {
return `${pViolation.rule.name}: ${pViolation.from} -> ${
pViolation.to
} (instability: ${formatPercentage(
pViolation.metrics.from.instability
)} -> ${formatPercentage(pViolation.metrics.to.instability)})`;
}

/**
* @param {import("../../types/violations.js").IViolation} pViolation
* @returns {string}
Expand All @@ -68,7 +80,7 @@ function formatViolation(pViolation) {
dependency: formatDependencyViolation,
cycle: formatCycleViolation,
reachability: formatReachabilityViolation,
// instability: formatInstabilityViolation,
instability: formatInstabilityViolation,
};
let lFormattedViolators = _formatViolation(
pViolation,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
##vso[task.logissue type=warning;sourcepath=src/more-stable.js]sdp: src/more-stable.js -> src/less-stable.js (instability: 42% -> 100%)
##vso[task.complete result=SucceededWithIssues;]1 dependency violations (0 error, 1 warning/ informational). 3 modules, 3 dependencies cruised
20 changes: 11 additions & 9 deletions test/report/azure-devops/azure-devops.spec.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import circulars from "./__mocks__/circular-deps.mjs";
import vias from "./__mocks__/via-deps.mjs";
// import unsupportedErrorLevels from "./__mocks__/unsupported-severity.mjs";
// import knownViolations from "./__mocks__/known-violations.mjs";
// import instabilities from "./__mocks__/instabilities.mjs";
import instabilities from "./__mocks__/instabilities.mjs";

function readFixture(pRelativePath) {
return readFileSync(
Expand Down Expand Up @@ -105,16 +105,18 @@ describe("[I] report/azure-devops", () => {
expect(lResult.exitCode).to.equal(4);
});

// it("renders instability transgressions", () => {
// const lFixture = readFixture(
// "__mocks__/instabilities-azure-devops-format.txt"
// );
// const lResult = render(instabilities);
it("renders instability transgressions", () => {
const lFixture = readFixture(
"__mocks__/instabilities-azure-devops-format.txt"
);
const lResult = render(instabilities);

// expect(lResult.output).to.equal(lFixture);
expect(normalizeNewline(lResult.output)).to.equal(
normalizeNewline(lFixture)
);

// expect(lResult.exitCode).to.equal(0);
// });
expect(lResult.exitCode).to.equal(0);
});

// it("renders unsupported error levels (like 'ignore') as 'info'", () => {
// const lFixture = readFixture(
Expand Down

0 comments on commit c790d0a

Please sign in to comment.