@git.zone/tstest 3.1.3 → 3.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/tstest.classes.tap.parser.d.ts +9 -0
- package/dist_ts/tstest.classes.tap.parser.js +89 -32
- package/dist_ts/tstest.classes.tap.testresult.d.ts +6 -1
- package/dist_ts/tstest.classes.tap.testresult.js +10 -2
- package/dist_ts/tstest.logging.d.ts +2 -0
- package/dist_ts/tstest.logging.js +37 -2
- package/dist_ts_tapbundle/webhelpers.js +12 -2
- package/npmextra.json +11 -5
- package/package.json +12 -11
- package/readme.hints.md +46 -1
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/tstest.classes.tap.parser.ts +96 -33
- package/ts/tstest.classes.tap.testresult.ts +10 -1
- package/ts/tstest.logging.ts +39 -3
- package/dist_ts/tstest.classes.tap.parser.old.d.ts +0 -50
- package/dist_ts/tstest.classes.tap.parser.old.js +0 -332
- package/dist_ts_tapbundle/tapbundle.protocols.d.ts +0 -88
- package/dist_ts_tapbundle/tapbundle.protocols.js +0 -168
- package/dist_ts_tapbundle/ts_tapbundle/00_commitinfo_data.d.ts +0 -8
- package/dist_ts_tapbundle/ts_tapbundle/00_commitinfo_data.js +0 -9
- package/dist_ts_tapbundle/ts_tapbundle/index.d.ts +0 -6
- package/dist_ts_tapbundle/ts_tapbundle/index.js +0 -7
- package/dist_ts_tapbundle/ts_tapbundle/tapbundle.classes.pretask.d.ts +0 -10
- package/dist_ts_tapbundle/ts_tapbundle/tapbundle.classes.pretask.js +0 -13
- package/dist_ts_tapbundle/ts_tapbundle/tapbundle.classes.tap.d.ts +0 -104
- package/dist_ts_tapbundle/ts_tapbundle/tapbundle.classes.tap.js +0 -401
- package/dist_ts_tapbundle/ts_tapbundle/tapbundle.classes.taptest.d.ts +0 -38
- package/dist_ts_tapbundle/ts_tapbundle/tapbundle.classes.taptest.js +0 -110
- package/dist_ts_tapbundle/ts_tapbundle/tapbundle.classes.taptools.d.ts +0 -109
- package/dist_ts_tapbundle/ts_tapbundle/tapbundle.classes.taptools.js +0 -241
- package/dist_ts_tapbundle/ts_tapbundle/tapbundle.classes.tapwrap.d.ts +0 -8
- package/dist_ts_tapbundle/ts_tapbundle/tapbundle.classes.tapwrap.js +0 -7
- package/dist_ts_tapbundle/ts_tapbundle/tapbundle.plugins.d.ts +0 -8
- package/dist_ts_tapbundle/ts_tapbundle/tapbundle.plugins.js +0 -10
- package/dist_ts_tapbundle/ts_tapbundle/tapbundle.tapcreator.d.ts +0 -3
- package/dist_ts_tapbundle/ts_tapbundle/tapbundle.tapcreator.js +0 -5
- package/dist_ts_tapbundle/ts_tapbundle/webhelpers.d.ts +0 -7
- package/dist_ts_tapbundle/ts_tapbundle/webhelpers.js +0 -35
- package/dist_ts_tapbundle/ts_tapbundle_node/classes.pathinject.d.ts +0 -5
- package/dist_ts_tapbundle/ts_tapbundle_node/classes.pathinject.js +0 -13
- package/dist_ts_tapbundle/ts_tapbundle_node/plugins.d.ts +0 -11
- package/dist_ts_tapbundle/ts_tapbundle_node/plugins.js +0 -14
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { TapTools } from './tapbundle.classes.taptools.js';
|
|
2
|
-
export interface IPreTaskFunction {
|
|
3
|
-
(tapTools?: TapTools): Promise<any>;
|
|
4
|
-
}
|
|
5
|
-
export declare class PreTask {
|
|
6
|
-
description: string;
|
|
7
|
-
preTaskFunction: IPreTaskFunction;
|
|
8
|
-
constructor(descriptionArg: string, preTaskFunctionArg: IPreTaskFunction);
|
|
9
|
-
run(): Promise<void>;
|
|
10
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import * as plugins from './tapbundle.plugins.js';
|
|
2
|
-
import { TapTools } from './tapbundle.classes.taptools.js';
|
|
3
|
-
export class PreTask {
|
|
4
|
-
constructor(descriptionArg, preTaskFunctionArg) {
|
|
5
|
-
this.description = descriptionArg;
|
|
6
|
-
this.preTaskFunction = preTaskFunctionArg;
|
|
7
|
-
}
|
|
8
|
-
async run() {
|
|
9
|
-
console.log(`::__PRETASK: ${this.description}`);
|
|
10
|
-
await this.preTaskFunction(new TapTools(null));
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFwYnVuZGxlLmNsYXNzZXMucHJldGFzay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzX3RhcGJ1bmRsZS90YXBidW5kbGUuY2xhc3Nlcy5wcmV0YXNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sd0JBQXdCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBTTNELE1BQU0sT0FBTyxPQUFPO0lBSWxCLFlBQVksY0FBc0IsRUFBRSxrQkFBb0M7UUFDdEUsSUFBSSxDQUFDLFdBQVcsR0FBRyxjQUFjLENBQUM7UUFDbEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxrQkFBa0IsQ0FBQztJQUM1QyxDQUFDO0lBRU0sS0FBSyxDQUFDLEdBQUc7UUFDZCxPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFnQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUNoRCxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNqRCxDQUFDO0NBQ0YifQ==
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
import { type IPreTaskFunction } from './tapbundle.classes.pretask.js';
|
|
2
|
-
import { TapTest, type ITestFunction } from './tapbundle.classes.taptest.js';
|
|
3
|
-
export interface ITestSuite {
|
|
4
|
-
description: string;
|
|
5
|
-
tests: TapTest<any>[];
|
|
6
|
-
beforeEach?: ITestFunction<any>;
|
|
7
|
-
afterEach?: ITestFunction<any>;
|
|
8
|
-
parent?: ITestSuite;
|
|
9
|
-
children: ITestSuite[];
|
|
10
|
-
}
|
|
11
|
-
declare class TestBuilder<T> {
|
|
12
|
-
private _tap;
|
|
13
|
-
private _tags;
|
|
14
|
-
private _priority;
|
|
15
|
-
private _retryCount?;
|
|
16
|
-
private _timeoutMs?;
|
|
17
|
-
constructor(tap: Tap<T>);
|
|
18
|
-
tags(...tags: string[]): this;
|
|
19
|
-
priority(level: 'high' | 'medium' | 'low'): this;
|
|
20
|
-
retry(count: number): this;
|
|
21
|
-
timeout(ms: number): this;
|
|
22
|
-
test(description: string, testFunction: ITestFunction<T>): TapTest<T>;
|
|
23
|
-
testOnly(description: string, testFunction: ITestFunction<T>): TapTest<T>;
|
|
24
|
-
testSkip(description: string, testFunction: ITestFunction<T>): TapTest<T>;
|
|
25
|
-
}
|
|
26
|
-
export declare class Tap<T> {
|
|
27
|
-
private _skipCount;
|
|
28
|
-
private _filterTags;
|
|
29
|
-
constructor();
|
|
30
|
-
tags(...tags: string[]): TestBuilder<T>;
|
|
31
|
-
priority(level: 'high' | 'medium' | 'low'): TestBuilder<T>;
|
|
32
|
-
retry(count: number): TestBuilder<T>;
|
|
33
|
-
timeout(ms: number): TestBuilder<T>;
|
|
34
|
-
/**
|
|
35
|
-
* skips a test
|
|
36
|
-
* tests marked with tap.skip.test() are never executed
|
|
37
|
-
*/
|
|
38
|
-
skip: {
|
|
39
|
-
test: (descriptionArg: string, functionArg: ITestFunction<T>) => void;
|
|
40
|
-
testParallel: (descriptionArg: string, functionArg: ITestFunction<T>) => void;
|
|
41
|
-
};
|
|
42
|
-
/**
|
|
43
|
-
* only executes tests marked as ONLY
|
|
44
|
-
*/
|
|
45
|
-
only: {
|
|
46
|
-
test: (descriptionArg: string, testFunctionArg: ITestFunction<T>) => void;
|
|
47
|
-
};
|
|
48
|
-
private _tapPreTasks;
|
|
49
|
-
private _tapTests;
|
|
50
|
-
private _tapTestsOnly;
|
|
51
|
-
private _currentSuite;
|
|
52
|
-
private _rootSuites;
|
|
53
|
-
/**
|
|
54
|
-
* Normal test function, will run one by one
|
|
55
|
-
* @param testDescription - A description of what the test does
|
|
56
|
-
* @param testFunction - A Function that returns a Promise and resolves or rejects
|
|
57
|
-
*/
|
|
58
|
-
test(testDescription: string, testFunction: ITestFunction<T>, modeArg?: 'normal' | 'only' | 'skip'): TapTest<T>;
|
|
59
|
-
preTask(descriptionArg: string, functionArg: IPreTaskFunction): void;
|
|
60
|
-
/**
|
|
61
|
-
* A parallel test that will not be waited for before the next starts.
|
|
62
|
-
* @param testDescription - A description of what the test does
|
|
63
|
-
* @param testFunction - A Function that returns a Promise and resolves or rejects
|
|
64
|
-
*/
|
|
65
|
-
testParallel(testDescription: string, testFunction: ITestFunction<T>): void;
|
|
66
|
-
/**
|
|
67
|
-
* Create a test suite for grouping related tests
|
|
68
|
-
*/
|
|
69
|
-
describe(description: string, suiteFunction: () => void): void;
|
|
70
|
-
/**
|
|
71
|
-
* Set up a function to run before each test in the current suite
|
|
72
|
-
*/
|
|
73
|
-
beforeEach(setupFunction: ITestFunction<any>): void;
|
|
74
|
-
/**
|
|
75
|
-
* Set up a function to run after each test in the current suite
|
|
76
|
-
*/
|
|
77
|
-
afterEach(teardownFunction: ITestFunction<any>): void;
|
|
78
|
-
/**
|
|
79
|
-
* collect all tests from suites
|
|
80
|
-
*/
|
|
81
|
-
private _collectTests;
|
|
82
|
-
/**
|
|
83
|
-
* starts the test evaluation
|
|
84
|
-
*/
|
|
85
|
-
start(optionsArg?: {
|
|
86
|
-
throwOnError: boolean;
|
|
87
|
-
}): Promise<void>;
|
|
88
|
-
/**
|
|
89
|
-
* Run tests in a suite with lifecycle hooks
|
|
90
|
-
*/
|
|
91
|
-
private _runSuite;
|
|
92
|
-
stopForcefully(codeArg?: number, directArg?: boolean): Promise<void>;
|
|
93
|
-
/**
|
|
94
|
-
* handle errors
|
|
95
|
-
*/
|
|
96
|
-
threw(err: Error): void;
|
|
97
|
-
/**
|
|
98
|
-
* Explicitly fail the current test with a custom message
|
|
99
|
-
* @param message - The failure message to display
|
|
100
|
-
*/
|
|
101
|
-
fail(message?: string): never;
|
|
102
|
-
}
|
|
103
|
-
export declare const tap: Tap<unknown>;
|
|
104
|
-
export {};
|
|
@@ -1,401 +0,0 @@
|
|
|
1
|
-
import * as plugins from './tapbundle.plugins.js';
|
|
2
|
-
import { PreTask } from './tapbundle.classes.pretask.js';
|
|
3
|
-
import { TapTest } from './tapbundle.classes.taptest.js';
|
|
4
|
-
class TestBuilder {
|
|
5
|
-
constructor(tap) {
|
|
6
|
-
this._tags = [];
|
|
7
|
-
this._priority = 'medium';
|
|
8
|
-
this._tap = tap;
|
|
9
|
-
}
|
|
10
|
-
tags(...tags) {
|
|
11
|
-
this._tags = tags;
|
|
12
|
-
return this;
|
|
13
|
-
}
|
|
14
|
-
priority(level) {
|
|
15
|
-
this._priority = level;
|
|
16
|
-
return this;
|
|
17
|
-
}
|
|
18
|
-
retry(count) {
|
|
19
|
-
this._retryCount = count;
|
|
20
|
-
return this;
|
|
21
|
-
}
|
|
22
|
-
timeout(ms) {
|
|
23
|
-
this._timeoutMs = ms;
|
|
24
|
-
return this;
|
|
25
|
-
}
|
|
26
|
-
test(description, testFunction) {
|
|
27
|
-
const test = this._tap.test(description, testFunction, 'normal');
|
|
28
|
-
// Apply settings to the test
|
|
29
|
-
if (this._tags.length > 0) {
|
|
30
|
-
test.tags = this._tags;
|
|
31
|
-
}
|
|
32
|
-
test.priority = this._priority;
|
|
33
|
-
if (this._retryCount !== undefined) {
|
|
34
|
-
test.tapTools.retry(this._retryCount);
|
|
35
|
-
}
|
|
36
|
-
if (this._timeoutMs !== undefined) {
|
|
37
|
-
test.timeoutMs = this._timeoutMs;
|
|
38
|
-
}
|
|
39
|
-
return test;
|
|
40
|
-
}
|
|
41
|
-
testOnly(description, testFunction) {
|
|
42
|
-
const test = this._tap.test(description, testFunction, 'only');
|
|
43
|
-
// Apply settings to the test
|
|
44
|
-
if (this._tags.length > 0) {
|
|
45
|
-
test.tags = this._tags;
|
|
46
|
-
}
|
|
47
|
-
test.priority = this._priority;
|
|
48
|
-
if (this._retryCount !== undefined) {
|
|
49
|
-
test.tapTools.retry(this._retryCount);
|
|
50
|
-
}
|
|
51
|
-
if (this._timeoutMs !== undefined) {
|
|
52
|
-
test.timeoutMs = this._timeoutMs;
|
|
53
|
-
}
|
|
54
|
-
return test;
|
|
55
|
-
}
|
|
56
|
-
testSkip(description, testFunction) {
|
|
57
|
-
const test = this._tap.test(description, testFunction, 'skip');
|
|
58
|
-
// Apply settings to the test
|
|
59
|
-
if (this._tags.length > 0) {
|
|
60
|
-
test.tags = this._tags;
|
|
61
|
-
}
|
|
62
|
-
test.priority = this._priority;
|
|
63
|
-
if (this._retryCount !== undefined) {
|
|
64
|
-
test.tapTools.retry(this._retryCount);
|
|
65
|
-
}
|
|
66
|
-
if (this._timeoutMs !== undefined) {
|
|
67
|
-
test.timeoutMs = this._timeoutMs;
|
|
68
|
-
}
|
|
69
|
-
return test;
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
export class Tap {
|
|
73
|
-
constructor() {
|
|
74
|
-
this._skipCount = 0;
|
|
75
|
-
this._filterTags = [];
|
|
76
|
-
/**
|
|
77
|
-
* skips a test
|
|
78
|
-
* tests marked with tap.skip.test() are never executed
|
|
79
|
-
*/
|
|
80
|
-
this.skip = {
|
|
81
|
-
test: (descriptionArg, functionArg) => {
|
|
82
|
-
console.log(`skipped test: ${descriptionArg}`);
|
|
83
|
-
this._skipCount++;
|
|
84
|
-
},
|
|
85
|
-
testParallel: (descriptionArg, functionArg) => {
|
|
86
|
-
console.log(`skipped test: ${descriptionArg}`);
|
|
87
|
-
this._skipCount++;
|
|
88
|
-
},
|
|
89
|
-
};
|
|
90
|
-
/**
|
|
91
|
-
* only executes tests marked as ONLY
|
|
92
|
-
*/
|
|
93
|
-
this.only = {
|
|
94
|
-
test: (descriptionArg, testFunctionArg) => {
|
|
95
|
-
this.test(descriptionArg, testFunctionArg, 'only');
|
|
96
|
-
},
|
|
97
|
-
};
|
|
98
|
-
this._tapPreTasks = [];
|
|
99
|
-
this._tapTests = [];
|
|
100
|
-
this._tapTestsOnly = [];
|
|
101
|
-
this._currentSuite = null;
|
|
102
|
-
this._rootSuites = [];
|
|
103
|
-
// Get filter tags from environment
|
|
104
|
-
if (process.env.TSTEST_FILTER_TAGS) {
|
|
105
|
-
this._filterTags = process.env.TSTEST_FILTER_TAGS.split(',');
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
// Fluent test builder
|
|
109
|
-
tags(...tags) {
|
|
110
|
-
const builder = new TestBuilder(this);
|
|
111
|
-
return builder.tags(...tags);
|
|
112
|
-
}
|
|
113
|
-
priority(level) {
|
|
114
|
-
const builder = new TestBuilder(this);
|
|
115
|
-
return builder.priority(level);
|
|
116
|
-
}
|
|
117
|
-
retry(count) {
|
|
118
|
-
const builder = new TestBuilder(this);
|
|
119
|
-
return builder.retry(count);
|
|
120
|
-
}
|
|
121
|
-
timeout(ms) {
|
|
122
|
-
const builder = new TestBuilder(this);
|
|
123
|
-
return builder.timeout(ms);
|
|
124
|
-
}
|
|
125
|
-
/**
|
|
126
|
-
* Normal test function, will run one by one
|
|
127
|
-
* @param testDescription - A description of what the test does
|
|
128
|
-
* @param testFunction - A Function that returns a Promise and resolves or rejects
|
|
129
|
-
*/
|
|
130
|
-
test(testDescription, testFunction, modeArg = 'normal') {
|
|
131
|
-
const localTest = new TapTest({
|
|
132
|
-
description: testDescription,
|
|
133
|
-
testFunction,
|
|
134
|
-
parallel: false,
|
|
135
|
-
});
|
|
136
|
-
// No options applied here - use the fluent builder syntax instead
|
|
137
|
-
// If we're in a suite, add test to the suite
|
|
138
|
-
if (this._currentSuite) {
|
|
139
|
-
this._currentSuite.tests.push(localTest);
|
|
140
|
-
}
|
|
141
|
-
else {
|
|
142
|
-
// Otherwise add to global test list
|
|
143
|
-
if (modeArg === 'normal') {
|
|
144
|
-
this._tapTests.push(localTest);
|
|
145
|
-
}
|
|
146
|
-
else if (modeArg === 'only') {
|
|
147
|
-
this._tapTestsOnly.push(localTest);
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
return localTest;
|
|
151
|
-
}
|
|
152
|
-
preTask(descriptionArg, functionArg) {
|
|
153
|
-
this._tapPreTasks.push(new PreTask(descriptionArg, functionArg));
|
|
154
|
-
}
|
|
155
|
-
/**
|
|
156
|
-
* A parallel test that will not be waited for before the next starts.
|
|
157
|
-
* @param testDescription - A description of what the test does
|
|
158
|
-
* @param testFunction - A Function that returns a Promise and resolves or rejects
|
|
159
|
-
*/
|
|
160
|
-
testParallel(testDescription, testFunction) {
|
|
161
|
-
const localTest = new TapTest({
|
|
162
|
-
description: testDescription,
|
|
163
|
-
testFunction,
|
|
164
|
-
parallel: true,
|
|
165
|
-
});
|
|
166
|
-
if (this._currentSuite) {
|
|
167
|
-
this._currentSuite.tests.push(localTest);
|
|
168
|
-
}
|
|
169
|
-
else {
|
|
170
|
-
this._tapTests.push(localTest);
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
/**
|
|
174
|
-
* Create a test suite for grouping related tests
|
|
175
|
-
*/
|
|
176
|
-
describe(description, suiteFunction) {
|
|
177
|
-
const suite = {
|
|
178
|
-
description,
|
|
179
|
-
tests: [],
|
|
180
|
-
children: [],
|
|
181
|
-
parent: this._currentSuite,
|
|
182
|
-
};
|
|
183
|
-
// Add to parent or root
|
|
184
|
-
if (this._currentSuite) {
|
|
185
|
-
this._currentSuite.children.push(suite);
|
|
186
|
-
}
|
|
187
|
-
else {
|
|
188
|
-
this._rootSuites.push(suite);
|
|
189
|
-
}
|
|
190
|
-
// Execute suite function in context
|
|
191
|
-
const previousSuite = this._currentSuite;
|
|
192
|
-
this._currentSuite = suite;
|
|
193
|
-
try {
|
|
194
|
-
suiteFunction();
|
|
195
|
-
}
|
|
196
|
-
finally {
|
|
197
|
-
this._currentSuite = previousSuite;
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
/**
|
|
201
|
-
* Set up a function to run before each test in the current suite
|
|
202
|
-
*/
|
|
203
|
-
beforeEach(setupFunction) {
|
|
204
|
-
if (this._currentSuite) {
|
|
205
|
-
this._currentSuite.beforeEach = setupFunction;
|
|
206
|
-
}
|
|
207
|
-
else {
|
|
208
|
-
throw new Error('beforeEach can only be used inside a describe block');
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
/**
|
|
212
|
-
* Set up a function to run after each test in the current suite
|
|
213
|
-
*/
|
|
214
|
-
afterEach(teardownFunction) {
|
|
215
|
-
if (this._currentSuite) {
|
|
216
|
-
this._currentSuite.afterEach = teardownFunction;
|
|
217
|
-
}
|
|
218
|
-
else {
|
|
219
|
-
throw new Error('afterEach can only be used inside a describe block');
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
/**
|
|
223
|
-
* collect all tests from suites
|
|
224
|
-
*/
|
|
225
|
-
_collectTests(suite, tests = []) {
|
|
226
|
-
tests.push(...suite.tests);
|
|
227
|
-
for (const childSuite of suite.children) {
|
|
228
|
-
this._collectTests(childSuite, tests);
|
|
229
|
-
}
|
|
230
|
-
return tests;
|
|
231
|
-
}
|
|
232
|
-
/**
|
|
233
|
-
* starts the test evaluation
|
|
234
|
-
*/
|
|
235
|
-
async start(optionsArg) {
|
|
236
|
-
// lets set the tapbundle promise
|
|
237
|
-
const smartenvInstance = new plugins.smartenv.Smartenv();
|
|
238
|
-
smartenvInstance.isBrowser
|
|
239
|
-
? (globalThis.tapbundleDeferred = plugins.smartpromise.defer())
|
|
240
|
-
: null;
|
|
241
|
-
// Initialize path helpers for Node.js environment
|
|
242
|
-
if (!smartenvInstance.isBrowser) {
|
|
243
|
-
try {
|
|
244
|
-
const { initializePathHelpers } = await import('../ts_tapbundle_node/classes.pathinject.js');
|
|
245
|
-
initializePathHelpers();
|
|
246
|
-
}
|
|
247
|
-
catch (error) {
|
|
248
|
-
// tapbundle_node not available in browser environment
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
// lets continue with running the tests
|
|
252
|
-
const promiseArray = [];
|
|
253
|
-
// Collect all tests including those in suites
|
|
254
|
-
let allTests = [...this._tapTests];
|
|
255
|
-
for (const suite of this._rootSuites) {
|
|
256
|
-
this._collectTests(suite, allTests);
|
|
257
|
-
}
|
|
258
|
-
// safeguard against empty test array
|
|
259
|
-
if (allTests.length === 0 && this._tapTestsOnly.length === 0) {
|
|
260
|
-
console.log('no tests specified. Ending here!');
|
|
261
|
-
return;
|
|
262
|
-
}
|
|
263
|
-
// determine which tests to run
|
|
264
|
-
let concerningTests;
|
|
265
|
-
if (this._tapTestsOnly.length > 0) {
|
|
266
|
-
concerningTests = this._tapTestsOnly;
|
|
267
|
-
}
|
|
268
|
-
else {
|
|
269
|
-
concerningTests = allTests;
|
|
270
|
-
}
|
|
271
|
-
// Filter tests by tags if specified
|
|
272
|
-
if (this._filterTags.length > 0) {
|
|
273
|
-
concerningTests = concerningTests.filter(test => {
|
|
274
|
-
// Skip tests without tags when filtering is active
|
|
275
|
-
if (!test.tags || test.tags.length === 0) {
|
|
276
|
-
return false;
|
|
277
|
-
}
|
|
278
|
-
// Check if test has any of the filter tags
|
|
279
|
-
return test.tags.some(tag => this._filterTags.includes(tag));
|
|
280
|
-
});
|
|
281
|
-
}
|
|
282
|
-
// lets run the pretasks
|
|
283
|
-
for (const preTask of this._tapPreTasks) {
|
|
284
|
-
await preTask.run();
|
|
285
|
-
}
|
|
286
|
-
// Count actual tests that will be run
|
|
287
|
-
console.log(`1..${concerningTests.length}`);
|
|
288
|
-
// Run tests from suites with lifecycle hooks
|
|
289
|
-
let testKey = 0;
|
|
290
|
-
// Run all concerning tests (filtered by tags if applicable)
|
|
291
|
-
for (const currentTest of concerningTests) {
|
|
292
|
-
const testPromise = currentTest.run(testKey++);
|
|
293
|
-
if (currentTest.parallel) {
|
|
294
|
-
promiseArray.push(testPromise);
|
|
295
|
-
}
|
|
296
|
-
else {
|
|
297
|
-
await testPromise;
|
|
298
|
-
}
|
|
299
|
-
}
|
|
300
|
-
await Promise.all(promiseArray);
|
|
301
|
-
// when tests have been run and all promises are fullfilled
|
|
302
|
-
const failReasons = [];
|
|
303
|
-
const executionNotes = [];
|
|
304
|
-
// collect failed tests
|
|
305
|
-
for (const tapTest of concerningTests) {
|
|
306
|
-
if (tapTest.status !== 'success' && tapTest.status !== 'skipped') {
|
|
307
|
-
failReasons.push(`Test ${tapTest.testKey + 1} failed with status ${tapTest.status}:\n` +
|
|
308
|
-
`|| ${tapTest.description}\n` +
|
|
309
|
-
`|| for more information please take a look the logs above`);
|
|
310
|
-
}
|
|
311
|
-
}
|
|
312
|
-
// render fail Reasons
|
|
313
|
-
for (const failReason of failReasons) {
|
|
314
|
-
console.log(failReason);
|
|
315
|
-
}
|
|
316
|
-
if (optionsArg && optionsArg.throwOnError && failReasons.length > 0) {
|
|
317
|
-
if (!smartenvInstance.isBrowser)
|
|
318
|
-
process.exit(1);
|
|
319
|
-
}
|
|
320
|
-
if (smartenvInstance.isBrowser) {
|
|
321
|
-
globalThis.tapbundleDeferred.resolve();
|
|
322
|
-
}
|
|
323
|
-
}
|
|
324
|
-
/**
|
|
325
|
-
* Run tests in a suite with lifecycle hooks
|
|
326
|
-
*/
|
|
327
|
-
async _runSuite(parentSuite, suites, promiseArray, context) {
|
|
328
|
-
for (const suite of suites) {
|
|
329
|
-
// Run beforeEach from parent suites
|
|
330
|
-
const beforeEachFunctions = [];
|
|
331
|
-
let currentSuite = suite;
|
|
332
|
-
while (currentSuite) {
|
|
333
|
-
if (currentSuite.beforeEach) {
|
|
334
|
-
beforeEachFunctions.unshift(currentSuite.beforeEach);
|
|
335
|
-
}
|
|
336
|
-
currentSuite = currentSuite.parent || null;
|
|
337
|
-
}
|
|
338
|
-
// Run tests in this suite
|
|
339
|
-
for (const test of suite.tests) {
|
|
340
|
-
// Create wrapper test function that includes lifecycle hooks
|
|
341
|
-
const originalFunction = test.testFunction;
|
|
342
|
-
test.testFunction = async (tapTools) => {
|
|
343
|
-
// Run all beforeEach hooks
|
|
344
|
-
for (const beforeEach of beforeEachFunctions) {
|
|
345
|
-
await beforeEach(tapTools);
|
|
346
|
-
}
|
|
347
|
-
// Run the actual test
|
|
348
|
-
const result = await originalFunction(tapTools);
|
|
349
|
-
// Run afterEach hooks in reverse order
|
|
350
|
-
const afterEachFunctions = [];
|
|
351
|
-
currentSuite = suite;
|
|
352
|
-
while (currentSuite) {
|
|
353
|
-
if (currentSuite.afterEach) {
|
|
354
|
-
afterEachFunctions.push(currentSuite.afterEach);
|
|
355
|
-
}
|
|
356
|
-
currentSuite = currentSuite.parent || null;
|
|
357
|
-
}
|
|
358
|
-
for (const afterEach of afterEachFunctions) {
|
|
359
|
-
await afterEach(tapTools);
|
|
360
|
-
}
|
|
361
|
-
return result;
|
|
362
|
-
};
|
|
363
|
-
const testPromise = test.run(context.testKey++);
|
|
364
|
-
if (test.parallel) {
|
|
365
|
-
promiseArray.push(testPromise);
|
|
366
|
-
}
|
|
367
|
-
else {
|
|
368
|
-
await testPromise;
|
|
369
|
-
}
|
|
370
|
-
}
|
|
371
|
-
// Recursively run child suites
|
|
372
|
-
await this._runSuite(suite, suite.children, promiseArray, context);
|
|
373
|
-
}
|
|
374
|
-
}
|
|
375
|
-
async stopForcefully(codeArg = 0, directArg = false) {
|
|
376
|
-
console.log(`tap stopping forcefully! Code: ${codeArg} / Direct: ${directArg}`);
|
|
377
|
-
if (directArg) {
|
|
378
|
-
process.exit(codeArg);
|
|
379
|
-
}
|
|
380
|
-
else {
|
|
381
|
-
setTimeout(() => {
|
|
382
|
-
process.exit(codeArg);
|
|
383
|
-
}, 10);
|
|
384
|
-
}
|
|
385
|
-
}
|
|
386
|
-
/**
|
|
387
|
-
* handle errors
|
|
388
|
-
*/
|
|
389
|
-
threw(err) {
|
|
390
|
-
console.log(err);
|
|
391
|
-
}
|
|
392
|
-
/**
|
|
393
|
-
* Explicitly fail the current test with a custom message
|
|
394
|
-
* @param message - The failure message to display
|
|
395
|
-
*/
|
|
396
|
-
fail(message = 'Test failed') {
|
|
397
|
-
throw new Error(message);
|
|
398
|
-
}
|
|
399
|
-
}
|
|
400
|
-
export const tap = new Tap();
|
|
401
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFwYnVuZGxlLmNsYXNzZXMudGFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHNfdGFwYnVuZGxlL3RhcGJ1bmRsZS5jbGFzc2VzLnRhcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLHdCQUF3QixDQUFDO0FBRWxELE9BQU8sRUFBeUIsT0FBTyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDaEYsT0FBTyxFQUFFLE9BQU8sRUFBc0IsTUFBTSxnQ0FBZ0MsQ0FBQztBQVc3RSxNQUFNLFdBQVc7SUFPZixZQUFZLEdBQVc7UUFMZixVQUFLLEdBQWEsRUFBRSxDQUFDO1FBQ3JCLGNBQVMsR0FBOEIsUUFBUSxDQUFDO1FBS3RELElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDO0lBQ2xCLENBQUM7SUFFRCxJQUFJLENBQUMsR0FBRyxJQUFjO1FBQ3BCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFnQztRQUN2QyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN2QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxLQUFLLENBQUMsS0FBYTtRQUNqQixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUN6QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxPQUFPLENBQUMsRUFBVTtRQUNoQixJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNyQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxJQUFJLENBQUMsV0FBbUIsRUFBRSxZQUE4QjtRQUN0RCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsWUFBWSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBRWpFLDZCQUE2QjtRQUM3QixJQUFJLElBQUks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
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { TapTools } from './tapbundle.classes.taptools.js';
|
|
2
|
-
import { HrtMeasurement } from '@push.rocks/smarttime';
|
|
3
|
-
export type TTestStatus = 'success' | 'error' | 'pending' | 'errorAfterSuccess' | 'timeout' | 'skipped';
|
|
4
|
-
export interface ITestFunction<T> {
|
|
5
|
-
(tapTools?: TapTools): Promise<T>;
|
|
6
|
-
}
|
|
7
|
-
export declare class TapTest<T = unknown> {
|
|
8
|
-
description: string;
|
|
9
|
-
failureAllowed: boolean;
|
|
10
|
-
hrtMeasurement: HrtMeasurement;
|
|
11
|
-
parallel: boolean;
|
|
12
|
-
status: TTestStatus;
|
|
13
|
-
tapTools: TapTools;
|
|
14
|
-
testFunction: ITestFunction<T>;
|
|
15
|
-
testKey: number;
|
|
16
|
-
timeoutMs?: number;
|
|
17
|
-
isTodo: boolean;
|
|
18
|
-
todoReason?: string;
|
|
19
|
-
tags: string[];
|
|
20
|
-
priority: 'high' | 'medium' | 'low';
|
|
21
|
-
fileName?: string;
|
|
22
|
-
private testDeferred;
|
|
23
|
-
testPromise: Promise<TapTest<T>>;
|
|
24
|
-
private testResultDeferred;
|
|
25
|
-
testResultPromise: Promise<T>;
|
|
26
|
-
/**
|
|
27
|
-
* constructor
|
|
28
|
-
*/
|
|
29
|
-
constructor(optionsArg: {
|
|
30
|
-
description: string;
|
|
31
|
-
testFunction: ITestFunction<T>;
|
|
32
|
-
parallel: boolean;
|
|
33
|
-
});
|
|
34
|
-
/**
|
|
35
|
-
* run the test
|
|
36
|
-
*/
|
|
37
|
-
run(testKeyArg: number): Promise<void>;
|
|
38
|
-
}
|