UNPKG

flagpole

Version:

Simple and fast DOM integration, headless or headful browser, and REST API testing framework.

141 lines 4.54 kB
"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