velocious 1.0.171 → 1.0.172

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.
Files changed (31) hide show
  1. package/README.md +43 -0
  2. package/build/src/configuration-types.d.ts +14 -0
  3. package/build/src/configuration-types.d.ts.map +1 -1
  4. package/build/src/configuration-types.js +5 -1
  5. package/build/src/configuration.d.ts +9 -1
  6. package/build/src/configuration.d.ts.map +1 -1
  7. package/build/src/configuration.js +14 -2
  8. package/build/src/environment-handlers/node/cli/commands/test.d.ts.map +1 -1
  9. package/build/src/environment-handlers/node/cli/commands/test.js +71 -7
  10. package/build/src/http-server/client/index.d.ts.map +1 -1
  11. package/build/src/http-server/client/index.js +4 -2
  12. package/build/src/http-server/client/websocket-session.d.ts +23 -3
  13. package/build/src/http-server/client/websocket-session.d.ts.map +1 -1
  14. package/build/src/http-server/client/websocket-session.js +62 -7
  15. package/build/src/http-server/websocket-channel.d.ts +45 -0
  16. package/build/src/http-server/websocket-channel.d.ts.map +1 -0
  17. package/build/src/http-server/websocket-channel.js +64 -0
  18. package/build/src/http-server/worker-handler/worker-thread.d.ts +2 -2
  19. package/build/src/http-server/worker-handler/worker-thread.d.ts.map +1 -1
  20. package/build/src/http-server/worker-handler/worker-thread.js +10 -5
  21. package/build/src/testing/test-files-finder.d.ts +18 -0
  22. package/build/src/testing/test-files-finder.d.ts.map +1 -1
  23. package/build/src/testing/test-files-finder.js +44 -4
  24. package/build/src/testing/test-runner.d.ts +92 -4
  25. package/build/src/testing/test-runner.d.ts.map +1 -1
  26. package/build/src/testing/test-runner.js +153 -11
  27. package/build/src/testing/test.d.ts +4 -1
  28. package/build/src/testing/test.d.ts.map +1 -1
  29. package/build/src/testing/test.js +58 -5
  30. package/build/tsconfig.tsbuildinfo +1 -1
  31. package/package.json +1 -1
@@ -9,11 +9,14 @@
9
9
  * @property {() => (void|Promise<void>)} [function] - Test callback function.
10
10
  * @property {number} [retry] - Number of retries when a test fails.
11
11
  * @property {string[] | string} [tags] - Tags for filtering.
12
+ * @property {number} [timeoutSeconds] - Timeout in seconds for the test.
12
13
  * @property {string} [type] - Test type identifier.
13
14
  */
14
15
  /**
15
16
  * @typedef {object} TestData
16
17
  * @property {TestArgs} args - Arguments passed to the test.
18
+ * @property {string} [filePath] - Source file path.
19
+ * @property {number} [line] - Source line number.
17
20
  * @property {function(TestArgs) : (void|Promise<void>)} function - Test callback to execute.
18
21
  */
19
22
  /**
@@ -38,6 +41,8 @@
38
41
  * @property {BeforeAfterAllCallbackObjectType[]} afterAlls - After-all hooks for this scope.
39
42
  * @property {BeforeAfterAllCallbackObjectType[]} beforeAlls - Before-all hooks for this scope.
40
43
  * @property {AfterBeforeEachCallbackObjectType[]} beforeEaches - Before-each hooks for this scope.
44
+ * @property {string} [filePath] - Source file path.
45
+ * @property {number} [line] - Source line number.
41
46
  * @property {Record<string, TestData>} tests - A unique identifier for the node.
42
47
  * @property {Record<string, TestsArgument>} subs - Optional child nodes. Each item is another `Node`, allowing recursion.
43
48
  */
