1
0
Fork 0

core: Update parameter defaulting behavior for error/warning/notice to honor an empty object passed in

pull/1696/head
James M. Greene 2024-03-28 10:26:41 -05:00
parent dfc588096e
commit bd74802644
2 changed files with 39 additions and 18 deletions

View File

@ -421,6 +421,12 @@ describe('@actions/core', () => {
])
})
it('error handles an error object and an empty properties', () => {
const message = 'this is my error message'
core.error(new Error(message), {})
assertWriteCalls([`::error::Error: ${message}${os.EOL}`])
})
it('error handles custom properties correctly', () => {
const message = 'this is my error message'
core.error(new Error(message), {
@ -456,6 +462,12 @@ describe('@actions/core', () => {
])
})
it('warning handles an error object and an empty properties', () => {
const message = 'this is my error message'
core.warning(new Error(message), {})
assertWriteCalls([`::warning::Error: ${message}${os.EOL}`])
})
it('warning handles custom properties correctly', () => {
const message = 'this is my error message'
core.warning(new Error(message), {
@ -491,6 +503,12 @@ describe('@actions/core', () => {
])
})
it('notice handles an error object and an empty properties', () => {
const message = 'this is my error message'
core.notice(new Error(message), {})
assertWriteCalls([`::notice::Error: ${message}${os.EOL}`])
})
it('notice handles custom properties correctly', () => {
const message = 'this is my error message'
core.notice(new Error(message), {

View File

@ -245,6 +245,21 @@ export function debug(message: string): void {
issueCommand('debug', {}, message)
}
function defaultAnnotationPropertes(
message: string | Error,
properties: AnnotationProperties | undefined = undefined
): AnnotationProperties {
// If no properties are provided, try to extract them from the Error instance
if (properties === undefined) {
if (message instanceof Error) {
properties = toAnnotationProperties(message)
} else {
properties = {}
}
}
return properties
}
/**
* Adds an error issue
* @param message error issue message. Errors will be converted to string via toString()
@ -252,13 +267,9 @@ export function debug(message: string): void {
*/
export function error(
message: string | Error,
properties: AnnotationProperties = {}
properties: AnnotationProperties | undefined = undefined
): void {
// If no properties are provided, try to extract them from the Error instance
properties =
Object.keys(properties).length === 0 && message instanceof Error
? toAnnotationProperties(message)
: properties
properties = defaultAnnotationPropertes(message, properties)
issueCommand(
'error',
@ -274,13 +285,9 @@ export function error(
*/
export function warning(
message: string | Error,
properties: AnnotationProperties = {}
properties: AnnotationProperties | undefined = undefined
): void {
// If no properties are provided, try to extract them from the Error instance
properties =
Object.keys(properties).length === 0 && message instanceof Error
? toAnnotationProperties(message)
: properties
properties = defaultAnnotationPropertes(message, properties)
issueCommand(
'warning',
@ -296,13 +303,9 @@ export function warning(
*/
export function notice(
message: string | Error,
properties: AnnotationProperties = {}
properties: AnnotationProperties | undefined = undefined
): void {
// If no properties are provided, try to extract them from the Error instance
properties =
Object.keys(properties).length === 0 && message instanceof Error
? toAnnotationProperties(message)
: properties
properties = defaultAnnotationPropertes(message, properties)
issueCommand(
'notice',