@badeball/cypress-cucumber-preprocessor
Version:
[](https://github.com/badeball/cypress-cucumber-preprocessor/actions/workflows/build.yml) [ • 4.2 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.createPrettyFormatter = exports.createJsonFormatter = exports.createHtmlStream = void 0;
const events_1 = require("events");
const html_formatter_1 = __importDefault(require("@cucumber/html-formatter"));
const pretty_formatter_1 = __importDefault(require("@cucumber/pretty-formatter"));
const cucumber_1 = require("@cucumber/cucumber");
const chalk_1 = __importDefault(require("chalk"));
const type_guards_1 = require("./type-guards");
const assertions_1 = require("./assertions");
function createHtmlStream() {
return new html_formatter_1.default(require.resolve("@cucumber/html-formatter/dist/main.css", {
paths: [__dirname],
}), require.resolve("@cucumber/html-formatter/dist/main.js", {
paths: [__dirname],
}));
}
exports.createHtmlStream = createHtmlStream;
function createJsonFormatter(envelopes, log) {
const eventBroadcaster = new events_1.EventEmitter();
const eventDataCollector = new cucumber_1.formatterHelpers.EventDataCollector(eventBroadcaster);
const stepDefinitions = envelopes
.map((m) => m.stepDefinition)
.filter(type_guards_1.notNull)
.map((s) => {
return {
id: s.id,
uri: "not available",
line: 0,
};
});
new cucumber_1.JsonFormatter({
eventBroadcaster,
eventDataCollector,
log(chunk) {
(0, assertions_1.assertIsString)(chunk, "Expected a JSON output of string, but got " + typeof chunk),
log(chunk);
},
supportCodeLibrary: {
stepDefinitions,
},
colorFns: null,
cwd: null,
parsedArgvOptions: {},
snippetBuilder: null,
stream: null,
cleanup: null,
});
return eventBroadcaster;
}
exports.createJsonFormatter = createJsonFormatter;
function createPrettyFormatter(useColors, log) {
const eventBroadcaster = new events_1.EventEmitter();
const eventDataCollector = new cucumber_1.formatterHelpers.EventDataCollector(eventBroadcaster);
const colorFns = useColors
? {
forStatus(status) {
return {
AMBIGUOUS: chalk_1.default.red.bind(chalk_1.default),
FAILED: chalk_1.default.red.bind(chalk_1.default),
PASSED: chalk_1.default.green.bind(chalk_1.default),
PENDING: chalk_1.default.yellow.bind(chalk_1.default),
SKIPPED: chalk_1.default.cyan.bind(chalk_1.default),
UNDEFINED: chalk_1.default.yellow.bind(chalk_1.default),
UNKNOWN: chalk_1.default.yellow.bind(chalk_1.default),
}[status];
},
location: chalk_1.default.gray.bind(chalk_1.default),
tag: chalk_1.default.cyan.bind(chalk_1.default),
diffAdded: chalk_1.default.green.bind(chalk_1.default),
diffRemoved: chalk_1.default.red.bind(chalk_1.default),
errorMessage: chalk_1.default.red.bind(chalk_1.default),
errorStack: chalk_1.default.grey.bind(chalk_1.default),
}
: {
forStatus() {
return (x) => x;
},
location: (x) => x,
tag: (x) => x,
diffAdded: (x) => x,
diffRemoved: (x) => x,
errorMessage: (x) => x,
errorStack: (x) => x,
};
new pretty_formatter_1.default({
eventBroadcaster,
eventDataCollector,
log(chunk) {
(0, assertions_1.assertIsString)(chunk, "Expected a JSON output of string, but got " + typeof chunk),
log(chunk);
},
supportCodeLibrary: null,
colorFns,
cwd: null,
parsedArgvOptions: {
colorsEnabled: useColors,
},
snippetBuilder: null,
stream: null,
cleanup: null,
});
return eventBroadcaster;
}
exports.createPrettyFormatter = createPrettyFormatter;