mirror of
https://github.com/dorny/test-reporter.git
synced 2025-12-15 13:57:09 +01:00
Update all tests
This commit is contained in:
parent
0f47a5bec1
commit
f1fa471229
11 changed files with 6878 additions and 432 deletions
File diff suppressed because it is too large
Load diff
|
|
@ -3,7 +3,7 @@ import * as path from 'path'
|
||||||
|
|
||||||
import {DartJsonParser} from '../src/parsers/dart-json/dart-json-parser'
|
import {DartJsonParser} from '../src/parsers/dart-json/dart-json-parser'
|
||||||
import {ParseOptions} from '../src/test-parser'
|
import {ParseOptions} from '../src/test-parser'
|
||||||
import {getReport} from '../src/report/get-report'
|
import {DEFAULT_OPTIONS, getReport} from '../src/report/get-report'
|
||||||
import {normalizeFilePath} from '../src/utils/path-utils'
|
import {normalizeFilePath} from '../src/utils/path-utils'
|
||||||
|
|
||||||
describe('dart-json tests', () => {
|
describe('dart-json tests', () => {
|
||||||
|
|
@ -66,4 +66,66 @@ describe('dart-json tests', () => {
|
||||||
fs.mkdirSync(path.dirname(outputPath), {recursive: true})
|
fs.mkdirSync(path.dirname(outputPath), {recursive: true})
|
||||||
fs.writeFileSync(outputPath, report)
|
fs.writeFileSync(outputPath, report)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
it('report does not include a title by default', async () => {
|
||||||
|
const fixturePath = path.join(__dirname, 'fixtures', 'dart-json.json')
|
||||||
|
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||||
|
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||||
|
|
||||||
|
const opts: ParseOptions = {
|
||||||
|
parseErrors: true,
|
||||||
|
trackedFiles: []
|
||||||
|
}
|
||||||
|
|
||||||
|
const parser = new DartJsonParser(opts, 'dart')
|
||||||
|
const result = await parser.parse(filePath, fileContent)
|
||||||
|
const report = getReport([result])
|
||||||
|
// Report should have the badge as the first line
|
||||||
|
expect(report).toMatch(/^!\[Tests failed]/)
|
||||||
|
})
|
||||||
|
|
||||||
|
it.each([
|
||||||
|
['empty string', ''],
|
||||||
|
['space', ' '],
|
||||||
|
['tab', '\t'],
|
||||||
|
['newline', '\n']
|
||||||
|
])('report does not include a title when configured value is %s', async (_, reportTitle) => {
|
||||||
|
const fixturePath = path.join(__dirname, 'fixtures', 'dart-json.json')
|
||||||
|
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||||
|
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||||
|
|
||||||
|
const opts: ParseOptions = {
|
||||||
|
parseErrors: true,
|
||||||
|
trackedFiles: []
|
||||||
|
}
|
||||||
|
|
||||||
|
const parser = new DartJsonParser(opts, 'dart')
|
||||||
|
const result = await parser.parse(filePath, fileContent)
|
||||||
|
const report = getReport([result], {
|
||||||
|
...DEFAULT_OPTIONS,
|
||||||
|
reportTitle
|
||||||
|
})
|
||||||
|
// Report should have the badge as the first line
|
||||||
|
expect(report).toMatch(/^!\[Tests failed]/)
|
||||||
|
})
|
||||||
|
|
||||||
|
it('report includes a custom report title', async () => {
|
||||||
|
const fixturePath = path.join(__dirname, 'fixtures', 'dart-json.json')
|
||||||
|
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||||
|
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||||
|
|
||||||
|
const opts: ParseOptions = {
|
||||||
|
parseErrors: true,
|
||||||
|
trackedFiles: []
|
||||||
|
}
|
||||||
|
|
||||||
|
const parser = new DartJsonParser(opts, 'dart')
|
||||||
|
const result = await parser.parse(filePath, fileContent)
|
||||||
|
const report = getReport([result], {
|
||||||
|
...DEFAULT_OPTIONS,
|
||||||
|
reportTitle: 'My Custom Title'
|
||||||
|
})
|
||||||
|
// Report should have the title as the first line
|
||||||
|
expect(report).toMatch(/^# My Custom Title\n/)
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ import * as path from 'path'
|
||||||
|
|
||||||
import {DotnetNunitParser} from '../src/parsers/dotnet-nunit/dotnet-nunit-parser'
|
import {DotnetNunitParser} from '../src/parsers/dotnet-nunit/dotnet-nunit-parser'
|
||||||
import {ParseOptions} from '../src/test-parser'
|
import {ParseOptions} from '../src/test-parser'
|
||||||
import {getReport} from '../src/report/get-report'
|
import {DEFAULT_OPTIONS, getReport} from '../src/report/get-report'
|
||||||
import {normalizeFilePath} from '../src/utils/path-utils'
|
import {normalizeFilePath} from '../src/utils/path-utils'
|
||||||
|
|
||||||
describe('dotnet-nunit tests', () => {
|
describe('dotnet-nunit tests', () => {
|
||||||
|
|
@ -26,4 +26,66 @@ describe('dotnet-nunit tests', () => {
|
||||||
fs.mkdirSync(path.dirname(outputPath), {recursive: true})
|
fs.mkdirSync(path.dirname(outputPath), {recursive: true})
|
||||||
fs.writeFileSync(outputPath, report)
|
fs.writeFileSync(outputPath, report)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
it('report does not include a title by default', async () => {
|
||||||
|
const fixturePath = path.join(__dirname, 'fixtures', 'dotnet-nunit.xml')
|
||||||
|
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||||
|
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||||
|
|
||||||
|
const opts: ParseOptions = {
|
||||||
|
parseErrors: true,
|
||||||
|
trackedFiles: []
|
||||||
|
}
|
||||||
|
|
||||||
|
const parser = new DotnetNunitParser(opts)
|
||||||
|
const result = await parser.parse(filePath, fileContent)
|
||||||
|
const report = getReport([result])
|
||||||
|
// Report should have the badge as the first line
|
||||||
|
expect(report).toMatch(/^!\[Tests failed]/)
|
||||||
|
})
|
||||||
|
|
||||||
|
it.each([
|
||||||
|
['empty string', ''],
|
||||||
|
['space', ' '],
|
||||||
|
['tab', '\t'],
|
||||||
|
['newline', '\n']
|
||||||
|
])('report does not include a title when configured value is %s', async (_, reportTitle) => {
|
||||||
|
const fixturePath = path.join(__dirname, 'fixtures', 'dotnet-nunit.xml')
|
||||||
|
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||||
|
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||||
|
|
||||||
|
const opts: ParseOptions = {
|
||||||
|
parseErrors: true,
|
||||||
|
trackedFiles: []
|
||||||
|
}
|
||||||
|
|
||||||
|
const parser = new DotnetNunitParser(opts)
|
||||||
|
const result = await parser.parse(filePath, fileContent)
|
||||||
|
const report = getReport([result], {
|
||||||
|
...DEFAULT_OPTIONS,
|
||||||
|
reportTitle
|
||||||
|
})
|
||||||
|
// Report should have the badge as the first line
|
||||||
|
expect(report).toMatch(/^!\[Tests failed]/)
|
||||||
|
})
|
||||||
|
|
||||||
|
it('report includes a custom report title', async () => {
|
||||||
|
const fixturePath = path.join(__dirname, 'fixtures', 'dotnet-nunit.xml')
|
||||||
|
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||||
|
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||||
|
|
||||||
|
const opts: ParseOptions = {
|
||||||
|
parseErrors: true,
|
||||||
|
trackedFiles: []
|
||||||
|
}
|
||||||
|
|
||||||
|
const parser = new DotnetNunitParser(opts)
|
||||||
|
const result = await parser.parse(filePath, fileContent)
|
||||||
|
const report = getReport([result], {
|
||||||
|
...DEFAULT_OPTIONS,
|
||||||
|
reportTitle: 'My Custom Title'
|
||||||
|
})
|
||||||
|
// Report should have the title as the first line
|
||||||
|
expect(report).toMatch(/^# My Custom Title\n/)
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ import * as path from 'path'
|
||||||
|
|
||||||
import {DotnetTrxParser} from '../src/parsers/dotnet-trx/dotnet-trx-parser'
|
import {DotnetTrxParser} from '../src/parsers/dotnet-trx/dotnet-trx-parser'
|
||||||
import {ParseOptions} from '../src/test-parser'
|
import {ParseOptions} from '../src/test-parser'
|
||||||
import {getReport} from '../src/report/get-report'
|
import {DEFAULT_OPTIONS, getReport} from '../src/report/get-report'
|
||||||
import {normalizeFilePath} from '../src/utils/path-utils'
|
import {normalizeFilePath} from '../src/utils/path-utils'
|
||||||
|
|
||||||
describe('dotnet-trx tests', () => {
|
describe('dotnet-trx tests', () => {
|
||||||
|
|
@ -99,4 +99,66 @@ describe('dotnet-trx tests', () => {
|
||||||
fs.mkdirSync(path.dirname(outputPath), {recursive: true})
|
fs.mkdirSync(path.dirname(outputPath), {recursive: true})
|
||||||
fs.writeFileSync(outputPath, report)
|
fs.writeFileSync(outputPath, report)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
it('report does not include a title by default', async () => {
|
||||||
|
const fixturePath = path.join(__dirname, 'fixtures', 'dotnet-trx.trx')
|
||||||
|
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||||
|
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||||
|
|
||||||
|
const opts: ParseOptions = {
|
||||||
|
parseErrors: true,
|
||||||
|
trackedFiles: []
|
||||||
|
}
|
||||||
|
|
||||||
|
const parser = new DotnetTrxParser(opts)
|
||||||
|
const result = await parser.parse(filePath, fileContent)
|
||||||
|
const report = getReport([result])
|
||||||
|
// Report should have the badge as the first line
|
||||||
|
expect(report).toMatch(/^!\[Tests failed]/)
|
||||||
|
})
|
||||||
|
|
||||||
|
it.each([
|
||||||
|
['empty string', ''],
|
||||||
|
['space', ' '],
|
||||||
|
['tab', '\t'],
|
||||||
|
['newline', '\n']
|
||||||
|
])('report does not include a title when configured value is %s', async (_, reportTitle) => {
|
||||||
|
const fixturePath = path.join(__dirname, 'fixtures', 'dotnet-trx.trx')
|
||||||
|
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||||
|
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||||
|
|
||||||
|
const opts: ParseOptions = {
|
||||||
|
parseErrors: true,
|
||||||
|
trackedFiles: []
|
||||||
|
}
|
||||||
|
|
||||||
|
const parser = new DotnetTrxParser(opts)
|
||||||
|
const result = await parser.parse(filePath, fileContent)
|
||||||
|
const report = getReport([result], {
|
||||||
|
...DEFAULT_OPTIONS,
|
||||||
|
reportTitle
|
||||||
|
})
|
||||||
|
// Report should have the badge as the first line
|
||||||
|
expect(report).toMatch(/^!\[Tests failed]/)
|
||||||
|
})
|
||||||
|
|
||||||
|
it('report includes a custom report title', async () => {
|
||||||
|
const fixturePath = path.join(__dirname, 'fixtures', 'dotnet-trx.trx')
|
||||||
|
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||||
|
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||||
|
|
||||||
|
const opts: ParseOptions = {
|
||||||
|
parseErrors: true,
|
||||||
|
trackedFiles: []
|
||||||
|
}
|
||||||
|
|
||||||
|
const parser = new DotnetTrxParser(opts)
|
||||||
|
const result = await parser.parse(filePath, fileContent)
|
||||||
|
const report = getReport([result], {
|
||||||
|
...DEFAULT_OPTIONS,
|
||||||
|
reportTitle: 'My Custom Title'
|
||||||
|
})
|
||||||
|
// Report should have the title as the first line
|
||||||
|
expect(report).toMatch(/^# My Custom Title\n/)
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -3,20 +3,10 @@ import * as path from 'path'
|
||||||
|
|
||||||
import {JavaJunitParser} from '../src/parsers/java-junit/java-junit-parser'
|
import {JavaJunitParser} from '../src/parsers/java-junit/java-junit-parser'
|
||||||
import {ParseOptions} from '../src/test-parser'
|
import {ParseOptions} from '../src/test-parser'
|
||||||
import {ReportOptions, getReport} from '../src/report/get-report'
|
import {DEFAULT_OPTIONS, getReport} from '../src/report/get-report'
|
||||||
import {normalizeFilePath} from '../src/utils/path-utils'
|
import {normalizeFilePath} from '../src/utils/path-utils'
|
||||||
|
|
||||||
describe('java-junit tests', () => {
|
describe('java-junit tests', () => {
|
||||||
const reportOpts: ReportOptions = {
|
|
||||||
listSuites: 'all',
|
|
||||||
listTests: 'all',
|
|
||||||
baseUrl: '',
|
|
||||||
onlySummary: false,
|
|
||||||
useActionsSummary: true,
|
|
||||||
badgeTitle: 'tests',
|
|
||||||
reportTitle: ''
|
|
||||||
}
|
|
||||||
|
|
||||||
it('produces empty test run result when there are no test cases', async () => {
|
it('produces empty test run result when there are no test cases', async () => {
|
||||||
const fixturePath = path.join(__dirname, 'fixtures', 'empty', 'java-junit.xml')
|
const fixturePath = path.join(__dirname, 'fixtures', 'empty', 'java-junit.xml')
|
||||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||||
|
|
@ -136,7 +126,7 @@ describe('java-junit tests', () => {
|
||||||
const parser = new JavaJunitParser(opts)
|
const parser = new JavaJunitParser(opts)
|
||||||
const result = await parser.parse(filePath, fileContent)
|
const result = await parser.parse(filePath, fileContent)
|
||||||
const report = getReport([result], {
|
const report = getReport([result], {
|
||||||
...reportOpts,
|
...DEFAULT_OPTIONS,
|
||||||
reportTitle
|
reportTitle
|
||||||
})
|
})
|
||||||
// Report should have the badge as the first line
|
// Report should have the badge as the first line
|
||||||
|
|
@ -155,16 +145,10 @@ describe('java-junit tests', () => {
|
||||||
|
|
||||||
const parser = new JavaJunitParser(opts)
|
const parser = new JavaJunitParser(opts)
|
||||||
const result = await parser.parse(filePath, fileContent)
|
const result = await parser.parse(filePath, fileContent)
|
||||||
const reportOpts: ReportOptions = {
|
const report = getReport([result], {
|
||||||
listSuites: 'all',
|
...DEFAULT_OPTIONS,
|
||||||
listTests: 'all',
|
|
||||||
baseUrl: '',
|
|
||||||
onlySummary: false,
|
|
||||||
useActionsSummary: true,
|
|
||||||
badgeTitle: 'tests',
|
|
||||||
reportTitle: 'My Custom Title'
|
reportTitle: 'My Custom Title'
|
||||||
}
|
})
|
||||||
const report = getReport([result], reportOpts)
|
|
||||||
// Report should have the title as the first line
|
// Report should have the title as the first line
|
||||||
expect(report).toMatch(/^# My Custom Title\n/)
|
expect(report).toMatch(/^# My Custom Title\n/)
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ import * as path from 'path'
|
||||||
|
|
||||||
import {JestJunitParser} from '../src/parsers/jest-junit/jest-junit-parser'
|
import {JestJunitParser} from '../src/parsers/jest-junit/jest-junit-parser'
|
||||||
import {ParseOptions} from '../src/test-parser'
|
import {ParseOptions} from '../src/test-parser'
|
||||||
import {getReport} from '../src/report/get-report'
|
import {DEFAULT_OPTIONS, getReport} from '../src/report/get-report'
|
||||||
import {normalizeFilePath} from '../src/utils/path-utils'
|
import {normalizeFilePath} from '../src/utils/path-utils'
|
||||||
|
|
||||||
describe('jest-junit tests', () => {
|
describe('jest-junit tests', () => {
|
||||||
|
|
@ -145,4 +145,66 @@ describe('jest-junit tests', () => {
|
||||||
fs.mkdirSync(path.dirname(outputPath), {recursive: true})
|
fs.mkdirSync(path.dirname(outputPath), {recursive: true})
|
||||||
fs.writeFileSync(outputPath, report)
|
fs.writeFileSync(outputPath, report)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
it('report does not include a title by default', async () => {
|
||||||
|
const fixturePath = path.join(__dirname, 'fixtures', 'jest-junit.xml')
|
||||||
|
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||||
|
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||||
|
|
||||||
|
const opts: ParseOptions = {
|
||||||
|
parseErrors: true,
|
||||||
|
trackedFiles: []
|
||||||
|
}
|
||||||
|
|
||||||
|
const parser = new JestJunitParser(opts)
|
||||||
|
const result = await parser.parse(filePath, fileContent)
|
||||||
|
const report = getReport([result])
|
||||||
|
// Report should have the badge as the first line
|
||||||
|
expect(report).toMatch(/^!\[Tests failed]/)
|
||||||
|
})
|
||||||
|
|
||||||
|
it.each([
|
||||||
|
['empty string', ''],
|
||||||
|
['space', ' '],
|
||||||
|
['tab', '\t'],
|
||||||
|
['newline', '\n']
|
||||||
|
])('report does not include a title when configured value is %s', async (_, reportTitle) => {
|
||||||
|
const fixturePath = path.join(__dirname, 'fixtures', 'jest-junit.xml')
|
||||||
|
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||||
|
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||||
|
|
||||||
|
const opts: ParseOptions = {
|
||||||
|
parseErrors: true,
|
||||||
|
trackedFiles: []
|
||||||
|
}
|
||||||
|
|
||||||
|
const parser = new JestJunitParser(opts)
|
||||||
|
const result = await parser.parse(filePath, fileContent)
|
||||||
|
const report = getReport([result], {
|
||||||
|
...DEFAULT_OPTIONS,
|
||||||
|
reportTitle
|
||||||
|
})
|
||||||
|
// Report should have the badge as the first line
|
||||||
|
expect(report).toMatch(/^!\[Tests failed]/)
|
||||||
|
})
|
||||||
|
|
||||||
|
it('report includes a custom report title', async () => {
|
||||||
|
const fixturePath = path.join(__dirname, 'fixtures', 'jest-junit.xml')
|
||||||
|
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||||
|
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||||
|
|
||||||
|
const opts: ParseOptions = {
|
||||||
|
parseErrors: true,
|
||||||
|
trackedFiles: []
|
||||||
|
}
|
||||||
|
|
||||||
|
const parser = new JestJunitParser(opts)
|
||||||
|
const result = await parser.parse(filePath, fileContent)
|
||||||
|
const report = getReport([result], {
|
||||||
|
...DEFAULT_OPTIONS,
|
||||||
|
reportTitle: 'My Custom Title'
|
||||||
|
})
|
||||||
|
// Report should have the title as the first line
|
||||||
|
expect(report).toMatch(/^# My Custom Title\n/)
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ import * as path from 'path'
|
||||||
|
|
||||||
import {MochaJsonParser} from '../src/parsers/mocha-json/mocha-json-parser'
|
import {MochaJsonParser} from '../src/parsers/mocha-json/mocha-json-parser'
|
||||||
import {ParseOptions} from '../src/test-parser'
|
import {ParseOptions} from '../src/test-parser'
|
||||||
import {getReport} from '../src/report/get-report'
|
import {DEFAULT_OPTIONS, getReport} from '../src/report/get-report'
|
||||||
import {normalizeFilePath} from '../src/utils/path-utils'
|
import {normalizeFilePath} from '../src/utils/path-utils'
|
||||||
|
|
||||||
describe('mocha-json tests', () => {
|
describe('mocha-json tests', () => {
|
||||||
|
|
@ -64,4 +64,66 @@ describe('mocha-json tests', () => {
|
||||||
fs.mkdirSync(path.dirname(outputPath), {recursive: true})
|
fs.mkdirSync(path.dirname(outputPath), {recursive: true})
|
||||||
fs.writeFileSync(outputPath, report)
|
fs.writeFileSync(outputPath, report)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
it('report does not include a title by default', async () => {
|
||||||
|
const fixturePath = path.join(__dirname, 'fixtures', 'mocha-json.json')
|
||||||
|
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||||
|
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||||
|
|
||||||
|
const opts: ParseOptions = {
|
||||||
|
parseErrors: true,
|
||||||
|
trackedFiles: []
|
||||||
|
}
|
||||||
|
|
||||||
|
const parser = new MochaJsonParser(opts)
|
||||||
|
const result = await parser.parse(filePath, fileContent)
|
||||||
|
const report = getReport([result])
|
||||||
|
// Report should have the badge as the first line
|
||||||
|
expect(report).toMatch(/^!\[Tests failed]/)
|
||||||
|
})
|
||||||
|
|
||||||
|
it.each([
|
||||||
|
['empty string', ''],
|
||||||
|
['space', ' '],
|
||||||
|
['tab', '\t'],
|
||||||
|
['newline', '\n']
|
||||||
|
])('report does not include a title when configured value is %s', async (_, reportTitle) => {
|
||||||
|
const fixturePath = path.join(__dirname, 'fixtures', 'mocha-json.json')
|
||||||
|
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||||
|
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||||
|
|
||||||
|
const opts: ParseOptions = {
|
||||||
|
parseErrors: true,
|
||||||
|
trackedFiles: []
|
||||||
|
}
|
||||||
|
|
||||||
|
const parser = new MochaJsonParser(opts)
|
||||||
|
const result = await parser.parse(filePath, fileContent)
|
||||||
|
const report = getReport([result], {
|
||||||
|
...DEFAULT_OPTIONS,
|
||||||
|
reportTitle
|
||||||
|
})
|
||||||
|
// Report should have the badge as the first line
|
||||||
|
expect(report).toMatch(/^!\[Tests failed]/)
|
||||||
|
})
|
||||||
|
|
||||||
|
it('report includes a custom report title', async () => {
|
||||||
|
const fixturePath = path.join(__dirname, 'fixtures', 'mocha-json.json')
|
||||||
|
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||||
|
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||||
|
|
||||||
|
const opts: ParseOptions = {
|
||||||
|
parseErrors: true,
|
||||||
|
trackedFiles: []
|
||||||
|
}
|
||||||
|
|
||||||
|
const parser = new MochaJsonParser(opts)
|
||||||
|
const result = await parser.parse(filePath, fileContent)
|
||||||
|
const report = getReport([result], {
|
||||||
|
...DEFAULT_OPTIONS,
|
||||||
|
reportTitle: 'My Custom Title'
|
||||||
|
})
|
||||||
|
// Report should have the title as the first line
|
||||||
|
expect(report).toMatch(/^# My Custom Title\n/)
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ import * as path from 'path'
|
||||||
|
|
||||||
import {RspecJsonParser} from '../src/parsers/rspec-json/rspec-json-parser'
|
import {RspecJsonParser} from '../src/parsers/rspec-json/rspec-json-parser'
|
||||||
import {ParseOptions} from '../src/test-parser'
|
import {ParseOptions} from '../src/test-parser'
|
||||||
import {getReport} from '../src/report/get-report'
|
import {DEFAULT_OPTIONS, getReport} from '../src/report/get-report'
|
||||||
import {normalizeFilePath} from '../src/utils/path-utils'
|
import {normalizeFilePath} from '../src/utils/path-utils'
|
||||||
|
|
||||||
describe('rspec-json tests', () => {
|
describe('rspec-json tests', () => {
|
||||||
|
|
@ -42,4 +42,66 @@ describe('rspec-json tests', () => {
|
||||||
fs.mkdirSync(path.dirname(outputPath), {recursive: true})
|
fs.mkdirSync(path.dirname(outputPath), {recursive: true})
|
||||||
fs.writeFileSync(outputPath, report)
|
fs.writeFileSync(outputPath, report)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
it('report does not include a title by default', async () => {
|
||||||
|
const fixturePath = path.join(__dirname, 'fixtures', 'rspec-json.json')
|
||||||
|
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||||
|
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||||
|
|
||||||
|
const opts: ParseOptions = {
|
||||||
|
parseErrors: true,
|
||||||
|
trackedFiles: []
|
||||||
|
}
|
||||||
|
|
||||||
|
const parser = new RspecJsonParser(opts)
|
||||||
|
const result = await parser.parse(filePath, fileContent)
|
||||||
|
const report = getReport([result])
|
||||||
|
// Report should have the badge as the first line
|
||||||
|
expect(report).toMatch(/^!\[Tests failed]/)
|
||||||
|
})
|
||||||
|
|
||||||
|
it.each([
|
||||||
|
['empty string', ''],
|
||||||
|
['space', ' '],
|
||||||
|
['tab', '\t'],
|
||||||
|
['newline', '\n']
|
||||||
|
])('report does not include a title when configured value is %s', async (_, reportTitle) => {
|
||||||
|
const fixturePath = path.join(__dirname, 'fixtures', 'rspec-json.json')
|
||||||
|
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||||
|
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||||
|
|
||||||
|
const opts: ParseOptions = {
|
||||||
|
parseErrors: true,
|
||||||
|
trackedFiles: []
|
||||||
|
}
|
||||||
|
|
||||||
|
const parser = new RspecJsonParser(opts)
|
||||||
|
const result = await parser.parse(filePath, fileContent)
|
||||||
|
const report = getReport([result], {
|
||||||
|
...DEFAULT_OPTIONS,
|
||||||
|
reportTitle
|
||||||
|
})
|
||||||
|
// Report should have the badge as the first line
|
||||||
|
expect(report).toMatch(/^!\[Tests failed]/)
|
||||||
|
})
|
||||||
|
|
||||||
|
it('report includes a custom report title', async () => {
|
||||||
|
const fixturePath = path.join(__dirname, 'fixtures', 'rspec-json.json')
|
||||||
|
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||||
|
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||||
|
|
||||||
|
const opts: ParseOptions = {
|
||||||
|
parseErrors: true,
|
||||||
|
trackedFiles: []
|
||||||
|
}
|
||||||
|
|
||||||
|
const parser = new RspecJsonParser(opts)
|
||||||
|
const result = await parser.parse(filePath, fileContent)
|
||||||
|
const report = getReport([result], {
|
||||||
|
...DEFAULT_OPTIONS,
|
||||||
|
reportTitle: 'My Custom Title'
|
||||||
|
})
|
||||||
|
// Report should have the title as the first line
|
||||||
|
expect(report).toMatch(/^# My Custom Title\n/)
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ import * as path from 'path'
|
||||||
|
|
||||||
import {SwiftXunitParser} from '../src/parsers/swift-xunit/swift-xunit-parser'
|
import {SwiftXunitParser} from '../src/parsers/swift-xunit/swift-xunit-parser'
|
||||||
import {ParseOptions} from '../src/test-parser'
|
import {ParseOptions} from '../src/test-parser'
|
||||||
import {getReport} from '../src/report/get-report'
|
import {DEFAULT_OPTIONS, getReport} from '../src/report/get-report'
|
||||||
import {normalizeFilePath} from '../src/utils/path-utils'
|
import {normalizeFilePath} from '../src/utils/path-utils'
|
||||||
|
|
||||||
describe('swift-xunit tests', () => {
|
describe('swift-xunit tests', () => {
|
||||||
|
|
@ -27,4 +27,66 @@ describe('swift-xunit tests', () => {
|
||||||
fs.mkdirSync(path.dirname(outputPath), {recursive: true})
|
fs.mkdirSync(path.dirname(outputPath), {recursive: true})
|
||||||
fs.writeFileSync(outputPath, report)
|
fs.writeFileSync(outputPath, report)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
it('report does not include a title by default', async () => {
|
||||||
|
const fixturePath = path.join(__dirname, 'fixtures', 'swift-xunit.xml')
|
||||||
|
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||||
|
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||||
|
|
||||||
|
const opts: ParseOptions = {
|
||||||
|
parseErrors: true,
|
||||||
|
trackedFiles: []
|
||||||
|
}
|
||||||
|
|
||||||
|
const parser = new SwiftXunitParser(opts)
|
||||||
|
const result = await parser.parse(filePath, fileContent)
|
||||||
|
const report = getReport([result])
|
||||||
|
// Report should have the badge as the first line
|
||||||
|
expect(report).toMatch(/^!\[Tests failed]/)
|
||||||
|
})
|
||||||
|
|
||||||
|
it.each([
|
||||||
|
['empty string', ''],
|
||||||
|
['space', ' '],
|
||||||
|
['tab', '\t'],
|
||||||
|
['newline', '\n']
|
||||||
|
])('report does not include a title when configured value is %s', async (_, reportTitle) => {
|
||||||
|
const fixturePath = path.join(__dirname, 'fixtures', 'swift-xunit.xml')
|
||||||
|
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||||
|
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||||
|
|
||||||
|
const opts: ParseOptions = {
|
||||||
|
parseErrors: true,
|
||||||
|
trackedFiles: []
|
||||||
|
}
|
||||||
|
|
||||||
|
const parser = new SwiftXunitParser(opts)
|
||||||
|
const result = await parser.parse(filePath, fileContent)
|
||||||
|
const report = getReport([result], {
|
||||||
|
...DEFAULT_OPTIONS,
|
||||||
|
reportTitle
|
||||||
|
})
|
||||||
|
// Report should have the badge as the first line
|
||||||
|
expect(report).toMatch(/^!\[Tests failed]/)
|
||||||
|
})
|
||||||
|
|
||||||
|
it('report includes a custom report title', async () => {
|
||||||
|
const fixturePath = path.join(__dirname, 'fixtures', 'swift-xunit.xml')
|
||||||
|
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||||
|
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||||
|
|
||||||
|
const opts: ParseOptions = {
|
||||||
|
parseErrors: true,
|
||||||
|
trackedFiles: []
|
||||||
|
}
|
||||||
|
|
||||||
|
const parser = new SwiftXunitParser(opts)
|
||||||
|
const result = await parser.parse(filePath, fileContent)
|
||||||
|
const report = getReport([result], {
|
||||||
|
...DEFAULT_OPTIONS,
|
||||||
|
reportTitle: 'My Custom Title'
|
||||||
|
})
|
||||||
|
// Report should have the title as the first line
|
||||||
|
expect(report).toMatch(/^# My Custom Title\n/)
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|
|
||||||
7
dist/index.js
generated
vendored
7
dist/index.js
generated
vendored
|
|
@ -1803,6 +1803,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
||||||
};
|
};
|
||||||
})();
|
})();
|
||||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||||
|
exports.DEFAULT_OPTIONS = void 0;
|
||||||
exports.getReport = getReport;
|
exports.getReport = getReport;
|
||||||
const core = __importStar(__nccwpck_require__(7484));
|
const core = __importStar(__nccwpck_require__(7484));
|
||||||
const markdown_utils_1 = __nccwpck_require__(5129);
|
const markdown_utils_1 = __nccwpck_require__(5129);
|
||||||
|
|
@ -1811,7 +1812,7 @@ const parse_utils_1 = __nccwpck_require__(9633);
|
||||||
const slugger_1 = __nccwpck_require__(9537);
|
const slugger_1 = __nccwpck_require__(9537);
|
||||||
const MAX_REPORT_LENGTH = 65535;
|
const MAX_REPORT_LENGTH = 65535;
|
||||||
const MAX_ACTIONS_SUMMARY_LENGTH = 1048576;
|
const MAX_ACTIONS_SUMMARY_LENGTH = 1048576;
|
||||||
const defaultOptions = {
|
exports.DEFAULT_OPTIONS = {
|
||||||
listSuites: 'all',
|
listSuites: 'all',
|
||||||
listTests: 'all',
|
listTests: 'all',
|
||||||
baseUrl: '',
|
baseUrl: '',
|
||||||
|
|
@ -1820,7 +1821,7 @@ const defaultOptions = {
|
||||||
badgeTitle: 'tests',
|
badgeTitle: 'tests',
|
||||||
reportTitle: ''
|
reportTitle: ''
|
||||||
};
|
};
|
||||||
function getReport(results, options = defaultOptions) {
|
function getReport(results, options = exports.DEFAULT_OPTIONS) {
|
||||||
core.info('Generating check run summary');
|
core.info('Generating check run summary');
|
||||||
applySort(results);
|
applySort(results);
|
||||||
const opts = { ...options };
|
const opts = { ...options };
|
||||||
|
|
@ -1841,7 +1842,7 @@ function getReport(results, options = defaultOptions) {
|
||||||
core.warning(`Test report summary exceeded limit of ${getMaxReportLength(options)} bytes and will be trimmed`);
|
core.warning(`Test report summary exceeded limit of ${getMaxReportLength(options)} bytes and will be trimmed`);
|
||||||
return trimReport(lines, options);
|
return trimReport(lines, options);
|
||||||
}
|
}
|
||||||
function getMaxReportLength(options = defaultOptions) {
|
function getMaxReportLength(options = exports.DEFAULT_OPTIONS) {
|
||||||
return options.useActionsSummary ? MAX_ACTIONS_SUMMARY_LENGTH : MAX_REPORT_LENGTH;
|
return options.useActionsSummary ? MAX_ACTIONS_SUMMARY_LENGTH : MAX_REPORT_LENGTH;
|
||||||
}
|
}
|
||||||
function trimReport(lines, options) {
|
function trimReport(lines, options) {
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ export interface ReportOptions {
|
||||||
reportTitle: string
|
reportTitle: string
|
||||||
}
|
}
|
||||||
|
|
||||||
const defaultOptions: ReportOptions = {
|
export const DEFAULT_OPTIONS: ReportOptions = {
|
||||||
listSuites: 'all',
|
listSuites: 'all',
|
||||||
listTests: 'all',
|
listTests: 'all',
|
||||||
baseUrl: '',
|
baseUrl: '',
|
||||||
|
|
@ -28,7 +28,7 @@ const defaultOptions: ReportOptions = {
|
||||||
reportTitle: ''
|
reportTitle: ''
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getReport(results: TestRunResult[], options: ReportOptions = defaultOptions): string {
|
export function getReport(results: TestRunResult[], options: ReportOptions = DEFAULT_OPTIONS): string {
|
||||||
core.info('Generating check run summary')
|
core.info('Generating check run summary')
|
||||||
|
|
||||||
applySort(results)
|
applySort(results)
|
||||||
|
|
@ -55,7 +55,7 @@ export function getReport(results: TestRunResult[], options: ReportOptions = def
|
||||||
return trimReport(lines, options)
|
return trimReport(lines, options)
|
||||||
}
|
}
|
||||||
|
|
||||||
function getMaxReportLength(options: ReportOptions = defaultOptions): number {
|
function getMaxReportLength(options: ReportOptions = DEFAULT_OPTIONS): number {
|
||||||
return options.useActionsSummary ? MAX_ACTIONS_SUMMARY_LENGTH : MAX_REPORT_LENGTH
|
return options.useActionsSummary ? MAX_ACTIONS_SUMMARY_LENGTH : MAX_REPORT_LENGTH
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue