import dedent from 'dedent' import {describe, expect, it} from '@jest/globals' import {BuildResult} from '../../src/build-results' import {renderSummaryTable} from '../../src/job-summary' const successfulHelpBuild: BuildResult = { rootProjectName: 'root', rootProjectDir: '/', requestedTasks: 'help', gradleVersion: '8.0', gradleHomeDir: '/opt/gradle', buildFailed: false, configCacheHit: 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: Build Scan published
`); }) 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: Build Scan published
`); }) 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: Build Scan not published
`); }) 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: Build Scan publish failed
`); }) }) 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: Build Scan published
root help 8.0 :x: Build Scan published
`); }) 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: Build Scan published
`); }) }) })