@@ -48,12 +53,16 @@ export default class TestRunner {
48
53
  * @param {string[] | string} [args.excludeTags] - Tags to exclude.
49
54
  * @param {string[] | string} [args.includeTags] - Tags to include.
50
55
  * @param {Array<string>} args.testFiles - Test files.
56
+ * @param {Record<string, number[]>} [args.lineFilters] - Line filters by file.
57
+ * @param {RegExp[]} [args.examplePatterns] - Example patterns.
51
58
  */
52
- constructor({ configuration, excludeTags, includeTags, testFiles, ...restArgs }: {
59
+ constructor({ configuration, excludeTags, includeTags, testFiles, lineFilters, examplePatterns, ...restArgs }: {
53
60
  configuration: import("../configuration.js").default;
54
61
  excludeTags?: string[] | string;
55
62
  includeTags?: string[] | string;
56
63
  testFiles: Array<string>;
64
+ lineFilters?: Record<string, number[]>;
65
+ examplePatterns?: RegExp[];
57
66
  });
58
67
  _configuration: import("../configuration.js").default;
59
68
  _excludeTags: string[];
@@ -61,10 +70,13 @@ export default class TestRunner {
61
70
  _includeTags: string[];
62
71
  _includeTagSet: Set<string>;
63
72
  _testFiles: string[];
73
+ _lineFilters: Record<string, number[]>;
74
+ _examplePatterns: RegExp[];
64
75
  _failedTests: number;
65
76
  _successfulTests: number;
66
77
  _testsCount: number;
67
78
  _activeAfterAllScopes: any[];
79
+ _failedTestDetails: any[];
68
80
  /**
69
81
  * @returns {import("../configuration.js").default} - The configuration.
70
82
  */
@@ -73,6 +85,10 @@ export default class TestRunner {
73
85
  * @returns {string[]} - The test files.
74
86
  */
75
87
  getTestFiles(): string[];
88
+ /** @returns {Record<string, number[]>} - Line filters. */
89
+ getLineFilters(): Record<string, number[]>;
90
+ /** @returns {RegExp[]} - Example patterns. */
91
+ getExamplePatterns(): RegExp[];
76
92
  /**
77
93
  * @param {string[] | string | undefined} tags - Tags.
78
94
  * @returns {string[]} - Normalized tags.
@@ -90,14 +106,31 @@ export default class TestRunner {
90
106
  hasMatchingTag(testTags: string[] | string | undefined, tagSet: Set<string>): boolean;
91
107
  /**
92
108
  * @param {TestsArgument} tests - Tests.
109
+ * @param {string[]} [descriptions] - Description stack.
110
+ * @param {boolean} [lineMatchedInScope] - Whether line matched in scope.
93
111
  * @returns {boolean} - Whether any tests in this scope will run.
94
112
  */
95
- hasRunnableTests(tests: TestsArgument): boolean;
113
+ hasRunnableTests(tests: TestsArgument, descriptions?: string[], lineMatchedInScope?: boolean): boolean;
96
114
  /**
97
115
  * @param {TestArgs} testArgs - Test args.
116
+ * @param {TestData} testData - Test data.
117
+ * @param {string} testDescription - Test description.
118
+ * @param {string[]} descriptions - Description stack.
119
+ * @param {boolean} lineMatchedInScope - Whether line matched in scope.
98
120
  * @returns {boolean} - Whether the test should be skipped.
99
121
  */
100
- shouldSkipTest(testArgs: TestArgs): boolean;
122
+ shouldSkipTest(testArgs: TestArgs, testData: TestData, testDescription: string, descriptions: string[], lineMatchedInScope: boolean): boolean;
123
+ /**
124
+ * @param {TestData | TestsArgument} entry - Test entry.
125
+ * @returns {boolean} - Whether line filter matches entry.
126
+ */
127
+ matchesLineFilter(entry: TestData | TestsArgument): boolean;
128
+ /**
129
+ * @param {string[]} descriptions - Description stack.
130
+ * @param {string} testDescription - Test description.
131
+ * @returns {string} - Full description.
132
+ */
133
+ buildFullDescription(descriptions: string[], testDescription: string): string;
101
134
  /**
102
135
  * @returns {Promise<Application>} - Resolves with the application.
103
136
  */
@@ -120,6 +153,13 @@ export default class TestRunner {
120
153
  * @returns {number} - The failed tests.
121
154
  */
122
155
  getFailedTests(): number;
156
+ /** @returns {Array<{fullDescription: string, filePath?: string, line?: number, error: unknown}>} - Failed test details. */
157
+ getFailedTestDetails(): Array<{
158
+ fullDescription: string;
159
+ filePath?: string;
160
+ line?: number;
161
+ error: unknown;
162
+ }>;
123
163
  /**
124
164
  * @returns {number} - The successful tests.
125
165
  */
@@ -164,14 +204,16 @@ export default class TestRunner {
164
204
  * @param {TestsArgument} args.tests - Tests.
165
205
  * @param {string[]} args.descriptions - Descriptions.
166
206
  * @param {number} args.indentLevel - Indent level.
207
+ * @param {boolean} [args.lineMatchedInScope] - Whether line matched in scope.
167
208
  * @returns {Promise<void>} - Resolves when complete.
168
209
  */
169
- runTests({ afterEaches, beforeEaches, tests, descriptions, indentLevel }: {
210
+ runTests({ afterEaches, beforeEaches, tests, descriptions, indentLevel, lineMatchedInScope }: {
170
211
  afterEaches: Array<AfterBeforeEachCallbackObjectType>;
171
212
  beforeEaches: Array<AfterBeforeEachCallbackObjectType>;
172
213
  tests: TestsArgument;
173
214
  descriptions: string[];
174
215
  indentLevel: number;
216
+ lineMatchedInScope?: boolean;
175
217
  }): Promise<void>;
176
218
  /**
177
219
  * @param {{tests: TestsArgument, afterAllsRun: boolean}} scopeEntry - Scope entry.
@@ -187,6 +229,32 @@ export default class TestRunner {
187
229
  * @returns {Promise<void>} - Resolves when all listeners complete.
188
230
  */
189
231
  emitEvent(eventName: string, payload: object): Promise<void>;
232
+ /**
233
+ * @param {object} args - Options object.
234
+ * @param {string[]} args.descriptions - Description stack.
235
+ * @param {string} args.testDescription - Test description.
236
+ * @param {TestData} args.testData - Test data.
237
+ * @param {string} args.leftPadding - Left padding.
238
+ * @returns {void} - No return value.
239
+ */
240
+ printRerunCommand({ descriptions, testDescription, testData, leftPadding }: {
241
+ descriptions: string[];
242
+ testDescription: string;
243
+ testData: TestData;
244
+ leftPadding: string;
245
+ }): void;
246
+ /**
247
+ * @param {object} args - Options object.
248
+ * @param {string[]} args.descriptions - Description stack.
249
+ * @param {string} args.testDescription - Test description.
250
+ * @param {TestData} args.testData - Test data.
251
+ * @returns {string | undefined} - Rerun command.
252
+ */
253
+ buildRerunCommand({ descriptions, testDescription, testData }: {
254
+ descriptions: string[];
255
+ testDescription: string;
256
+ testData: TestData;
257
+ }): string | undefined;
190
258
  }
191
259
  export type TestArgs = {
192
260
  /**
@@ -220,6 +288,10 @@ export type TestArgs = {
220
288
  * - Tags for filtering.
221
289
  */
222
290
  tags?: string[] | string;
291
+ /**
292
+ * - Timeout in seconds for the test.
293
+ */
294
+ timeoutSeconds?: number;
223
295
  /**
224
296
  * - Test type identifier.
225
297
  */
@@ -230,6 +302,14 @@ export type TestData = {
230
302
  * - Arguments passed to the test.
231
303
  */
232
304
  args: TestArgs;
305
+ /**
306
+ * - Source file path.
307
+ */
308
+ filePath?: string;
309
+ /**
310
+ * - Source line number.
311
+ */
312
+ line?: number;
233
313
  /**
234
314
  * - Test callback to execute.
235
315
  */
@@ -280,6 +360,14 @@ export type TestsArgument = {
280
360
  * - Before-each hooks for this scope.
281
361
  */
282
362
  beforeEaches: AfterBeforeEachCallbackObjectType[];
363
+ /**
364
+ * - Source file path.
365
+ */
366
+ filePath?: string;
367
+ /**
368
+ * - Source line number.
369
+ */
370
+ line?: number;
283
371
  /**
284
372
  * - A unique identifier for the node.
285
373
  */
@@ -1 +1 @@
1
- {"version":3,"file":"test-runner.d.ts","sourceRoot":"","sources":["../../../src/testing/test-runner.js"],"names":[],"mappings":"AASA;;;;;;;;;;;;GAYG;AAEH;;;;GAIG;AAEH;;GAEG;AAEH;;;GAGG;AAEH;;GAEG;AAEH;;;GAGG;AAEH;;;;;;;;;;GAUG;AAEH;IACE;;;;;;OAMG;IACH,iFALG;QAAoD,aAAa,EAAzD,OAAO,qBAAqB,EAAE,OAAO;QACZ,WAAW,GAApC,MAAM,EAAE,GAAG,MAAM;QACQ,WAAW,GAApC,MAAM,EAAE,GAAG,MAAM;QACG,SAAS,EAA7B,KAAK,CAAC,MAAM,CAAC;KACvB,EAiBA;IAXC,sDAAmC;IACnC,uBAAmD;IACnD,4BAAgD;IAChD,uBAAmD;IACnD,4BAAgD;IAChD,qBAA2B;IAE3B,qBAAqB;IACrB,yBAAyB;IACzB,oBAAoB;IACpB,6BAA+B;IAGjC;;OAEG;IACH,oBAFa,OAAO,qBAAqB,EAAE,OAAO,CAED;IAEjD;;OAEG;IACH,gBAFa,MAAM,EAAE,CAEoB;IAEzC;;;OAGG;IACH,oBAHW,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,GAC3B,MAAM,EAAE,CAqBpB;IAED;;OAEG;IACH,oBAFa,GAAG,CAAC,MAAM,CAAC,CAMvB;IAED;;;;OAIG;IACH,yBAJW,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,UAC7B,GAAG,CAAC,MAAM,CAAC,GACT,OAAO,CAYnB;IAED;;;OAGG;IACH,wBAHW,aAAa,GACX,OAAO,CAqBnB;IAED;;;OAGG;IACH,yBAHW,QAAQ,GACN,OAAO,CAUnB;IAED;;OAEG;IACH,eAFa,OAAO,CAAC,WAAW,CAAC,CAehC;IAXG,0BAIE;IASN;;OAEG;IACH,iBAFa,OAAO,CAAC,aAAa,CAAC,CAQlC;IAJG,8BAAyC;IAM7C;;OAEG;IACH,mBAFa,OAAO,CAAC,IAAI,CAAC,CAIzB;IAED;;OAEG;IACH,YAFa,OAAO,CAE0D;IAE9E;;OAEG;IACH,kBAFa,MAAM,CAMlB;IAED;;OAEG;IACH,sBAFa,MAAM,CAMlB;IAED;;OAEG;IACH,iBAFa,MAAM,CAMlB;IAED;;OAEG;IACH,yBAFa,MAAM,CAQlB;IAED;;OAEG;IACH,WAFa,OAAO,CAAC,IAAI,CAAC,CAgBzB;IAbC,0BAA6B;IAM7B,uBAA0C;IAS5C;;OAEG;IACH,uBAFa,OAAO,CAQnB;IAED;;OAEG;IACH,OAFa,OAAO,CAAC,IAAI,CAAC,CAYzB;IAED;;OAEG;IACH,+BAFa,OAAO,CAAC,IAAI,CAAC,CAUzB;IAED;;;OAGG;IACH,oBAHW,aAAa,GACX;QAAC,gBAAgB,EAAE,OAAO,CAAA;KAAC,CA6BvC;IAED;;;;;;;;OAQG;IACH,0EAPG;QAAuD,WAAW,EAA1D,KAAK,CAAC,iCAAiC,CAAC;QACO,YAAY,EAA3D,KAAK,CAAC,iCAAiC,CAAC;QACpB,KAAK,EAAzB,aAAa;QACE,YAAY,EAA3B,MAAM,EAAE;QACK,WAAW,EAAxB,MAAM;KACd,GAAU,OAAO,CAAC,IAAI,CAAC,CA8HzB;IAED;;;OAGG;IACH,iCAHW;QAAC,KAAK,EAAE,aAAa,CAAC;QAAC,YAAY,EAAE,OAAO,CAAA;KAAC,GAC3C,OAAO,CAAC,IAAI,CAAC,CAUzB;IAED;;;;OAIG;IACH,qBAJW,MAAM,WACN,MAAM,GACJ,OAAO,CAAC,IAAI,CAAC,CAQzB;CACF;;;;;kBAzfa,WAAW;;;;aACX,aAAa;;;;uBAExB;QAAsC,WAAW,GAAtC,OAAO;QACoB,QAAQ,GAAnC,OAAO;KAClB;;;;YAAW,OAAO;;;;eACP,MAAM,CAAC,IAAI,GAAC,OAAO,CAAC,IAAI,CAAC,CAAC;;;;YAC1B,MAAM;;;;WACN,MAAM,EAAE,GAAG,MAAM;;;;WACjB,MAAM;;;;;;UAKN,QAAQ;;;;cACR,CAAS,IAAQ,EAAR,QAAQ,KAAI,CAAC,IAAI,GAAC,OAAO,CAAC,IAAI,CAAC,CAAC;;0CAI1C,CAAS,IAA8F,EAA9F;IAAC,aAAa,EAAE,OAAO,qBAAqB,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,QAAQ,CAAC;IAAC,QAAQ,EAAE,QAAQ,CAAA;CAAC,KAAI,CAAC,IAAI,GAAC,OAAO,CAAC,IAAI,CAAC,CAAC;;;;;cAK9H,2BAA2B;;yCAI5B,CAAS,IAAsD,EAAtD;IAAC,aAAa,EAAE,OAAO,qBAAqB,EAAE,OAAO,CAAA;CAAC,KAAI,CAAC,IAAI,GAAC,OAAO,CAAC,IAAI,CAAC,CAAC;;;;;cAKtF,0BAA0B;;;;;;UAK1B,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC;;;;uBACxB,OAAO;;;;iBACP,iCAAiC,EAAE;;;;eACnC,gCAAgC,EAAE;;;;gBAClC,gCAAgC,EAAE;;;;kBAClC,iCAAiC,EAAE;;;;WACnC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC;;;;UACxB,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;;wBArDnB,0BAA0B;0BAExB,qBAAqB"}
1
+ {"version":3,"file":"test-runner.d.ts","sourceRoot":"","sources":["../../../src/testing/test-runner.js"],"names":[],"mappings":"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"}