From 60145e408c194a0e2d15c10b26662d3f8b682d58 Mon Sep 17 00:00:00 2001 From: Marcono1234 Date: Tue, 28 Sep 2021 15:47:06 +0200 Subject: [PATCH] Add `file` property to `AnnotationProperties` (#896) --- packages/core/README.md | 5 ++++ packages/core/__tests__/core.test.ts | 39 ++++++++++++++++++++++++++-- packages/core/src/core.ts | 5 ++++ packages/core/src/utils.ts | 1 + 4 files changed, 48 insertions(+), 2 deletions(-) diff --git a/packages/core/README.md b/packages/core/README.md index 6681502d3e..abac1d49a3 100644 --- a/packages/core/README.md +++ b/packages/core/README.md @@ -142,6 +142,11 @@ export interface AnnotationProperties { */ title?: string + /** + * The name of the file for which the annotation should be created. + */ + file?: string + /** * The start line for the annotation. */ diff --git a/packages/core/__tests__/core.test.ts b/packages/core/__tests__/core.test.ts index f5ccec3b29..34cfab95c0 100644 --- a/packages/core/__tests__/core.test.ts +++ b/packages/core/__tests__/core.test.ts @@ -274,13 +274,14 @@ describe('@actions/core', () => { const message = 'this is my error message' core.error(new Error(message), { title: 'A title', + file: 'root/test.txt', startColumn: 1, endColumn: 2, startLine: 5, endLine: 5 }) assertWriteCalls([ - `::error title=A title,line=5,endLine=5,col=1,endColumn=2::Error: ${message}${os.EOL}` + `::error title=A title,file=root/test.txt,line=5,endLine=5,col=1,endColumn=2::Error: ${message}${os.EOL}` ]) }) @@ -304,25 +305,59 @@ describe('@actions/core', () => { const message = 'this is my error message' core.warning(new Error(message), { title: 'A title', + file: 'root/test.txt', startColumn: 1, endColumn: 2, startLine: 5, endLine: 5 }) assertWriteCalls([ - `::warning title=A title,line=5,endLine=5,col=1,endColumn=2::Error: ${message}${os.EOL}` + `::warning title=A title,file=root/test.txt,line=5,endLine=5,col=1,endColumn=2::Error: ${message}${os.EOL}` + ]) + }) + + it('notice sets the correct message', () => { + core.notice('Notice') + assertWriteCalls([`::notice::Notice${os.EOL}`]) + }) + + it('notice escapes the message', () => { + core.notice('\r\nnotice\n') + assertWriteCalls([`::notice::%0D%0Anotice%0A${os.EOL}`]) + }) + + it('notice handles an error object', () => { + const message = 'this is my error message' + core.notice(new Error(message)) + assertWriteCalls([`::notice::Error: ${message}${os.EOL}`]) + }) + + it('notice handles parameters correctly', () => { + const message = 'this is my error message' + core.notice(new Error(message), { + title: 'A title', + file: 'root/test.txt', + startColumn: 1, + endColumn: 2, + startLine: 5, + endLine: 5 + }) + assertWriteCalls([ + `::notice title=A title,file=root/test.txt,line=5,endLine=5,col=1,endColumn=2::Error: ${message}${os.EOL}` ]) }) it('annotations map field names correctly', () => { const commandProperties = toCommandProperties({ title: 'A title', + file: 'root/test.txt', startColumn: 1, endColumn: 2, startLine: 5, endLine: 5 }) expect(commandProperties.title).toBe('A title') + expect(commandProperties.file).toBe('root/test.txt') expect(commandProperties.col).toBe(1) expect(commandProperties.endColumn).toBe(2) expect(commandProperties.line).toBe(5) diff --git a/packages/core/src/core.ts b/packages/core/src/core.ts index e57d9f1549..9ef6aca3a0 100644 --- a/packages/core/src/core.ts +++ b/packages/core/src/core.ts @@ -41,6 +41,11 @@ export interface AnnotationProperties { */ title?: string + /** + * The path of the file for which the annotation should be created. + */ + file?: string + /** * The start line for the annotation. */ diff --git a/packages/core/src/utils.ts b/packages/core/src/utils.ts index 8596b5f41c..c43f387011 100644 --- a/packages/core/src/utils.ts +++ b/packages/core/src/utils.ts @@ -32,6 +32,7 @@ export function toCommandProperties( return { title: annotationProperties.title, + file: annotationProperties.file, line: annotationProperties.startLine, endLine: annotationProperties.endLine, col: annotationProperties.startColumn,