flagpole
Version:
Simple and fast DOM integration, headless or headful browser, and REST API testing framework.
141 lines • 4.54 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.AssertionActionFailed = exports.AssertionFailWarning = exports.AssertionFailOptional = exports.AssertionFail = exports.AssertionActionCompleted = exports.AssertionPass = exports.AssertionResult = void 0;
const console_line_1 = require("./console-line");
const log_item_1 = require("./log-item");
const util_1 = require("../util");
const iconsole_log_1 = require("../interfaces/iconsole-log");
class AssertionResult extends log_item_1.LogItem {
constructor() {
super(...arguments);
this._sourceCode = null;
this._highlight = "";
}
}
exports.AssertionResult = AssertionResult;
class AssertionPass extends AssertionResult {
constructor(message) {
super(message);
this.type = iconsole_log_1.LineType.resultPass;
this.className = "pass";
}
get passed() {
return true;
}
toConsole() {
return [new console_line_1.PassLine(this.message)];
}
}
exports.AssertionPass = AssertionPass;
class AssertionActionCompleted extends AssertionPass {
constructor(verb, noun) {
super(`${verb} ${noun}`);
this.type = iconsole_log_1.LineType.detail;
this._verb = verb;
this._noun = noun;
}
toConsole() {
return [new console_line_1.ActionCompletedLine(this._verb, this._noun)];
}
}
exports.AssertionActionCompleted = AssertionActionCompleted;
class AssertionFail extends AssertionResult {
constructor(message, errorDetails, sourceCode = null, highlight = "") {
super(message);
this.type = iconsole_log_1.LineType.resultFailure;
this.className = "fail";
this._rawDetails = errorDetails;
this._sourceCode = sourceCode;
this._highlight = highlight;
}
get failed() {
return true;
}
get isDetails() {
return !!this._rawDetails;
}
get sourceCode() {
return String(this._sourceCode);
}
get detailsMessage() {
if (util_1.isNullOrUndefined(this._rawDetails)) {
return [""];
}
const type = util_1.toType(this._rawDetails);
const details = this._rawDetails;
if (type == "array") {
const arr = details;
if (arr.every((item) => {
return typeof item == "string";
})) {
return this._rawDetails;
}
}
else if (details && details.message) {
return [details.message];
}
return [String(details)];
}
toConsole() {
const lines = [new console_line_1.FailLine(this.message)];
this.detailsMessage
.filter((str) => str.length > 0)
.forEach((details) => {
lines.push(new console_line_1.ErrorActualValueLine(details));
});
if (this.sourceCode && this.sourceCode != "null") {
lines.push(new console_line_1.SourceCodeBlock(this.sourceCode, this._highlight));
}
return lines;
}
toHtml() {
return `
<li class="${this.className}">
<span class="message">${this.message}</span>
<ul><li>${this.detailsMessage}</li></ul>
</li>
`;
}
}
exports.AssertionFail = AssertionFail;
class AssertionFailOptional extends AssertionFail {
constructor() {
super(...arguments);
this.type = iconsole_log_1.LineType.resultOptionalFailure;
this.className = "failOptional";
}
get isOptional() {
return true;
}
toConsole() {
return [new console_line_1.OptionalFailLine(this.message)];
}
}
exports.AssertionFailOptional = AssertionFailOptional;
class AssertionFailWarning extends AssertionFail {
constructor() {
super(...arguments);
this.type = iconsole_log_1.LineType.comment;
this.className = "failWarning";
}
get isOptional() {
return true;
}
toConsole() {
return [new console_line_1.WarningLine(this.message)];
}
}
exports.AssertionFailWarning = AssertionFailWarning;
class AssertionActionFailed extends AssertionPass {
constructor(verb, noun) {
super(`${verb} ${noun}`);
this.type = iconsole_log_1.LineType.resultFailure;
this._verb = verb;
this._noun = noun;
}
toConsole() {
return [new console_line_1.ActionFailedLine(this._verb, this._noun)];
}
}
exports.AssertionActionFailed = AssertionActionFailed;
//# sourceMappingURL=assertion-result.js.map