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: |
 |
`);
})
})
})