Feature: Add summary title

Add new option `report-title` to add H1 title to the Markdown report

Resolves #540
This commit is contained in:
Michael Marcus 2025-03-27 12:33:59 -04:00 committed by Jozef Izso
parent d1bf678c89
commit 0841c8130e
20 changed files with 65 additions and 8 deletions

View file

@ -47,6 +47,7 @@ class TestReporter {
readonly onlySummary = core.getInput('only-summary', {required: false}) === 'true'
readonly useActionsSummary = core.getInput('use-actions-summary', {required: false}) === 'true'
readonly badgeTitle = core.getInput('badge-title', {required: false})
readonly reportTitle = core.getInput('report-title', {required: false})
readonly token = core.getInput('token', {required: true})
readonly octokit: InstanceType<typeof GitHub>
readonly context = getCheckRunContext()
@ -164,11 +165,19 @@ class TestReporter {
}
}
const {listSuites, listTests, onlySummary, useActionsSummary, badgeTitle} = this
const {listSuites, listTests, onlySummary, useActionsSummary, badgeTitle, reportTitle} = this
let baseUrl = ''
if (this.useActionsSummary) {
const summary = getReport(results, {listSuites, listTests, baseUrl, onlySummary, useActionsSummary, badgeTitle})
const summary = getReport(results, {
listSuites,
listTests,
baseUrl,
onlySummary,
useActionsSummary,
badgeTitle,
reportTitle
})
core.info('Summary content:')
core.info(summary)
@ -188,7 +197,15 @@ class TestReporter {
core.info('Creating report summary')
baseUrl = createResp.data.html_url as string
const summary = getReport(results, {listSuites, listTests, baseUrl, onlySummary, useActionsSummary, badgeTitle})
const summary = getReport(results, {
listSuites,
listTests,
baseUrl,
onlySummary,
useActionsSummary,
badgeTitle,
reportTitle
})
core.info('Creating annotations')
const annotations = getAnnotations(results, this.maxAnnotations)

View file

@ -15,6 +15,7 @@ export interface ReportOptions {
onlySummary: boolean
useActionsSummary: boolean
badgeTitle: string
reportTitle: string
}
const defaultOptions: ReportOptions = {
@ -23,7 +24,8 @@ const defaultOptions: ReportOptions = {
baseUrl: '',
onlySummary: false,
useActionsSummary: true,
badgeTitle: 'tests'
badgeTitle: 'tests',
reportTitle: 'Test Results'
}
export function getReport(results: TestRunResult[], options: ReportOptions = defaultOptions): string {
@ -101,6 +103,8 @@ function getByteLength(text: string): number {
function renderReport(results: TestRunResult[], options: ReportOptions): string[] {
const sections: string[] = []
sections.push(`# ${options.reportTitle}`)
const badge = getReportBadge(results, options)
sections.push(badge)