UNPKG

@uuv/playwright

Version:

A solution to facilitate the writing and execution of E2E tests understandable by any human being using cucumber(BDD) and playwright

83 lines (82 loc) 3.9 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const uuv_playwright_reporter_helper_1 = __importDefault(require("./uuv-playwright-reporter-helper")); const chalk_1 = __importDefault(require("chalk")); const event_1 = require("@uuv/runner-commons/runner/event"); class UuvPlawrightReporter { helper = new uuv_playwright_reporter_helper_1.default(); constructor() { event_1.UUVListenerHelper.build(); } onStdOut(chunk, test, result) { console.info(chunk); } onStdErr(chunk, test, result) { console.error(chalk_1.default.red(chunk)); } onBegin(config, suite) { const startTimestamp = this.helper.getTimestamp(); // console.log(`Starting the run with ${suite.allTests().length} tests`); this.helper.createTestRunStartedEnvelope(config, suite, startTimestamp); event_1.UUVEventEmitter.getInstance().emitProgressStart(); console.info(chalk_1.default.yellow(`Starting the run with ${suite.allTests().length} tests`)); } onError(error) { console.error(chalk_1.default.red("An error occured: ")); console.dir(error); } onTestBegin(test, result) { const startTimestamp = this.helper.getTimestamp(result.startTime); // console.log(`Starting test ${test.title} - ${test.parent.location?.file}`); const featureFile = this.helper.getOriginalFeatureFile(test.location.file); if (featureFile) { this.helper.logTestBegin(test, featureFile); this.helper.createTestCaseStartedEnvelope(test, result, featureFile, startTimestamp); } } onStepBegin(test, result, step) { const startTimestamp = this.helper.getTimestamp(result.startTime); // console.log(`Starting step ${test.title} - ${step.title} - ${step.location?.file} - ${step.location?.line} - ${step.location?.column}`); const featureFile = this.helper.getOriginalFeatureFile(test.location.file); if (featureFile) { this.helper.createTestStepStartedEnvelope(test, step, featureFile, startTimestamp); } } onStepEnd(test, result, step) { const endTimestamp = this.helper.getTimestamp(result.startTime); // console.log(`End step ${test.title} - ${step.title} - ${result.status} - ${step.error}`); const featureFile = this.helper.getOriginalFeatureFile(test.location.file); if (featureFile) { this.helper.createTestStepFinishedEnvelope(test, step, result, featureFile, endTimestamp); } } onTestEnd(test, result) { const endTimestamp = this.helper.getTimestamp(); // console.log(`Finished test ${test.title}: ${result.status}`); const featureFile = this.helper.getOriginalFeatureFile(test.location.file); if (featureFile) { this.helper.logTestEnd(test, result); this.helper.createTestCaseFinishedEnvelope(test, result, featureFile, endTimestamp); } } async onEnd(result) { // console.debug(`Finished the run: ${result.status}`); this.helper.createTestRunFinishedEnvelope(result); console.log(chalk_1.default.yellow("End of the tests execution\n")); await this.helper.generateReport( // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore process.env.REPORT_TYPE); if (result.status === "passed") { console.log(chalk_1.default.green("Tests executed successfully")); } else { console.error(chalk_1.default.red(`Tests executed with status: ${result.status}`)); } event_1.UUVEventEmitter.getInstance().emitProgressFinish(); } } exports.default = UuvPlawrightReporter;