diff --git a/schemas/report/v3.json b/schemas/report/v3.json index 95ef9ad..87110da 100644 --- a/schemas/report/v3.json +++ b/schemas/report/v3.json @@ -138,22 +138,31 @@ "file" ] }, - "tool": { - "$ref": "#/$defs/nonEmptyUnpaddedString" - }, - "experience": { - "$ref": "#/$defs/nonEmptyUnpaddedString" - }, - "type": { - "$ref": "#/$defs/nonEmptyUnpaddedString" + "taxonomy": { + "type": "object", + "unevaluatedProperties": false, + "properties": { + "tool": { + "$ref": "#/$defs/nonEmptyUnpaddedString" + }, + "type": { + "$ref": "#/$defs/nonEmptyUnpaddedString" + } + } }, "started": { "type": "string", "format": "date-time" }, - "timeout": { - "type": "integer", - "minimum": 0 + "config": { + "type": "object", + "unevaluatedProperties": false, + "properties": { + "timeout": { + "type": "integer", + "minimum": 0 + } + } }, "duration": { "type": "object", diff --git a/src/helpers/report-builder.cjs b/src/helpers/report-builder.cjs index 0ec9218..c28c8ae 100644 --- a/src/helpers/report-builder.cjs +++ b/src/helpers/report-builder.cjs @@ -34,11 +34,13 @@ const reportMemberPriority = [ 'browser', 'framework', 'operatingSystem', + 'config', 'timeout', 'started', 'duration', 'total', 'final', + 'taxonomy', 'tool', 'experience', 'type', @@ -174,11 +176,12 @@ class ReportSummaryBuilder extends ReportBuilderBase { } class ReportDetailBuilder extends ReportBuilderBase { - constructor(reportConfiguration, codeowners) { + constructor(reportConfiguration, codeowners, { reportVersionLatest = false } = {}) { super(); this._reportConfiguration = reportConfiguration; this._codeowners = codeowners; + this._reportVersionLatest = reportVersionLatest; this._setProperty('retries', 0); } @@ -206,9 +209,19 @@ class ReportDetailBuilder extends ReportBuilderBase { const { type, tool, experience } = this._reportConfiguration.getTaxonomy(filePath); - this._setProperty('type', type, options); - this._setProperty('tool', tool, options); - this._setProperty('experience', experience, options); + if (this._reportVersionLatest) { + if (type != null) { + this._setNestedProperty('taxonomy', 'type', type, options); + } + + if (tool != null) { + this._setNestedProperty('taxonomy', 'tool', tool, options); + } + } else { + this._setProperty('type', type, options); + this._setProperty('tool', tool, options); + this._setProperty('experience', experience, options); + } if (this._codeowners) { const owners = this._codeowners.getOwner(filePath); @@ -286,7 +299,11 @@ class ReportDetailBuilder extends ReportBuilderBase { } setTimeout(timeout, options) { - this._setProperty('timeout', timeout, options); + if (this._reportVersionLatest) { + this._setNestedProperty('config', 'timeout', timeout, options); + } else { + this._setProperty('timeout', timeout, options); + } return this; } @@ -308,6 +325,7 @@ class ReportBuilder extends ReportBuilderBase { this._logger = logger; this._verbose = verbose; + this._reportVersionLatest = reportVersionLatest; this._reportConfiguration = new ReportConfiguration(reportConfigurationPath); if (reportWriter) { @@ -362,7 +380,9 @@ class ReportBuilder extends ReportBuilderBase { const { details } = this._data; if (!details.has(id)) { - details.set(id, new ReportDetailBuilder(this._reportConfiguration, this._codeowners)); + details.set(id, new ReportDetailBuilder(this._reportConfiguration, this._codeowners, { + reportVersionLatest: this._reportVersionLatest + })); } return details.get(id); @@ -390,8 +410,10 @@ class ReportBuilder extends ReportBuilderBase { } if (this._verbose) { - const { name, location, type, tool, experience } = detail; + const { name, location } = detail; const prefix = `Test '${name}' at '${location}' is missing`; + const type = this._reportVersionLatest ? detail.taxonomy?.type : detail.type; + const tool = this._reportVersionLatest ? detail.taxonomy?.tool : detail.tool; if (!type) { this._logger.warning(`${prefix} a 'type'`); @@ -401,7 +423,7 @@ class ReportBuilder extends ReportBuilderBase { this._logger.warning(`${prefix} a 'tool'`); } - if (!experience) { + if (!this._reportVersionLatest && !detail.experience) { this._logger.warning(`${prefix} an 'experience'`); } } diff --git a/test/integration/data/validation/test-report-mocha.js b/test/integration/data/validation/test-report-mocha.js index 9e2c873..e068fcd 100644 --- a/test/integration/data/validation/test-report-mocha.js +++ b/test/integration/data/validation/test-report-mocha.js @@ -11,91 +11,71 @@ export const testReportLatestPartial = { name: 'reporter 1 > passed', status: 'passed', location: { file: 'test/integration/data/tests/mocha/reporter-1.test.js' }, - timeout: 2000, - tool: 'Mocha 1 Test Reporting', - experience: 'Test Framework', - type: 'ui', + config: { timeout: 2000 }, + taxonomy: { tool: 'Mocha 1 Test Reporting', type: 'ui' }, retries: 0 }, { name: 'reporter 1 > skipped', status: 'skipped', location: { file: 'test/integration/data/tests/mocha/reporter-1.test.js' }, - timeout: 2000, - tool: 'Mocha 1 Test Reporting', - experience: 'Test Framework', - type: 'ui', + config: { timeout: 2000 }, + taxonomy: { tool: 'Mocha 1 Test Reporting', type: 'ui' }, retries: 0 }, { name: 'reporter 1 > flaky', status: 'passed', location: { file: 'test/integration/data/tests/mocha/reporter-1.test.js' }, - timeout: 2000, - tool: 'Mocha 1 Test Reporting', - experience: 'Test Framework', - type: 'ui', + config: { timeout: 2000 }, + taxonomy: { tool: 'Mocha 1 Test Reporting', type: 'ui' }, retries: 2 }, { name: 'reporter 1 > failed', status: 'failed', location: { file: 'test/integration/data/tests/mocha/reporter-1.test.js' }, - timeout: 2000, - tool: 'Mocha 1 Test Reporting', - experience: 'Test Framework', - type: 'ui', + config: { timeout: 2000 }, + taxonomy: { tool: 'Mocha 1 Test Reporting', type: 'ui' }, retries: 3 }, { name: 'reporter 2 > passed', status: 'passed', location: { file: 'test/integration/data/tests/mocha/reporter-2.test.js' }, - timeout: 2000, - tool: 'Test Reporting', - experience: 'Mocha 2 Test Framework', - type: 'integration', + config: { timeout: 2000 }, + taxonomy: { tool: 'Test Reporting', type: 'integration' }, retries: 0 }, { name: 'reporter 2 > skipped', status: 'skipped', location: { file: 'test/integration/data/tests/mocha/reporter-2.test.js' }, - timeout: 2000, - tool: 'Test Reporting', - experience: 'Mocha 2 Test Framework', - type: 'integration', + config: { timeout: 2000 }, + taxonomy: { tool: 'Test Reporting', type: 'integration' }, retries: 0 }, { name: 'reporter 2 > flaky', status: 'passed', location: { file: 'test/integration/data/tests/mocha/reporter-2.test.js' }, - timeout: 2000, - tool: 'Test Reporting', - experience: 'Mocha 2 Test Framework', - type: 'integration', + config: { timeout: 2000 }, + taxonomy: { tool: 'Test Reporting', type: 'integration' }, retries: 2 }, { name: 'reporter 2 > failed', status: 'failed', location: { file: 'test/integration/data/tests/mocha/reporter-2.test.js' }, - timeout: 2000, - tool: 'Test Reporting', - experience: 'Mocha 2 Test Framework', - type: 'integration', + config: { timeout: 2000 }, + taxonomy: { tool: 'Test Reporting', type: 'integration' }, retries: 3 }, { name: 'reporter 1 > special/characters "(\\n\\r\\t\\b\\f)"', status: 'passed', location: { file: 'test/integration/data/tests/mocha/reporter-1.test.js' }, - timeout: 2000, - tool: 'Mocha 1 Test Reporting', - experience: 'Test Framework', - type: 'ui', + config: { timeout: 2000 }, + taxonomy: { tool: 'Mocha 1 Test Reporting', type: 'ui' }, retries: 0 }, { name: 'reporter 2 > special/characters "(\\n\\r\\t\\b\\f)"', status: 'passed', location: { file: 'test/integration/data/tests/mocha/reporter-2.test.js' }, - timeout: 2000, - tool: 'Test Reporting', - experience: 'Mocha 2 Test Framework', - type: 'integration', + config: { timeout: 2000 }, + taxonomy: { tool: 'Test Reporting', type: 'integration' }, retries: 0 }] }; diff --git a/test/integration/data/validation/test-report-playwright.js b/test/integration/data/validation/test-report-playwright.js index fadd27f..4ce3c67 100644 --- a/test/integration/data/validation/test-report-playwright.js +++ b/test/integration/data/validation/test-report-playwright.js @@ -16,10 +16,8 @@ export const testReportLatestPartial = { column: 7 }, browser: 'chromium', - timeout: 30000, - tool: 'Playwright 1 Test Reporting', - experience: 'Playwright 1 Test Framework', - type: 'integration', + config: { timeout: 30000 }, + taxonomy: { tool: 'Playwright 1 Test Reporting', type: 'integration' }, retries: 0 }, { name: '[chromium] > reporter 2 > skipped static, fixme', @@ -30,10 +28,8 @@ export const testReportLatestPartial = { column: 7 }, browser: 'chromium', - timeout: 30000, - tool: 'Test Reporting', - experience: 'Playwright 2 Test Framework', - type: 'visual diff', + config: { timeout: 30000 }, + taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, retries: 0 }, { name: '[chromium] > reporter 1 > passed', @@ -44,10 +40,8 @@ export const testReportLatestPartial = { column: 2 }, browser: 'chromium', - timeout: 30000, - tool: 'Playwright 1 Test Reporting', - experience: 'Playwright 1 Test Framework', - type: 'integration', + config: { timeout: 30000 }, + taxonomy: { tool: 'Playwright 1 Test Reporting', type: 'integration' }, retries: 0 }, { name: '[chromium] > reporter 1 > skipped dynamic, fixme', @@ -58,10 +52,8 @@ export const testReportLatestPartial = { column: 2 }, browser: 'chromium', - timeout: 30000, - tool: 'Playwright 1 Test Reporting', - experience: 'Playwright 1 Test Framework', - type: 'integration', + config: { timeout: 30000 }, + taxonomy: { tool: 'Playwright 1 Test Reporting', type: 'integration' }, retries: 0 }, { name: '[chromium] > reporter 1 > failed dynamic expected', @@ -72,10 +64,8 @@ export const testReportLatestPartial = { column: 2 }, browser: 'chromium', - timeout: 30000, - tool: 'Playwright 1 Test Reporting', - experience: 'Playwright 1 Test Framework', - type: 'integration', + config: { timeout: 30000 }, + taxonomy: { tool: 'Playwright 1 Test Reporting', type: 'integration' }, retries: 0 }, { name: '[chromium] > reporter 1 > skipped static', @@ -86,10 +76,8 @@ export const testReportLatestPartial = { column: 7 }, browser: 'chromium', - timeout: 30000, - tool: 'Playwright 1 Test Reporting', - experience: 'Playwright 1 Test Framework', - type: 'integration', + config: { timeout: 30000 }, + taxonomy: { tool: 'Playwright 1 Test Reporting', type: 'integration' }, retries: 0 }, { name: '[chromium] > reporter 2 > passed', @@ -100,10 +88,8 @@ export const testReportLatestPartial = { column: 2 }, browser: 'chromium', - timeout: 30000, - tool: 'Test Reporting', - experience: 'Playwright 2 Test Framework', - type: 'visual diff', + config: { timeout: 30000 }, + taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, retries: 0 }, { name: '[chromium] > reporter 1 > failed', @@ -114,10 +100,8 @@ export const testReportLatestPartial = { column: 2 }, browser: 'chromium', - timeout: 30000, - tool: 'Playwright 1 Test Reporting', - experience: 'Playwright 1 Test Framework', - type: 'integration', + config: { timeout: 30000 }, + taxonomy: { tool: 'Playwright 1 Test Reporting', type: 'integration' }, retries: 3 }, { name: '[chromium] > reporter 1 > skipped dynamic', @@ -128,10 +112,8 @@ export const testReportLatestPartial = { column: 2 }, browser: 'chromium', - timeout: 30000, - tool: 'Playwright 1 Test Reporting', - experience: 'Playwright 1 Test Framework', - type: 'integration', + config: { timeout: 30000 }, + taxonomy: { tool: 'Playwright 1 Test Reporting', type: 'integration' }, retries: 0 }, { name: '[chromium] > reporter 1 > failed static expected, skipped dynamic, fixme', @@ -142,10 +124,8 @@ export const testReportLatestPartial = { column: 7 }, browser: 'chromium', - timeout: 30000, - tool: 'Playwright 1 Test Reporting', - experience: 'Playwright 1 Test Framework', - type: 'integration', + config: { timeout: 30000 }, + taxonomy: { tool: 'Playwright 1 Test Reporting', type: 'integration' }, retries: 0 }, { name: '[chromium] > reporter 2 > skipped dynamic', @@ -156,10 +136,8 @@ export const testReportLatestPartial = { column: 2 }, browser: 'chromium', - timeout: 30000, - tool: 'Test Reporting', - experience: 'Playwright 2 Test Framework', - type: 'visual diff', + config: { timeout: 30000 }, + taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, retries: 0 }, { name: '[chromium] > reporter 2 > skipped static', @@ -170,10 +148,8 @@ export const testReportLatestPartial = { column: 7 }, browser: 'chromium', - timeout: 30000, - tool: 'Test Reporting', - experience: 'Playwright 2 Test Framework', - type: 'visual diff', + config: { timeout: 30000 }, + taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, retries: 0 }, { name: '[chromium] > reporter 1 > flaky', @@ -184,10 +160,8 @@ export const testReportLatestPartial = { column: 2 }, browser: 'chromium', - timeout: 30000, - tool: 'Playwright 1 Test Reporting', - experience: 'Playwright 1 Test Framework', - type: 'integration', + config: { timeout: 30000 }, + taxonomy: { tool: 'Playwright 1 Test Reporting', type: 'integration' }, retries: 2 }, { name: '[chromium] > reporter 1 > failed static expected, skipped dynamic', @@ -198,10 +172,8 @@ export const testReportLatestPartial = { column: 7 }, browser: 'chromium', - timeout: 30000, - tool: 'Playwright 1 Test Reporting', - experience: 'Playwright 1 Test Framework', - type: 'integration', + config: { timeout: 30000 }, + taxonomy: { tool: 'Playwright 1 Test Reporting', type: 'integration' }, retries: 0 }, { name: '[chromium] > reporter 2 > skipped dynamic, fixme', @@ -212,10 +184,8 @@ export const testReportLatestPartial = { column: 2 }, browser: 'chromium', - timeout: 30000, - tool: 'Test Reporting', - experience: 'Playwright 2 Test Framework', - type: 'visual diff', + config: { timeout: 30000 }, + taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, retries: 0 }, { name: '[chromium] > reporter 2 > failed dynamic expected', @@ -226,10 +196,8 @@ export const testReportLatestPartial = { column: 2 }, browser: 'chromium', - timeout: 30000, - tool: 'Test Reporting', - experience: 'Playwright 2 Test Framework', - type: 'visual diff', + config: { timeout: 30000 }, + taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, retries: 0 }, { name: '[chromium] > reporter 2 > failed', @@ -240,10 +208,8 @@ export const testReportLatestPartial = { column: 2 }, browser: 'chromium', - timeout: 30000, - tool: 'Test Reporting', - experience: 'Playwright 2 Test Framework', - type: 'visual diff', + config: { timeout: 30000 }, + taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, retries: 3 }, { name: '[chromium] > reporter 2 > failed static expected, skipped dynamic, fixme', @@ -254,10 +220,8 @@ export const testReportLatestPartial = { column: 7 }, browser: 'chromium', - timeout: 30000, - tool: 'Test Reporting', - experience: 'Playwright 2 Test Framework', - type: 'visual diff', + config: { timeout: 30000 }, + taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, retries: 0 }, { name: '[chromium] > reporter 2 > flaky', @@ -268,10 +232,8 @@ export const testReportLatestPartial = { column: 2 }, browser: 'chromium', - timeout: 30000, - tool: 'Test Reporting', - experience: 'Playwright 2 Test Framework', - type: 'visual diff', + config: { timeout: 30000 }, + taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, retries: 2 }, { name: '[chromium] > reporter 2 > failed static expected, skipped dynamic', @@ -282,10 +244,8 @@ export const testReportLatestPartial = { column: 7 }, browser: 'chromium', - timeout: 30000, - tool: 'Test Reporting', - experience: 'Playwright 2 Test Framework', - type: 'visual diff', + config: { timeout: 30000 }, + taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, retries: 0 }, { name: '[firefox] > reporter 2 > skipped static, fixme', @@ -296,10 +256,8 @@ export const testReportLatestPartial = { column: 7 }, browser: 'firefox', - timeout: 30000, - tool: 'Test Reporting', - experience: 'Playwright 2 Test Framework', - type: 'visual diff', + config: { timeout: 30000 }, + taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, retries: 0 }, { name: '[firefox] > reporter 2 > passed', @@ -310,10 +268,8 @@ export const testReportLatestPartial = { column: 2 }, browser: 'firefox', - timeout: 30000, - tool: 'Test Reporting', - experience: 'Playwright 2 Test Framework', - type: 'visual diff', + config: { timeout: 30000 }, + taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, retries: 0 }, { name: '[firefox] > reporter 2 > skipped static', @@ -324,10 +280,8 @@ export const testReportLatestPartial = { column: 7 }, browser: 'firefox', - timeout: 30000, - tool: 'Test Reporting', - experience: 'Playwright 2 Test Framework', - type: 'visual diff', + config: { timeout: 30000 }, + taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, retries: 0 }, { name: '[firefox] > reporter 2 > skipped dynamic', @@ -338,10 +292,8 @@ export const testReportLatestPartial = { column: 2 }, browser: 'firefox', - timeout: 30000, - tool: 'Test Reporting', - experience: 'Playwright 2 Test Framework', - type: 'visual diff', + config: { timeout: 30000 }, + taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, retries: 0 }, { name: '[firefox] > reporter 2 > skipped dynamic, fixme', @@ -352,10 +304,8 @@ export const testReportLatestPartial = { column: 2 }, browser: 'firefox', - timeout: 30000, - tool: 'Test Reporting', - experience: 'Playwright 2 Test Framework', - type: 'visual diff', + config: { timeout: 30000 }, + taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, retries: 0 }, { name: '[firefox] > reporter 2 > failed dynamic expected', @@ -366,10 +316,8 @@ export const testReportLatestPartial = { column: 2 }, browser: 'firefox', - timeout: 30000, - tool: 'Test Reporting', - experience: 'Playwright 2 Test Framework', - type: 'visual diff', + config: { timeout: 30000 }, + taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, retries: 0 }, { name: '[firefox] > reporter 2 > flaky', @@ -380,10 +328,8 @@ export const testReportLatestPartial = { column: 2 }, browser: 'firefox', - timeout: 30000, - tool: 'Test Reporting', - experience: 'Playwright 2 Test Framework', - type: 'visual diff', + config: { timeout: 30000 }, + taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, retries: 2 }, { name: '[firefox] > reporter 2 > failed static expected, skipped dynamic', @@ -394,10 +340,8 @@ export const testReportLatestPartial = { column: 7 }, browser: 'firefox', - timeout: 30000, - tool: 'Test Reporting', - experience: 'Playwright 2 Test Framework', - type: 'visual diff', + config: { timeout: 30000 }, + taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, retries: 0 }, { name: '[firefox] > reporter 2 > failed', @@ -408,10 +352,8 @@ export const testReportLatestPartial = { column: 2 }, browser: 'firefox', - timeout: 30000, - tool: 'Test Reporting', - experience: 'Playwright 2 Test Framework', - type: 'visual diff', + config: { timeout: 30000 }, + taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, retries: 3 }, { name: '[firefox] > reporter 2 > failed static expected, skipped dynamic, fixme', @@ -422,10 +364,8 @@ export const testReportLatestPartial = { column: 7 }, browser: 'firefox', - timeout: 30000, - tool: 'Test Reporting', - experience: 'Playwright 2 Test Framework', - type: 'visual diff', + config: { timeout: 30000 }, + taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, retries: 0 }, { name: '[webkit] > reporter 1 > skipped static, fixme', @@ -436,10 +376,8 @@ export const testReportLatestPartial = { column: 7 }, browser: 'webkit', - timeout: 30000, - tool: 'Playwright 1 Test Reporting', - experience: 'Playwright 1 Test Framework', - type: 'integration', + config: { timeout: 30000 }, + taxonomy: { tool: 'Playwright 1 Test Reporting', type: 'integration' }, retries: 0 }, { name: '[webkit] > reporter 1 > passed', @@ -450,10 +388,8 @@ export const testReportLatestPartial = { column: 2 }, browser: 'webkit', - timeout: 30000, - tool: 'Playwright 1 Test Reporting', - experience: 'Playwright 1 Test Framework', - type: 'integration', + config: { timeout: 30000 }, + taxonomy: { tool: 'Playwright 1 Test Reporting', type: 'integration' }, retries: 0 }, { name: '[webkit] > reporter 1 > skipped static', @@ -464,10 +400,8 @@ export const testReportLatestPartial = { column: 7 }, browser: 'webkit', - timeout: 30000, - tool: 'Playwright 1 Test Reporting', - experience: 'Playwright 1 Test Framework', - type: 'integration', + config: { timeout: 30000 }, + taxonomy: { tool: 'Playwright 1 Test Reporting', type: 'integration' }, retries: 0 }, { name: '[chromium] > reporter 1 > failed static expected', @@ -478,10 +412,8 @@ export const testReportLatestPartial = { column: 7 }, browser: 'chromium', - timeout: 30000, - tool: 'Playwright 1 Test Reporting', - experience: 'Playwright 1 Test Framework', - type: 'integration', + config: { timeout: 30000 }, + taxonomy: { tool: 'Playwright 1 Test Reporting', type: 'integration' }, retries: 0 }, { name: '[webkit] > reporter 1 > skipped dynamic', @@ -492,10 +424,8 @@ export const testReportLatestPartial = { column: 2 }, browser: 'webkit', - timeout: 30000, - tool: 'Playwright 1 Test Reporting', - experience: 'Playwright 1 Test Framework', - type: 'integration', + config: { timeout: 30000 }, + taxonomy: { tool: 'Playwright 1 Test Reporting', type: 'integration' }, retries: 0 }, { name: '[webkit] > reporter 1 > failed', @@ -506,10 +436,8 @@ export const testReportLatestPartial = { column: 2 }, browser: 'webkit', - timeout: 30000, - tool: 'Playwright 1 Test Reporting', - experience: 'Playwright 1 Test Framework', - type: 'integration', + config: { timeout: 30000 }, + taxonomy: { tool: 'Playwright 1 Test Reporting', type: 'integration' }, retries: 3 }, { name: '[chromium] > reporter 2 > failed static expected', @@ -520,10 +448,8 @@ export const testReportLatestPartial = { column: 7 }, browser: 'chromium', - timeout: 30000, - tool: 'Test Reporting', - experience: 'Playwright 2 Test Framework', - type: 'visual diff', + config: { timeout: 30000 }, + taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, retries: 0 }, { name: '[webkit] > reporter 1 > skipped dynamic, fixme', @@ -534,10 +460,8 @@ export const testReportLatestPartial = { column: 2 }, browser: 'webkit', - timeout: 30000, - tool: 'Playwright 1 Test Reporting', - experience: 'Playwright 1 Test Framework', - type: 'integration', + config: { timeout: 30000 }, + taxonomy: { tool: 'Playwright 1 Test Reporting', type: 'integration' }, retries: 0 }, { name: '[webkit] > reporter 1 > failed static expected, skipped dynamic, fixme', @@ -548,10 +472,8 @@ export const testReportLatestPartial = { column: 7 }, browser: 'webkit', - timeout: 30000, - tool: 'Playwright 1 Test Reporting', - experience: 'Playwright 1 Test Framework', - type: 'integration', + config: { timeout: 30000 }, + taxonomy: { tool: 'Playwright 1 Test Reporting', type: 'integration' }, retries: 0 }, { name: '[webkit] > reporter 2 > skipped static, fixme', @@ -562,10 +484,8 @@ export const testReportLatestPartial = { column: 7 }, browser: 'webkit', - timeout: 30000, - tool: 'Test Reporting', - experience: 'Playwright 2 Test Framework', - type: 'visual diff', + config: { timeout: 30000 }, + taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, retries: 0 }, { name: '[webkit] > reporter 1 > failed dynamic expected', @@ -576,10 +496,8 @@ export const testReportLatestPartial = { column: 2 }, browser: 'webkit', - timeout: 30000, - tool: 'Playwright 1 Test Reporting', - experience: 'Playwright 1 Test Framework', - type: 'integration', + config: { timeout: 30000 }, + taxonomy: { tool: 'Playwright 1 Test Reporting', type: 'integration' }, retries: 0 }, { name: '[webkit] > reporter 1 > flaky', @@ -590,10 +508,8 @@ export const testReportLatestPartial = { column: 2 }, browser: 'webkit', - timeout: 30000, - tool: 'Playwright 1 Test Reporting', - experience: 'Playwright 1 Test Framework', - type: 'integration', + config: { timeout: 30000 }, + taxonomy: { tool: 'Playwright 1 Test Reporting', type: 'integration' }, retries: 2 }, { name: '[webkit] > reporter 2 > skipped dynamic', @@ -604,10 +520,8 @@ export const testReportLatestPartial = { column: 2 }, browser: 'webkit', - timeout: 30000, - tool: 'Test Reporting', - experience: 'Playwright 2 Test Framework', - type: 'visual diff', + config: { timeout: 30000 }, + taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, retries: 0 }, { name: '[webkit] > reporter 1 > failed static expected, skipped dynamic', @@ -618,10 +532,8 @@ export const testReportLatestPartial = { column: 7 }, browser: 'webkit', - timeout: 30000, - tool: 'Playwright 1 Test Reporting', - experience: 'Playwright 1 Test Framework', - type: 'integration', + config: { timeout: 30000 }, + taxonomy: { tool: 'Playwright 1 Test Reporting', type: 'integration' }, retries: 0 }, { name: '[webkit] > reporter 2 > passed', @@ -632,10 +544,8 @@ export const testReportLatestPartial = { column: 2 }, browser: 'webkit', - timeout: 30000, - tool: 'Test Reporting', - experience: 'Playwright 2 Test Framework', - type: 'visual diff', + config: { timeout: 30000 }, + taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, retries: 0 }, { name: '[webkit] > reporter 2 > failed dynamic expected', @@ -646,10 +556,8 @@ export const testReportLatestPartial = { column: 2 }, browser: 'webkit', - timeout: 30000, - tool: 'Test Reporting', - experience: 'Playwright 2 Test Framework', - type: 'visual diff', + config: { timeout: 30000 }, + taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, retries: 0 }, { name: '[webkit] > reporter 2 > skipped static', @@ -660,10 +568,8 @@ export const testReportLatestPartial = { column: 7 }, browser: 'webkit', - timeout: 30000, - tool: 'Test Reporting', - experience: 'Playwright 2 Test Framework', - type: 'visual diff', + config: { timeout: 30000 }, + taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, retries: 0 }, { name: '[webkit] > reporter 2 > failed static expected, skipped dynamic, fixme', @@ -674,10 +580,8 @@ export const testReportLatestPartial = { column: 7 }, browser: 'webkit', - timeout: 30000, - tool: 'Test Reporting', - experience: 'Playwright 2 Test Framework', - type: 'visual diff', + config: { timeout: 30000 }, + taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, retries: 0 }, { name: '[webkit] > reporter 2 > failed static expected, skipped dynamic', @@ -688,10 +592,8 @@ export const testReportLatestPartial = { column: 7 }, browser: 'webkit', - timeout: 30000, - tool: 'Test Reporting', - experience: 'Playwright 2 Test Framework', - type: 'visual diff', + config: { timeout: 30000 }, + taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, retries: 0 }, { name: '[webkit] > reporter 2 > skipped dynamic, fixme', @@ -702,10 +604,8 @@ export const testReportLatestPartial = { column: 2 }, browser: 'webkit', - timeout: 30000, - tool: 'Test Reporting', - experience: 'Playwright 2 Test Framework', - type: 'visual diff', + config: { timeout: 30000 }, + taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, retries: 0 }, { name: '[webkit] > reporter 2 > failed', @@ -716,10 +616,8 @@ export const testReportLatestPartial = { column: 2 }, browser: 'webkit', - timeout: 30000, - tool: 'Test Reporting', - experience: 'Playwright 2 Test Framework', - type: 'visual diff', + config: { timeout: 30000 }, + taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, retries: 3 }, { name: '[webkit] > reporter 2 > flaky', @@ -730,10 +628,8 @@ export const testReportLatestPartial = { column: 2 }, browser: 'webkit', - timeout: 30000, - tool: 'Test Reporting', - experience: 'Playwright 2 Test Framework', - type: 'visual diff', + config: { timeout: 30000 }, + taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, retries: 2 }, { name: '[firefox] > reporter 2 > failed static expected', @@ -744,10 +640,8 @@ export const testReportLatestPartial = { column: 7 }, browser: 'firefox', - timeout: 30000, - tool: 'Test Reporting', - experience: 'Playwright 2 Test Framework', - type: 'visual diff', + config: { timeout: 30000 }, + taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, retries: 0 }, { name: '[webkit] > reporter 1 > failed static expected', @@ -758,10 +652,8 @@ export const testReportLatestPartial = { column: 7 }, browser: 'webkit', - timeout: 30000, - tool: 'Playwright 1 Test Reporting', - experience: 'Playwright 1 Test Framework', - type: 'integration', + config: { timeout: 30000 }, + taxonomy: { tool: 'Playwright 1 Test Reporting', type: 'integration' }, retries: 0 }, { name: '[webkit] > reporter 2 > failed static expected', @@ -772,10 +664,8 @@ export const testReportLatestPartial = { column: 7 }, browser: 'webkit', - timeout: 30000, - tool: 'Test Reporting', - experience: 'Playwright 2 Test Framework', - type: 'visual diff', + config: { timeout: 30000 }, + taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, retries: 0 }, { name: '[chromium] > reporter 1 > special/characters "(\\n\\r\\t\\b\\f)"', @@ -786,10 +676,8 @@ export const testReportLatestPartial = { column: 2 }, browser: 'chromium', - timeout: 30000, - tool: 'Playwright 1 Test Reporting', - experience: 'Playwright 1 Test Framework', - type: 'integration', + config: { timeout: 30000 }, + taxonomy: { tool: 'Playwright 1 Test Reporting', type: 'integration' }, retries: 0 }, { name: '[chromium] > reporter 2 > special/characters "(\\n\\r\\t\\b\\f)"', @@ -800,10 +688,8 @@ export const testReportLatestPartial = { column: 2 }, browser: 'chromium', - timeout: 30000, - tool: 'Test Reporting', - experience: 'Playwright 2 Test Framework', - type: 'visual diff', + config: { timeout: 30000 }, + taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, retries: 0 }, { name: '[firefox] > reporter 2 > special/characters "(\\n\\r\\t\\b\\f)"', @@ -814,10 +700,8 @@ export const testReportLatestPartial = { column: 2 }, browser: 'firefox', - timeout: 30000, - tool: 'Test Reporting', - experience: 'Playwright 2 Test Framework', - type: 'visual diff', + config: { timeout: 30000 }, + taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, retries: 0 }, { name: '[webkit] > reporter 1 > special/characters "(\\n\\r\\t\\b\\f)"', @@ -828,10 +712,8 @@ export const testReportLatestPartial = { column: 2 }, browser: 'webkit', - timeout: 30000, - tool: 'Playwright 1 Test Reporting', - experience: 'Playwright 1 Test Framework', - type: 'integration', + config: { timeout: 30000 }, + taxonomy: { tool: 'Playwright 1 Test Reporting', type: 'integration' }, retries: 0 }, { name: '[webkit] > reporter 2 > special/characters "(\\n\\r\\t\\b\\f)"', @@ -842,10 +724,8 @@ export const testReportLatestPartial = { column: 2 }, browser: 'webkit', - timeout: 30000, - tool: 'Test Reporting', - experience: 'Playwright 2 Test Framework', - type: 'visual diff', + config: { timeout: 30000 }, + taxonomy: { tool: 'Test Reporting', type: 'visual diff' }, retries: 0 }] }; diff --git a/test/integration/data/validation/test-report-web-test-runner.js b/test/integration/data/validation/test-report-web-test-runner.js index 62ee40b..65fe8e8 100644 --- a/test/integration/data/validation/test-report-web-test-runner.js +++ b/test/integration/data/validation/test-report-web-test-runner.js @@ -12,160 +12,128 @@ export const testReportLatestPartial = { status: 'passed', location: { file: 'test/integration/data/tests/web-test-runner/reporter-1.test.js' }, browser: 'chrome', - timeout: 120000, - tool: 'WebTestRunner 1 Test Reporting', - experience: 'WebTestRunner 1 Test Framework', - type: 'integration', + config: { timeout: 120000 }, + taxonomy: { tool: 'WebTestRunner 1 Test Reporting', type: 'integration' }, retries: 0 }, { name: 'reporter 1 > skipped', status: 'skipped', location: { file: 'test/integration/data/tests/web-test-runner/reporter-1.test.js' }, browser: 'chrome', - timeout: 120000, - tool: 'WebTestRunner 1 Test Reporting', - experience: 'WebTestRunner 1 Test Framework', - type: 'integration', + config: { timeout: 120000 }, + taxonomy: { tool: 'WebTestRunner 1 Test Reporting', type: 'integration' }, retries: 0 }, { name: 'reporter 1 > failed', status: 'failed', location: { file: 'test/integration/data/tests/web-test-runner/reporter-1.test.js' }, browser: 'chrome', - timeout: 120000, - tool: 'WebTestRunner 1 Test Reporting', - experience: 'WebTestRunner 1 Test Framework', - type: 'integration', + config: { timeout: 120000 }, + taxonomy: { tool: 'WebTestRunner 1 Test Reporting', type: 'integration' }, retries: 0 }, { name: '[group 1] > reporter 2 > passed', status: 'passed', location: { file: 'test/integration/data/tests/web-test-runner/reporter-2.test.js' }, browser: 'chromium', - timeout: 120000, - tool: 'Test Reporting', - experience: 'WebTestRunner 2 Test Framework', - type: 'accessibility', + config: { timeout: 120000 }, + taxonomy: { tool: 'Test Reporting', type: 'accessibility' }, retries: 0 }, { name: '[group 1] > reporter 2 > skipped', status: 'skipped', location: { file: 'test/integration/data/tests/web-test-runner/reporter-2.test.js' }, browser: 'chromium', - timeout: 120000, - tool: 'Test Reporting', - experience: 'WebTestRunner 2 Test Framework', - type: 'accessibility', + config: { timeout: 120000 }, + taxonomy: { tool: 'Test Reporting', type: 'accessibility' }, retries: 0 }, { name: '[group 1] > reporter 2 > failed', status: 'failed', location: { file: 'test/integration/data/tests/web-test-runner/reporter-2.test.js' }, browser: 'chromium', - timeout: 120000, - tool: 'Test Reporting', - experience: 'WebTestRunner 2 Test Framework', - type: 'accessibility', + config: { timeout: 120000 }, + taxonomy: { tool: 'Test Reporting', type: 'accessibility' }, retries: 0 }, { name: '[group 1] > reporter 2 > passed', status: 'passed', location: { file: 'test/integration/data/tests/web-test-runner/reporter-2.test.js' }, browser: 'firefox', - timeout: 120000, - tool: 'Test Reporting', - experience: 'WebTestRunner 2 Test Framework', - type: 'accessibility', + config: { timeout: 120000 }, + taxonomy: { tool: 'Test Reporting', type: 'accessibility' }, retries: 0 }, { name: '[group 1] > reporter 2 > skipped', status: 'skipped', location: { file: 'test/integration/data/tests/web-test-runner/reporter-2.test.js' }, browser: 'firefox', - timeout: 120000, - tool: 'Test Reporting', - experience: 'WebTestRunner 2 Test Framework', - type: 'accessibility', + config: { timeout: 120000 }, + taxonomy: { tool: 'Test Reporting', type: 'accessibility' }, retries: 0 }, { name: '[group 1] > reporter 2 > failed', status: 'failed', location: { file: 'test/integration/data/tests/web-test-runner/reporter-2.test.js' }, browser: 'firefox', - timeout: 120000, - tool: 'Test Reporting', - experience: 'WebTestRunner 2 Test Framework', - type: 'accessibility', + config: { timeout: 120000 }, + taxonomy: { tool: 'Test Reporting', type: 'accessibility' }, retries: 0 }, { name: '[group 2] > reporter 1 > passed', status: 'passed', location: { file: 'test/integration/data/tests/web-test-runner/reporter-1.test.js' }, browser: 'webkit', - timeout: 120000, - tool: 'WebTestRunner 1 Test Reporting', - experience: 'WebTestRunner 1 Test Framework', - type: 'integration', + config: { timeout: 120000 }, + taxonomy: { tool: 'WebTestRunner 1 Test Reporting', type: 'integration' }, retries: 0 }, { name: '[group 2] > reporter 1 > skipped', status: 'skipped', location: { file: 'test/integration/data/tests/web-test-runner/reporter-1.test.js' }, browser: 'webkit', - timeout: 120000, - tool: 'WebTestRunner 1 Test Reporting', - experience: 'WebTestRunner 1 Test Framework', - type: 'integration', + config: { timeout: 120000 }, + taxonomy: { tool: 'WebTestRunner 1 Test Reporting', type: 'integration' }, retries: 0 }, { name: '[group 2] > reporter 1 > failed', status: 'failed', location: { file: 'test/integration/data/tests/web-test-runner/reporter-1.test.js' }, browser: 'webkit', - timeout: 120000, - tool: 'WebTestRunner 1 Test Reporting', - experience: 'WebTestRunner 1 Test Framework', - type: 'integration', + config: { timeout: 120000 }, + taxonomy: { tool: 'WebTestRunner 1 Test Reporting', type: 'integration' }, retries: 0 }, { name: 'reporter 1 > special/characters "(\\n\\r\\t\\b\\f)"', status: 'passed', location: { file: 'test/integration/data/tests/web-test-runner/reporter-1.test.js' }, browser: 'chrome', - timeout: 120000, - tool: 'WebTestRunner 1 Test Reporting', - experience: 'WebTestRunner 1 Test Framework', - type: 'integration', + config: { timeout: 120000 }, + taxonomy: { tool: 'WebTestRunner 1 Test Reporting', type: 'integration' }, retries: 0 }, { name: '[group 1] > reporter 2 > special/characters "(\\n\\r\\t\\b\\f)"', status: 'passed', location: { file: 'test/integration/data/tests/web-test-runner/reporter-2.test.js' }, browser: 'chromium', - timeout: 120000, - tool: 'Test Reporting', - experience: 'WebTestRunner 2 Test Framework', - type: 'accessibility', + config: { timeout: 120000 }, + taxonomy: { tool: 'Test Reporting', type: 'accessibility' }, retries: 0 }, { name: '[group 1] > reporter 2 > special/characters "(\\n\\r\\t\\b\\f)"', status: 'passed', location: { file: 'test/integration/data/tests/web-test-runner/reporter-2.test.js' }, browser: 'firefox', - timeout: 120000, - tool: 'Test Reporting', - experience: 'WebTestRunner 2 Test Framework', - type: 'accessibility', + config: { timeout: 120000 }, + taxonomy: { tool: 'Test Reporting', type: 'accessibility' }, retries: 0 }, { name: '[group 2] > reporter 1 > special/characters "(\\n\\r\\t\\b\\f)"', status: 'passed', location: { file: 'test/integration/data/tests/web-test-runner/reporter-1.test.js' }, browser: 'webkit', - timeout: 120000, - tool: 'WebTestRunner 1 Test Reporting', - experience: 'WebTestRunner 1 Test Framework', - type: 'integration', + config: { timeout: 120000 }, + taxonomy: { tool: 'WebTestRunner 1 Test Reporting', type: 'integration' }, retries: 0 }] }; diff --git a/test/integration/data/validation/test-report-webdriverio.js b/test/integration/data/validation/test-report-webdriverio.js index 52ca96f..e3a9fc5 100644 --- a/test/integration/data/validation/test-report-webdriverio.js +++ b/test/integration/data/validation/test-report-webdriverio.js @@ -15,137 +15,103 @@ export const testReportLatestPartial = { name: `[${platform}] > reporter 1 > passed`, status: 'passed', location: { file: 'test/integration/data/tests/webdriverio/reporter-1.test.js' }, - tool: 'WebdriverIO 1 Test Reporting', - experience: 'Test Framework', - type: 'ui', + taxonomy: { tool: 'WebdriverIO 1 Test Reporting', type: 'ui' }, retries: 0 }, { name: `[${platform}] > reporter 1 > skipped`, status: 'skipped', location: { file: 'test/integration/data/tests/webdriverio/reporter-1.test.js' }, - tool: 'WebdriverIO 1 Test Reporting', - experience: 'Test Framework', - type: 'ui', + taxonomy: { tool: 'WebdriverIO 1 Test Reporting', type: 'ui' }, retries: 0 }, { name: `[${platform}] > reporter 1 > flaky`, status: 'passed', location: { file: 'test/integration/data/tests/webdriverio/reporter-1.test.js' }, - tool: 'WebdriverIO 1 Test Reporting', - experience: 'Test Framework', - type: 'ui', + taxonomy: { tool: 'WebdriverIO 1 Test Reporting', type: 'ui' }, retries: 2 }, { name: `[${platform}] > reporter 1 > failed`, status: 'failed', location: { file: 'test/integration/data/tests/webdriverio/reporter-1.test.js' }, - tool: 'WebdriverIO 1 Test Reporting', - experience: 'Test Framework', - type: 'ui', + taxonomy: { tool: 'WebdriverIO 1 Test Reporting', type: 'ui' }, retries: 3 }, { name: `[${platform}] > reporter 1 > special/characters "(\\n\\r\\t\\b\\f)"`, status: 'passed', location: { file: 'test/integration/data/tests/webdriverio/reporter-1.test.js' }, - tool: 'WebdriverIO 1 Test Reporting', - experience: 'Test Framework', - type: 'ui', + taxonomy: { tool: 'WebdriverIO 1 Test Reporting', type: 'ui' }, retries: 0 }, { name: `[${platform}] > reporter 2 > passed`, status: 'passed', location: { file: 'test/integration/data/tests/webdriverio/reporter-2.test.js' }, - tool: 'Test Reporting', - experience: 'WebdriverIO 2 Test Framework', - type: 'integration', + taxonomy: { tool: 'Test Reporting', type: 'integration' }, retries: 0 }, { name: `[${platform}] > reporter 2 > skipped`, status: 'skipped', location: { file: 'test/integration/data/tests/webdriverio/reporter-2.test.js' }, - tool: 'Test Reporting', - experience: 'WebdriverIO 2 Test Framework', - type: 'integration', + taxonomy: { tool: 'Test Reporting', type: 'integration' }, retries: 0 }, { name: `[${platform}] > reporter 2 > flaky`, status: 'passed', location: { file: 'test/integration/data/tests/webdriverio/reporter-2.test.js' }, - tool: 'Test Reporting', - experience: 'WebdriverIO 2 Test Framework', - type: 'integration', + taxonomy: { tool: 'Test Reporting', type: 'integration' }, retries: 2 }, { name: `[${platform}] > reporter 2 > special/characters "(\\n\\r\\t\\b\\f)"`, status: 'passed', location: { file: 'test/integration/data/tests/webdriverio/reporter-2.test.js' }, - tool: 'Test Reporting', - experience: 'WebdriverIO 2 Test Framework', - type: 'integration', + taxonomy: { tool: 'Test Reporting', type: 'integration' }, retries: 0 }, { name: `[${platform}] > reporter 2 > passed 2`, status: 'passed', location: { file: 'test/integration/data/tests/webdriverio/reporter-2.test.js' }, - tool: 'Test Reporting', - experience: 'WebdriverIO 2 Test Framework', - type: 'integration', + taxonomy: { tool: 'Test Reporting', type: 'integration' }, retries: 0 }, { name: `[${platform}] > reporter 2 > passed 3`, status: 'passed', location: { file: 'test/integration/data/tests/webdriverio/reporter-2.test.js' }, - tool: 'Test Reporting', - experience: 'WebdriverIO 2 Test Framework', - type: 'integration', + taxonomy: { tool: 'Test Reporting', type: 'integration' }, retries: 0 }, { name: `[${platform}] > reporter 2 > passed 4`, status: 'passed', location: { file: 'test/integration/data/tests/webdriverio/reporter-2.test.js' }, - tool: 'Test Reporting', - experience: 'WebdriverIO 2 Test Framework', - type: 'integration', + taxonomy: { tool: 'Test Reporting', type: 'integration' }, retries: 0 }, { name: `[${platform}] > reporter 2 > passed with timeout`, status: 'passed', location: { file: 'test/integration/data/tests/webdriverio/reporter-2.test.js' }, - tool: 'Test Reporting', - experience: 'WebdriverIO 2 Test Framework', - type: 'integration', + taxonomy: { tool: 'Test Reporting', type: 'integration' }, retries: 0 }, { name: `[${platform}] > reporter 3 > passed 1`, status: 'passed', location: { file: 'test/integration/data/tests/webdriverio/reporter-3.test.js' }, - tool: 'Test Reporting', - experience: 'Test Framework', - type: 'integration', + taxonomy: { tool: 'Test Reporting', type: 'integration' }, retries: 0 }, { name: `[${platform}] > reporter 3 > passed 2`, status: 'passed', location: { file: 'test/integration/data/tests/webdriverio/reporter-3.test.js' }, - tool: 'Test Reporting', - experience: 'Test Framework', - type: 'integration', + taxonomy: { tool: 'Test Reporting', type: 'integration' }, retries: 0 }, { name: `[${platform}] > reporter 3 > passed 3`, status: 'passed', location: { file: 'test/integration/data/tests/webdriverio/reporter-3.test.js' }, - tool: 'Test Reporting', - experience: 'Test Framework', - type: 'integration', + taxonomy: { tool: 'Test Reporting', type: 'integration' }, retries: 0 }, { name: `[${platform}] > reporter 3 > passed 4`, status: 'passed', location: { file: 'test/integration/data/tests/webdriverio/reporter-3.test.js' }, - tool: 'Test Reporting', - experience: 'Test Framework', - type: 'integration', + taxonomy: { tool: 'Test Reporting', type: 'integration' }, retries: 0 }] }; diff --git a/test/unit/report.test.js b/test/unit/report.test.js index 0f7704f..70bcad2 100644 --- a/test/unit/report.test.js +++ b/test/unit/report.test.js @@ -34,40 +34,99 @@ const testContextOther = { } }; const testStarted = (new Date()).toISOString(); -const testDetails = [{ +const testDetailsV1 = [{ name: 'test suite > flaky test', - location: { - file: 'test/test-suite.js' - }, + location: 'test/test-suite.js', + tool: 'My Tool', + experience: 'My Experience', + type: 'integration', started: testStarted, - duration: { - final: 237, - total: 549 - }, + duration: 237, + totalDuration: 549, status: 'passed', retries: 1 }, { name: 'test suite > passing test', - location: { - file: 'test/test-suite.js' - }, + location: 'test/test-suite.js', + tool: 'My Tool', + experience: 'My Experience', + type: 'integration', started: testStarted, - duration: { - final: 237, - total: 237 - }, + duration: 237, + totalDuration: 237, status: 'passed', retries: 0 }, { name: 'test suite > skipped test', - location: { - file: 'test/test-suite.js' - }, + location: 'test/test-suite.js', + tool: 'My Tool', + experience: 'My Experience', + type: 'integration', started: testStarted, - duration: { - final: 0, - total: 0 - }, + duration: 0, + totalDuration: 0, + status: 'skipped', + retries: 0 +}]; +const testDetailsV2 = [{ + name: 'test suite > flaky test', + location: { file: 'test/test-suite.js' }, + tool: 'My Tool', + experience: 'My Experience', + type: 'integration', + started: testStarted, + timeout: 30000, + duration: { final: 237, total: 549 }, + status: 'passed', + retries: 1 +}, { + name: 'test suite > passing test', + location: { file: 'test/test-suite.js' }, + tool: 'My Tool', + experience: 'My Experience', + type: 'integration', + started: testStarted, + timeout: 30000, + duration: { final: 237, total: 237 }, + status: 'passed', + retries: 0 +}, { + name: 'test suite > skipped test', + location: { file: 'test/test-suite.js' }, + tool: 'My Tool', + experience: 'My Experience', + type: 'integration', + started: testStarted, + timeout: 30000, + duration: { final: 0, total: 0 }, + status: 'skipped', + retries: 0 +}]; +const testDetailsLatest = [{ + name: 'test suite > flaky test', + location: { file: 'test/test-suite.js' }, + taxonomy: { tool: 'My Tool', type: 'integration' }, + started: testStarted, + config: { timeout: 30000 }, + duration: { final: 237, total: 549 }, + status: 'passed', + retries: 1 +}, { + name: 'test suite > passing test', + location: { file: 'test/test-suite.js' }, + taxonomy: { tool: 'My Tool', type: 'integration' }, + started: testStarted, + config: { timeout: 30000 }, + duration: { final: 237, total: 237 }, + status: 'passed', + retries: 0 +}, { + name: 'test suite > skipped test', + location: { file: 'test/test-suite.js' }, + taxonomy: { tool: 'My Tool', type: 'integration' }, + started: testStarted, + config: { timeout: 30000 }, + duration: { final: 0, total: 0 }, status: 'skipped', retries: 0 }]; @@ -86,12 +145,7 @@ const testReportV1Full = { countSkipped: 1, countFlaky: 1 }, - details: testDetails.map(detail => ({ - ...detail, - location: detail.location.file, - duration: detail.duration.final, - totalDuration: detail.duration.total - })) + details: testDetailsV1 }; const testReportV1FullOther = { ...testReportV1Full, @@ -151,7 +205,7 @@ const testReportV2Full = { flaky: 1 } }, - details: testDetails + details: testDetailsV2 }; const testReportV2FullOther = { ...testReportV2Full, @@ -223,7 +277,7 @@ const testReportLatestFull = { flaky: 1 } }, - details: testDetails + details: testDetailsLatest }; const testReportLatestFullOther = { ...testReportLatestFull, @@ -232,6 +286,15 @@ const testReportLatestFullOther = { ...testContextOther } }; +const testDetailsLatestFromV1 = testDetailsLatest.map(({ config, ...rest }) => rest); +const testReportLatestFromV1Full = { + ...testReportLatestFull, + details: testDetailsLatestFromV1 +}; +const testReportLatestFromV1FullOther = { + ...testReportLatestFullOther, + details: testDetailsLatestFromV1 +}; const testReportLatestNoContext = { ...testReportLatestFull, summary: { @@ -298,7 +361,7 @@ describe('report', () => { expect(wrapper).to.not.throw(); expect(report.getVersionOriginal()).to.equal(testReportCurrentVersion); expect(report.getVersion()).to.equal(latestReportVersion); - expect(report.toJSON()).to.deep.equal(testReportLatestFull); + expect(report.toJSON()).to.deep.equal(testReportLatestFromV1Full); expect(report.toJSON()).to.deep.not.equal(testReportV1Full); expect(report.getContext()).to.deep.equal(testContext); }); @@ -319,7 +382,7 @@ describe('report', () => { expect(wrapper).to.not.throw(); expect(report.getVersionOriginal()).to.equal(testReportCurrentVersion); expect(report.getVersion()).to.equal(latestReportVersion); - expect(report.toJSON()).to.deep.equal(testReportLatestFullOther); + expect(report.toJSON()).to.deep.equal(testReportLatestFromV1FullOther); expect(report.toJSON()).to.deep.not.equal(testReportV1FullOther); expect(report.getContext()).to.deep.equal(testContextOther); }); @@ -338,7 +401,7 @@ describe('report', () => { expect(wrapper).to.not.throw(); expect(report.getVersionOriginal()).to.equal(testReportCurrentVersion); expect(report.getVersion()).to.equal(latestReportVersion); - expect(report.toJSON()).to.deep.equal(testReportLatestFull); + expect(report.toJSON()).to.deep.equal(testReportLatestFromV1Full); expect(report.toJSON()).to.deep.not.equal(testReportV1Full); expect(report.getContext()).to.deep.equal(testContext); }); @@ -360,7 +423,7 @@ describe('report', () => { expect(wrapper).to.not.throw(); expect(report.getVersionOriginal()).to.equal(testReportCurrentVersion); expect(report.getVersion()).to.equal(latestReportVersion); - expect(report.toJSON()).to.deep.equal(testReportLatestFullOther); + expect(report.toJSON()).to.deep.equal(testReportLatestFromV1FullOther); expect(report.toJSON()).to.deep.not.equal(testReportV1FullOther); expect(report.getContext()).to.deep.equal(testContextOther); }); @@ -379,7 +442,7 @@ describe('report', () => { expect(wrapper).to.not.throw(); expect(report.getVersionOriginal()).to.equal(testReportCurrentVersion); expect(report.getVersion()).to.equal(latestReportVersion); - expect(report.toJSON()).to.deep.equal(testReportLatestFullOther); + expect(report.toJSON()).to.deep.equal(testReportLatestFromV1FullOther); expect(report.toJSON()).to.deep.not.equal(testReportV1FullOther); expect(report.getContext()).to.deep.equal(testContextOther); }); @@ -401,7 +464,7 @@ describe('report', () => { expect(wrapper).to.not.throw(); expect(report.getVersionOriginal()).to.equal(testReportCurrentVersion); expect(report.getVersion()).to.equal(latestReportVersion); - expect(report.toJSON()).to.deep.equal(testReportLatestFullOther); + expect(report.toJSON()).to.deep.equal(testReportLatestFromV1FullOther); expect(report.toJSON()).to.deep.not.equal(testReportV1FullOther); expect(report.getContext()).to.deep.equal(testContextOther); }); @@ -420,7 +483,7 @@ describe('report', () => { expect(wrapper).to.not.throw(); expect(report.getVersionOriginal()).to.equal(testReportCurrentVersion); expect(report.getVersion()).to.equal(latestReportVersion); - expect(report.toJSON()).to.deep.equal(testReportLatestFullOther); + expect(report.toJSON()).to.deep.equal(testReportLatestFromV1FullOther); expect(report.toJSON()).to.deep.not.equal(testReportV1FullOther); expect(report.getContext()).to.deep.equal(testContextOther); });