devops: flakiness dashboard to support new folio report (#6677)
JSON report will change again in https://github.com/microsoft/playwright/pull/6656 This patch modifies azure function to accomodate to the new format. Note: with the new notion of projects instead of per-test parameters, we can actually compress dashboard per commit much more efficient. If the format sticks, we'll follow-up with a `dashboard_compressed_v2.js`.
This commit is contained in:
parent
447a0c4bb8
commit
ae35906fb5
|
|
@ -33,6 +33,18 @@ module.exports = {processDashboardCompressedV1, compressReports};
|
||||||
function compressReports(reports) {
|
function compressReports(reports) {
|
||||||
const files = {};
|
const files = {};
|
||||||
for (const report of reports) {
|
for (const report of reports) {
|
||||||
|
const projectNameToMetadata = new Map();
|
||||||
|
if (report.config && report.config.projects) {
|
||||||
|
for (const project of report.config.projects) {
|
||||||
|
if (project.metadata.headful === false)
|
||||||
|
delete project.metadata.headful;
|
||||||
|
if (project.metadata.mode === 'default')
|
||||||
|
delete project.metadata.mode;
|
||||||
|
if (project.metadata.platform.toLowerCase() !== 'android')
|
||||||
|
delete project.metadata.platform;
|
||||||
|
projectNameToMetadata.set(project.name, project.metadata);
|
||||||
|
}
|
||||||
|
}
|
||||||
for (const spec of flattenSpecs(report)) {
|
for (const spec of flattenSpecs(report)) {
|
||||||
let specs = files[spec.file];
|
let specs = files[spec.file];
|
||||||
if (!specs) {
|
if (!specs) {
|
||||||
|
|
@ -62,7 +74,9 @@ function compressReports(reports) {
|
||||||
// Folio currently reports `data` as part of test results.
|
// Folio currently reports `data` as part of test results.
|
||||||
// In our case, all data will be identical - so pick
|
// In our case, all data will be identical - so pick
|
||||||
// from the first result.
|
// from the first result.
|
||||||
const testParameters = test.results[0].data;
|
let testParameters = test.results[0].data;
|
||||||
|
if (!testParameters && test.projectName)
|
||||||
|
testParameters = projectNameToMetadata.get(test.projectName);
|
||||||
// Prefer test platform when it exists, and fallback to
|
// Prefer test platform when it exists, and fallback to
|
||||||
// the host platform when it doesn't. This way we can attribute
|
// the host platform when it doesn't. This way we can attribute
|
||||||
// android tests to android.
|
// android tests to android.
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue