@schurakov/agent-js-cypress
Version:
Report Portal plugin for Cypress fork
86 lines (83 loc) • 2.32 kB
JavaScript
const Mocha = require('mocha');
const ReportPortalReporter = require('./reporter');
const { reporterEvents } = require('./constants');
const {
EVENT_RUN_BEGIN,
EVENT_RUN_END,
EVENT_TEST_BEGIN,
EVENT_TEST_END,
EVENT_SUITE_BEGIN,
EVENT_SUITE_END,
EVENT_HOOK_BEGIN,
EVENT_HOOK_END,
} = Mocha.Runner.constants;
const interval = setInterval(() => {}, 1000);
let reporter;
process.on('message', (message) => {
const { event } = message;
switch (event) {
case reporterEvents.INIT:
reporter = new ReportPortalReporter(message.config);
break;
case EVENT_RUN_BEGIN:
reporter.runStart(message.launch);
break;
case EVENT_RUN_END:
reporter
.runEnd()
.then(() => {
interval && clearInterval(interval);
process.exit(0);
})
.catch((err) => {
console.error(err);
interval && clearInterval(interval);
process.exit(1);
});
break;
case EVENT_SUITE_BEGIN:
reporter.suiteStart(message.suite);
break;
case EVENT_SUITE_END:
reporter.suiteEnd(message.suite);
break;
case EVENT_TEST_BEGIN:
reporter.testStart(message.test);
break;
case EVENT_TEST_END:
reporter.testEnd(message.test);
break;
case EVENT_HOOK_BEGIN:
reporter.hookStart(message.hook);
break;
case EVENT_HOOK_END:
reporter.hookEnd(message.hook);
break;
case reporterEvents.LOG:
reporter.sendLogToCurrentItem(message.log);
break;
case reporterEvents.LAUNCH_LOG:
reporter.sendLaunchLog(message.log);
break;
case reporterEvents.ADD_ATTRIBUTES:
reporter.addAttributes(message.attributes);
break;
case reporterEvents.SET_DESCRIPTION:
reporter.setDescription(message.description);
break;
case reporterEvents.SET_TEST_CASE_ID:
reporter.setTestCaseId(message.testCaseIdInfo);
break;
case reporterEvents.CUSTOM_SCREENSHOT:
reporter.saveCustomScreenshotFilename(message.screenshotInfo);
break;
case reporterEvents.SET_STATUS:
reporter.setTestItemStatus(message.statusInfo);
break;
case reporterEvents.SET_LAUNCH_STATUS:
reporter.setLaunchStatus(message.statusInfo);
break;
default:
break;
}
});