diff --git a/sources/src/job-summary.ts b/sources/src/job-summary.ts index ec3a69e5..adac66d0 100644 --- a/sources/src/job-summary.ts +++ b/sources/src/job-summary.ts @@ -78,7 +78,7 @@ Note that this permission is never available for a workflow triggered from a rep return mainWarning } -function renderSummaryTable(results: BuildResult[]): string { +export function renderSummaryTable(results: BuildResult[]): string { return `${renderDeprecations()}\n${renderBuildResults(results)}` } diff --git a/sources/test/jest/job-summary.test.ts b/sources/test/jest/job-summary.test.ts new file mode 100644 index 00000000..c38021e3 --- /dev/null +++ b/sources/test/jest/job-summary.test.ts @@ -0,0 +1,177 @@ +import { BuildResult } from '../../src/build-results' +import { renderSummaryTable } from '../../src/job-summary' +import dedent from 'dedent' + + +const successfulHelpBuild: BuildResult = { + rootProjectName: 'root', + rootProjectDir: '/', + requestedTasks: 'help', + gradleVersion: '8.0', + gradleHomeDir: '/opt/gradle', + buildFailed: false, + buildScanUri: 'https://scans.gradle.com/s/abc123', + buildScanFailed: false +} + +const failedHelpBuild: BuildResult = { + ...successfulHelpBuild, + buildFailed: true +} + +const longArgsBuild: BuildResult = { + ...successfulHelpBuild, + requestedTasks: 'check publishMyLongNamePluginPublicationToMavenCentral publishMyLongNamePluginPublicationToPluginPortal', +} + +const scanPublishDisabledBuild: BuildResult = { + ...successfulHelpBuild, + buildScanUri: '', + buildScanFailed: false, +} + +const scanPublishFailedBuild: BuildResult = { + ...successfulHelpBuild, + buildScanUri: '', + buildScanFailed: true, +} + +describe('renderSummaryTable', () => { + describe('renders', () => { + it('successful build', () => { + const table = renderSummaryTable([successfulHelpBuild]) + expect(table.trim()).toBe(dedent` + + + + + + + + + + + + + + + +
Gradle Root ProjectRequested TasksGradle VersionBuild OutcomeBuild Scan®
roothelp8.0:white_check_mark:Build Scan PUBLISHED
+ `); + }) + it('failed build', () => { + const table = renderSummaryTable([failedHelpBuild]) + expect(table.trim()).toBe(dedent` + + + + + + + + + + + + + + + +
Gradle Root ProjectRequested TasksGradle VersionBuild OutcomeBuild Scan®
roothelp8.0:x:Build Scan PUBLISHED
+ `); + }) + describe('when build scan', () => { + it('publishing disabled', () => { + const table = renderSummaryTable([scanPublishDisabledBuild]) + expect(table.trim()).toBe(dedent` + + + + + + + + + + + + + + + +
Gradle Root ProjectRequested TasksGradle VersionBuild OutcomeBuild Scan®
roothelp8.0:white_check_mark:Build Scan NOT_PUBLISHED
+ `); + }) + it('publishing failed', () => { + const table = renderSummaryTable([scanPublishFailedBuild]) + expect(table.trim()).toBe(dedent` + + + + + + + + + + + + + + + +
Gradle Root ProjectRequested TasksGradle VersionBuild OutcomeBuild Scan®
roothelp8.0:white_check_mark:Build Scan PUBLISH_FAILED
+ `); + }) + }) + it('multiple builds', () => { + const table = renderSummaryTable([successfulHelpBuild, failedHelpBuild]) + expect(table.trim()).toBe(dedent` + + + + + + + + + + + + + + + + + + + + + + +
Gradle Root ProjectRequested TasksGradle VersionBuild OutcomeBuild Scan®
roothelp8.0:white_check_mark:Build Scan PUBLISHED
roothelp8.0:x:Build Scan PUBLISHED
+ `); + }) + it('truncating long requested tasks', () => { + const table = renderSummaryTable([longArgsBuild]) + expect(table.trim()).toBe(dedent` + + + + + + + + + + + + + + + +
Gradle Root ProjectRequested TasksGradle VersionBuild OutcomeBuild Scan®
root
check publishMyLongNamePluginPublicationToMavenCentral publ…
8.0:white_check_mark:Build Scan PUBLISHED
+ `); + }) + }) +})