From e057fc5196e3bb8cfa0375016cd03c9a93db6462 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philipp=20F=C3=B6dermayr?= Date: Mon, 12 Nov 2018 21:01:45 +0100 Subject: [PATCH 1/3] Add severity support for vso formatter --- src/formatters/vsoFormatter.ts | 3 +- test/formatters/vsoFormatterTests.ts | 42 +++++++++++++++++++++++----- 2 files changed, 37 insertions(+), 8 deletions(-) diff --git a/src/formatters/vsoFormatter.ts b/src/formatters/vsoFormatter.ts index 52f132032d3..6a06d812ef5 100644 --- a/src/formatters/vsoFormatter.ts +++ b/src/formatters/vsoFormatter.ts @@ -39,13 +39,14 @@ export class Formatter extends AbstractFormatter { const outputLines = failures.map((failure: RuleFailure) => { const fileName = failure.getFileName(); const failureString = failure.getFailure(); + const failureSeverity = failure.getRuleSeverity(); const lineAndCharacter = failure.getStartPosition().getLineAndCharacter(); const line = lineAndCharacter.line + 1; const character = lineAndCharacter.character + 1; const code = failure.getRuleName(); const properties = `sourcepath=${fileName};linenumber=${line};columnnumber=${character};code=${code};`; - return `##vso[task.logissue type=warning;${properties}]${failureString}`; + return `##vso[task.logissue type=${failureSeverity};${properties}]${failureString}`; }); return `${outputLines.join("\n")}\n`; diff --git a/test/formatters/vsoFormatterTests.ts b/test/formatters/vsoFormatterTests.ts index cb1a767fabf..2cdc0c6bc2c 100644 --- a/test/formatters/vsoFormatterTests.ts +++ b/test/formatters/vsoFormatterTests.ts @@ -49,9 +49,9 @@ describe("VSO Formatter", () => { ]; const expectedResult = - getFailureString(TEST_FILE, 1, 1, "first failure", "first-name") + - getFailureString(TEST_FILE, 2, 12, "mid failure", "mid-name") + - getFailureString(TEST_FILE, 9, 2, "last failure", "last-name"); + getFailureString(TEST_FILE, 1, 1, "first failure", "first-name", "error") + + getFailureString(TEST_FILE, 2, 12, "mid failure", "mid-name", "error") + + getFailureString(TEST_FILE, 9, 2, "last failure", "last-name", "error"); const actualResult = formatter.format(failures); assert.equal(actualResult, expectedResult); @@ -75,9 +75,9 @@ describe("VSO Formatter", () => { ]; const expectedResult = - getFailureString(TEST_FILE, 1, 1, "first failure", "first-name") + - getFailureString(TEST_FILE, 2, 12, "mid failure", "mid-name") + - getFailureString(TEST_FILE, 9, 2, "last failure", "last-name"); + getFailureString(TEST_FILE, 1, 1, "first failure", "first-name", "error") + + getFailureString(TEST_FILE, 2, 12, "mid failure", "mid-name", "error") + + getFailureString(TEST_FILE, 9, 2, "last failure", "last-name", "error"); const fixed = failures.slice(); @@ -85,6 +85,32 @@ describe("VSO Formatter", () => { assert.equal(actualResult, expectedResult); }); + it("outputs correct severity", () => { + const maxPosition = sourceFile.getFullWidth(); + + const failures = [ + createFailure(sourceFile, 0, 1, "first failure", "first-name", undefined, "error"), + createFailure(sourceFile, 32, 36, "mid failure", "mid-name", undefined, "warning"), + createFailure( + sourceFile, + maxPosition - 1, + maxPosition, + "last failure", + "last-name", + undefined, + "error", + ), + ]; + + const expectedResult = + getFailureString(TEST_FILE, 1, 1, "first failure", "first-name", "error") + + getFailureString(TEST_FILE, 2, 12, "mid failure", "mid-name", "warning") + + getFailureString(TEST_FILE, 9, 2, "last failure", "last-name", "error"); + + const actualResult = formatter.format(failures); + assert.equal(actualResult, expectedResult); + }); + it("handles no failures", () => { const result = formatter.format([]); assert.equal(result, "\n"); @@ -96,7 +122,9 @@ describe("VSO Formatter", () => { character: number, reason: string, code: string, + severity: string, ) { - return `##vso[task.logissue type=warning;sourcepath=${file};linenumber=${line};columnnumber=${character};code=${code};]${reason}\n`; + const properties = `sourcepath=${file};linenumber=${line};columnnumber=${character};code=${code};`; + return `##vso[task.logissue type=${severity};${properties}]${reason}\n`; } }); From 9d41c7dcc03bf008c0ac3bbc0b363c6fc0f3ab89 Mon Sep 17 00:00:00 2001 From: Josh Goldberg Date: Sat, 5 Oct 2019 09:52:30 +0900 Subject: [PATCH 2/3] Irrelevant change to get CircleCI to run again --- test/formatters/vsoFormatterTests.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/test/formatters/vsoFormatterTests.ts b/test/formatters/vsoFormatterTests.ts index 2cdc0c6bc2c..92518a2c5bc 100644 --- a/test/formatters/vsoFormatterTests.ts +++ b/test/formatters/vsoFormatterTests.ts @@ -125,6 +125,7 @@ describe("VSO Formatter", () => { severity: string, ) { const properties = `sourcepath=${file};linenumber=${line};columnnumber=${character};code=${code};`; + return `##vso[task.logissue type=${severity};${properties}]${reason}\n`; } }); From 7fec778dbabc784be9a242058097b1e6f50e2a41 Mon Sep 17 00:00:00 2001 From: Josh Goldberg Date: Sat, 5 Oct 2019 09:53:03 +0900 Subject: [PATCH 3/3] Revert "Irrelevant change to get CircleCI to run again" This reverts commit 9d41c7dcc03bf008c0ac3bbc0b363c6fc0f3ab89. --- test/formatters/vsoFormatterTests.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/test/formatters/vsoFormatterTests.ts b/test/formatters/vsoFormatterTests.ts index 92518a2c5bc..2cdc0c6bc2c 100644 --- a/test/formatters/vsoFormatterTests.ts +++ b/test/formatters/vsoFormatterTests.ts @@ -125,7 +125,6 @@ describe("VSO Formatter", () => { severity: string, ) { const properties = `sourcepath=${file};linenumber=${line};columnnumber=${character};code=${code};`; - return `##vso[task.logissue type=${severity};${properties}]${reason}\n`; } });