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 Project |
+ Requested Tasks |
+ Gradle Version |
+ Build Outcome |
+ Build Scan® |
+
+
+ root |
+ help |
+ 8.0 |
+ :white_check_mark: |
+  |
+
+
+ `);
+ })
+ it('failed build', () => {
+ const table = renderSummaryTable([failedHelpBuild])
+ expect(table.trim()).toBe(dedent`
+
+
+ Gradle Root Project |
+ Requested Tasks |
+ Gradle Version |
+ Build Outcome |
+ Build Scan® |
+
+
+ root |
+ help |
+ 8.0 |
+ :x: |
+  |
+
+
+ `);
+ })
+ describe('when build scan', () => {
+ it('publishing disabled', () => {
+ const table = renderSummaryTable([scanPublishDisabledBuild])
+ expect(table.trim()).toBe(dedent`
+
+
+ Gradle Root Project |
+ Requested Tasks |
+ Gradle Version |
+ Build Outcome |
+ Build Scan® |
+
+
+ root |
+ help |
+ 8.0 |
+ :white_check_mark: |
+  |
+
+
+ `);
+ })
+ it('publishing failed', () => {
+ const table = renderSummaryTable([scanPublishFailedBuild])
+ expect(table.trim()).toBe(dedent`
+
+
+ Gradle Root Project |
+ Requested Tasks |
+ Gradle Version |
+ Build Outcome |
+ Build Scan® |
+
+
+ root |
+ help |
+ 8.0 |
+ :white_check_mark: |
+  |
+
+
+ `);
+ })
+ })
+ it('multiple builds', () => {
+ const table = renderSummaryTable([successfulHelpBuild, failedHelpBuild])
+ expect(table.trim()).toBe(dedent`
+
+
+ Gradle Root Project |
+ Requested Tasks |
+ Gradle Version |
+ Build Outcome |
+ Build Scan® |
+
+
+ root |
+ help |
+ 8.0 |
+ :white_check_mark: |
+  |
+
+
+ root |
+ help |
+ 8.0 |
+ :x: |
+  |
+
+
+ `);
+ })
+ it('truncating long requested tasks', () => {
+ const table = renderSummaryTable([longArgsBuild])
+ expect(table.trim()).toBe(dedent`
+
+
+ Gradle Root Project |
+ Requested Tasks |
+ Gradle Version |
+ Build Outcome |
+ Build Scan® |
+
+
+ root |
+ check publishMyLongNamePluginPublicationToMavenCentral publ… |
+ 8.0 |
+ :white_check_mark: |
+  |
+
+
+ `);
+ })
+ })
+})