UNPKG

3.71 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3const enums_1 = require("../enums");
4const consoleline_1 = require("./consoleline");
5const logitem_1 = require("./logitem");
6const util_1 = require("../util");
7class AssertionResult extends logitem_1.LogItem {
8 constructor() {
9 super(...arguments);
10 this.type = enums_1.LogItemType.Result;
11 this._sourceCode = null;
12 this._highlight = '';
13 }
14}
15exports.AssertionResult = AssertionResult;
16class AssertionPass extends AssertionResult {
17 constructor(message) {
18 super(message);
19 this.className = 'pass';
20 }
21 get passed() {
22 return true;
23 }
24 toConsole() {
25 return [new consoleline_1.PassLine(this.message)];
26 }
27}
28exports.AssertionPass = AssertionPass;
29class AssertionActionCompleted extends AssertionPass {
30 constructor(verb, noun) {
31 super(`${verb} ${noun}`);
32 this._verb = verb;
33 this._noun = noun;
34 }
35 toConsole() {
36 return [new consoleline_1.ActionCompletedLine(this._verb, this._noun)];
37 }
38}
39exports.AssertionActionCompleted = AssertionActionCompleted;
40class AssertionFail extends AssertionResult {
41 constructor(message, errorDetails, sourceCode = null, highlight = '') {
42 super(message);
43 this.className = 'fail';
44 this._rawDetails = errorDetails;
45 this._sourceCode = sourceCode;
46 this._highlight = highlight;
47 }
48 get failed() {
49 return true;
50 }
51 get isDetails() {
52 return !!this._rawDetails;
53 }
54 get sourceCode() {
55 return String(this._sourceCode);
56 }
57 get detailsMessage() {
58 if (util_1.isNullOrUndefined(this._rawDetails)) {
59 return '';
60 }
61 const type = util_1.toType(this._rawDetails);
62 const details = this._rawDetails;
63 if (type == 'array') {
64 const arr = details;
65 if (arr.every((item) => { return typeof item == 'string'; })) {
66 return this._rawDetails;
67 }
68 }
69 else if (details && details.message) {
70 return details.message;
71 }
72 return String(details);
73 }
74 toConsole() {
75 const lines = [new consoleline_1.FailLine(this.message)];
76 const details = this.detailsMessage;
77 if (details) {
78 lines.push(new consoleline_1.DetailLine(this.detailsMessage));
79 }
80 if (this.sourceCode && this.sourceCode != 'null') {
81 lines.push(new consoleline_1.SourceCodeBlock(this.sourceCode, this._highlight));
82 }
83 return lines;
84 }
85}
86exports.AssertionFail = AssertionFail;
87class AssertionFailOptional extends AssertionFail {
88 constructor() {
89 super(...arguments);
90 this.className = 'failOptional';
91 }
92 get isOptional() {
93 return true;
94 }
95 toConsole() {
96 return [new consoleline_1.OptionalFailLine(this.message)];
97 }
98}
99exports.AssertionFailOptional = AssertionFailOptional;
100class AssertionFailWarning extends AssertionFail {
101 constructor() {
102 super(...arguments);
103 this.className = 'failWarning';
104 }
105 get isOptional() {
106 return true;
107 }
108 toConsole() {
109 return [new consoleline_1.WarningLine(this.message)];
110 }
111}
112exports.AssertionFailWarning = AssertionFailWarning;
113class AssertionActionFailed extends AssertionPass {
114 constructor(verb, noun) {
115 super(`${verb} ${noun}`);
116 this._verb = verb;
117 this._noun = noun;
118 }
119 toConsole() {
120 return [new consoleline_1.ActionFailedLine(this._verb, this._noun)];
121 }
122}
123exports.AssertionActionFailed = AssertionActionFailed;
124//# sourceMappingURL=assertionresult.js.map
\No newline at end of file