Files

80 lines
7.0 KiB
JavaScript
Raw Permalink Normal View History

2023-10-21 11:25:37 +03:00
// support/index.ts
import safeStringify from "fast-safe-stringify";
var afterReportedTests = [];
var beforeReportedTests = [];
function pickTestData(test) {
return {
async: !!test.async,
body: test.body,
duration: test.duration,
// @ts-ignore
err: test.err,
// @ts-ignore
final: !!test.final,
// @ts-ignore
hooks: test.hooks,
// @ts-ignore
id: test.id,
// @ts-ignore
invocationDetails: test.invocationDetails,
// @ts-ignore
order: test.order,
pending: test.pending,
retries: test.retries(),
state: test.state,
sync: !!test.sync,
timedOut: test.timedOut,
// @ts-ignore
timings: test.timings,
// @ts-ignore
type: test.type,
// @ts-ignore
wallClockStartedAt: test.wallClockStartedAt,
title: test.title,
// @ts-ignore
currentRetry: test._currentRetry,
fullTitle: test.fullTitle()
};
}
function sendTestAfterMetrics(test) {
if (test.pending || !test.state) {
return;
}
afterReportedTests.push(getTestHash(test));
cy.task(`cc:test:after:run`, safeStringify(pickTestData(test)), {
log: false
});
}
function sendTestBeforeMetrics(test) {
beforeReportedTests.push(getTestHash(test));
cy.task(`cc:test:before:run`, safeStringify(pickTestData(test)), {
log: false
});
}
function getTestHash(test) {
return `${test.fullTitle()}-${test._currentRetry}`;
}
function handleAfter(test) {
if (!afterReportedTests.includes(getTestHash(test))) {
sendTestAfterMetrics(test);
}
}
function handleBefore(test) {
if (!beforeReportedTests.includes(getTestHash(test))) {
sendTestBeforeMetrics(test);
}
}
afterEach(() => {
const currentTest = cy.state("ctx").currentTest;
if (currentTest) {
handleAfter(currentTest);
}
});
beforeEach(() => {
const currentTest = cy.state("ctx").currentTest;
if (currentTest) {
handleBefore(currentTest);
}
});
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3VwcG9ydC9pbmRleC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLy8vIDxyZWZlcmVuY2UgdHlwZXM9XCJDeXByZXNzXCIgLz5cbmltcG9ydCBzYWZlU3RyaW5naWZ5IGZyb20gXCJmYXN0LXNhZmUtc3RyaW5naWZ5XCI7XG5cbmNvbnN0IGFmdGVyUmVwb3J0ZWRUZXN0czogc3RyaW5nW10gPSBbXTtcbmNvbnN0IGJlZm9yZVJlcG9ydGVkVGVzdHM6IHN0cmluZ1tdID0gW107XG5cbmZ1bmN0aW9uIHBpY2tUZXN0RGF0YSh0ZXN0OiBNb2NoYS5SdW5uYWJsZSkge1xuICByZXR1cm4ge1xuICAgIGFzeW5jOiAhIXRlc3QuYXN5bmMsXG4gICAgYm9keTogdGVzdC5ib2R5LFxuICAgIGR1cmF0aW9uOiB0ZXN0LmR1cmF0aW9uLFxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBlcnI6IHRlc3QuZXJyLFxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBmaW5hbDogISF0ZXN0LmZpbmFsLFxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBob29rczogdGVzdC5ob29rcyxcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgaWQ6IHRlc3QuaWQsXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGludm9jYXRpb25EZXRhaWxzOiB0ZXN0Lmludm9jYXRpb25EZXRhaWxzLFxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBvcmRlcjogdGVzdC5vcmRlcixcbiAgICBwZW5kaW5nOiB0ZXN0LnBlbmRpbmcsXG4gICAgcmV0cmllczogdGVzdC5yZXRyaWVzKCksXG4gICAgc3RhdGU6IHRlc3Quc3RhdGUsXG4gICAgc3luYzogISF0ZXN0LnN5bmMsXG4gICAgdGltZWRPdXQ6IHRlc3QudGltZWRPdXQsXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIHRpbWluZ3M6IHRlc3QudGltaW5ncyxcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgdHlwZTogdGVzdC50eXBlLFxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICB3YWxsQ2xvY2tTdGFydGVkQXQ6IHRlc3Qud2FsbENsb2NrU3RhcnRlZEF0LFxuICAgIHRpdGxlOiB0ZXN0LnRpdGxlLFxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBjdXJyZW50UmV0cnk6IHRlc3QuX2N1cnJlbnRSZXRyeSxcbiAgICBmdWxsVGl0bGU6IHRlc3QuZnVsbFRpdGxlKCksXG4gIH07XG59XG5mdW5jdGlvbiBzZW5kVGVzdEFmdGVyTWV0cmljcyh0ZXN0OiBNb2NoYS5SdW5uYWJsZSkge1xuICBpZiAodGVzdC5wZW5kaW5nIHx8ICF0ZXN0LnN0YXRlKSB7XG4gICAgLy8gVGVzdCBpcyBlaXRoZXIgc2tpcHBlZCBvciBoYXNuJ3QgcmFuIHlldC5cbiAgICAvLyBXZSBuZWVkIHRvIGNoZWNrIHRoaXMgYmVjYXVzZSBhbGwgdGVzdHMgd2lsbCBzaG93IHVwIGluIHRoZSBob29rIGV2ZXJ5IHRpbWVcbiAgICByZXR1cm47XG4gIH1cbiAgLy8gQHRzLWlnbm9yZVxuICBhZnRlclJlcG9ydGVkVGVzdHMucHVzaChnZXRUZXN0SGFzaCh0ZXN0KSk7XG4gIGN5LnRhc2soYGN1cnJlbnRzOnRlc3Q6YWZ0ZXI6cnVuYCwgc2FmZVN0cmluZ2lmeShwaWNrVGVzdERhdGEodGVzdCkpLCB7XG4gICAgbG9nOiBmYWxzZSxcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHNlbmRUZXN0QmVmb3JlTWV0cmljcyh0ZXN0OiBNb2NoYS5SdW5uYWJsZSkge1xuICBiZWZvcmVSZXBvcnRlZFRlc3RzLnB1c2goZ2V0VGVzdEhhc2godGVzdCkpO1xuICBjeS50YXNrKGBjdXJyZW50czp0ZXN0OmJlZm9yZTpydW5gLCBzYWZlU3RyaW5naWZ5KHBpY2tUZXN0RGF0YSh0ZXN0KSksIHtcbiAgICBsb2c6IGZhbHNlLFxuICB9KTtcbn1cblxuZnVuY3Rpb24gZ2V0VGVzdEhhc2godGVzdDogTW9jaGEuUnVubmFibGUpIHtcbiAgLy8gQHRzLWlnbm9yZVxuICByZXR1cm4gYCR7dGVzdC5mdWxsVGl0bGUoKX0tJHt0ZXN0Ll9jdXJyZW50UmV0cnl9YDtcbn1cblxuZnVuY3Rpb24gaGFuZGxlQWZ0ZXIodGVzdDogTW9jaGEuUnVubmFibGUpIHtcbiAgaWYgKCFhZnRlclJlcG9ydGVkVGVzdHMuaW5jbHVkZXMoZ2V0VGVzdEhhc2godGVzdCkpKSB7XG4gICAgc2VuZFRlc3RBZnRlck1ldHJpY3ModGVzdCk7XG4gIH1cbn1cbmZ1bmN0aW9uIGhhbmRsZUJlZm9yZSh0ZXN0OiBNb2NoYS5SdW5uYWJsZSkge1xuICBpZiAoIWJlZm9yZVJlcG9ydGVkVGVzdHMuaW5jbHVkZXMoZ2V0VGVzdEhhc2godGVzdCkpKSB7XG4gICAgc2VuZFRlc3RCZWZvcmVNZXRyaWNzKHRlc3QpO1xuICB9XG59XG5cbmFmdGVyRWFjaCgoKSA9PiB7XG4gIC8vIEB0cy1pZ25vcmVcbiAgY29uc3QgY3VycmVudFRlc3QgPSBjeS5zdGF0ZShcImN0eFwiKS5jdXJyZW50VGVzdDtcbiAgaWYgKGN1cnJlbnRUZXN0KSB7XG4gICAgaGFuZGxlQWZ0ZXIoY3VycmVudFRlc3QpO1xuICB9XG59KTtcblxuYmVmb3JlRWFjaCgoKSA9PiB7XG4gIC8vIEB0cy1pZ25vcmVcbiAgY29uc3QgY3VycmVudFRlc3QgPSBjeS5zdGF0ZShcImN0eFwiKS5jdXJyZW50VGVzdDtcblxuICBpZiAoY3VycmVudFRlc3QpIHtcbiAgICBoYW5kbGVCZWZvcmUoY3VycmVudFRlc3QpO1xuICB9XG59KTtcbiJdLAogICJtYXBwaW5ncyI6ICI7QUFDQSxPQUFPLG1CQUFtQjtBQUUxQixJQUFNLHFCQUErQixDQUFDO0FBQ3RDLElBQU0sc0JBQWdDLENBQUM7QUFFdkMsU0FBUyxhQUFhLE1BQXNCO0FBQzFDLFNBQU87QUFBQSxJQUNMLE9BQU8sQ0FBQyxDQUFDLEtBQUs7QUFBQSxJQUNkLE1BQU0sS0FBSztBQUFBLElBQ1gsVUFBVSxLQUFLO0FBQUE7QUFBQSxJQUVmLEtBQUssS0FBSztBQUFBO0FBQUEsSUFFVixPQUFPLENBQUMsQ0FBQyxLQUFLO0FBQUE7QUFBQSxJQUVkLE9BQU8sS0FBSztBQUFBO0FBQUEsSUFFWixJQUFJLEtBQUs7QUFBQTtBQUFBLElBRVQsbUJBQW1CLEtBQUs7QUFBQTtBQUFBLElBRXhCLE9BQU8sS0FBSztBQUFBLElBQ1osU0FBUyxLQUFLO0FBQUEsSUFDZCxTQUFTLEtBQUssUUFBUTtBQUFBLElBQ3RCLE9BQU8sS0FBSztBQUFBLElBQ1osTUFBTSxDQUFDLENBQUMsS0FBSztBQUFBLElBQ2IsVUFBVSxLQUFLO0FBQUE7QUFBQSxJQUVmLFNBQVMsS0FBSztBQUFBO0FBQUEsSUFFZCxNQUFNLEtBQUs7QUFBQTtBQUFBLElBRVgsb0JBQW9CLEtBQUs7QUFBQSxJQUN6QixPQUFPLEtBQUs7QUFBQTtBQUFBLElBRVosY0FBYyxLQUFLO0FBQUEsS