UNPKG

flagpole

Version:

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

124 lines 3.71 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const enums_1 = require("../enums"); const consoleline_1 = require("./consoleline"); const logitem_1 = require("./logitem"); const util_1 = require("../util"); class AssertionResult extends logitem_1.LogItem { constructor() { super(...arguments); this.type = enums_1.LogItemType.Result; this._sourceCode = null; this._highlight = ''; } } exports.AssertionResult = AssertionResult; class AssertionPass extends AssertionResult { constructor(message) { super(message); this.className = 'pass'; } get passed() { return true; } toConsole() { return [new consoleline_1.PassLine(this.message)]; } } exports.AssertionPass = AssertionPass; class AssertionActionCompleted extends AssertionPass { constructor(verb, noun) { super(`${verb} ${noun}`); this._verb = verb; this._noun = noun; } toConsole() { return [new consoleline_1.ActionCompletedLine(this._verb, this._noun)]; } } exports.AssertionActionCompleted = AssertionActionCompleted; class AssertionFail extends AssertionResult { constructor(message, errorDetails, sourceCode = null, highlight = '') { super(message); 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 consoleline_1.FailLine(this.message)]; const details = this.detailsMessage; if (details) { lines.push(new consoleline_1.DetailLine(this.detailsMessage)); } if (this.sourceCode && this.sourceCode != 'null') { lines.push(new consoleline_1.SourceCodeBlock(this.sourceCode, this._highlight)); } return lines; } } exports.AssertionFail = AssertionFail; class AssertionFailOptional extends AssertionFail { constructor() { super(...arguments); this.className = 'failOptional'; } get isOptional() { return true; } toConsole() { return [new consoleline_1.OptionalFailLine(this.message)]; } } exports.AssertionFailOptional = AssertionFailOptional; class AssertionFailWarning extends AssertionFail { constructor() { super(...arguments); this.className = 'failWarning'; } get isOptional() { return true; } toConsole() { return [new consoleline_1.WarningLine(this.message)]; } } exports.AssertionFailWarning = AssertionFailWarning; class AssertionActionFailed extends AssertionPass { constructor(verb, noun) { super(`${verb} ${noun}`); this._verb = verb; this._noun = noun; } toConsole() { return [new consoleline_1.ActionFailedLine(this._verb, this._noun)]; } } exports.AssertionActionFailed = AssertionActionFailed; //# sourceMappingURL=assertionresult.js.map