@flemist/test-variants 1.0.5 → 1.0.7

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.
@@ -264,19 +264,20 @@ n?(e||(e=new c,n.subscribe(r)),i.subscribe(r)):n=i
264
264
  ;function F(t){var e=A[t]
265
265
  ;return"function"==typeof e&&(e=e(O)),e}
266
266
  for(var I=[],R=[],M=0;M<T;M++)I[M]=-1,R[M]=[]
267
- ;R[0]=F(0);var C=0,D=0,G=!1,$=0;function q(t,e,s){
268
- return n(this,void 0,void 0,(function(){var n
267
+ ;R[0]=F(0);var C=0,D=0,G=!1,$=0,q=!0
268
+ ;function N(t,e,s){
269
+ return n(this,void 0,void 0,(function(){var n,i
269
270
  ;return r(this,(function(r){switch(r.label){
270
271
  case 0:
271
- return P.abort(t),console.error("error variant: ".concat(e,"\r\n").concat(JSON.stringify(s,(function(t,e){
272
+ return n=q,q=!1,n&&(P.abort(t),console.error("error variant: ".concat(e,"\r\n").concat(JSON.stringify(s,(function(t,e){
272
273
  return e&&"object"==typeof e&&!Array.isArray(e)&&e.constructor!==Object?e+"":e
273
274
  }),2))),
274
- console.error(t),n=Date.now(),Date.now()-n>50&&$<5?(console.log("DEBUG ITERATION: "+$),
275
- G=!0,[4,V()]):[3,2];case 1:r.sent(),$++,r.label=2
276
- ;case 2:throw g&&g({iteration:e,variant:s,error:t
277
- }),t}}))}))}
278
- var N=Date.now(),U=N,W=C,Q=D,B=!0===x?Math.pow(2,31):!x||x<=0?1:x,J=B<=1?null:new E(B)
279
- ;function K(e,s,i){
275
+ console.error(t)),i=Date.now(),Date.now()-i>50&&$<5?(console.log("DEBUG ITERATION: "+$),
276
+ G=!0,[4,H()]):[3,2];case 1:r.sent(),$++,r.label=2
277
+ ;case 2:if(n)throw g&&g({iteration:e,variant:s,
278
+ error:t}),t;return[2]}}))}))}
279
+ var U=Date.now(),W=U,Q=C,B=D,J=!0===x?Math.pow(2,31):!x||x<=0?1:x,K=J<=1?null:new E(J)
280
+ ;function V(e,s,i){
280
281
  return n(this,void 0,void 0,(function(){var n,o,l
281
282
  ;return r(this,(function(r){switch(r.label){
282
283
  case 0:return r.trys.push([0,3,,5]),function(t){
@@ -284,27 +285,27 @@ return"object"==typeof t&&t&&"function"==typeof t.then
284
285
  }(n=t(s,i))?[4,n]:[3,2];case 1:
285
286
  return o=r.sent(),D+=l="number"==typeof o?o:1,C+=l,
286
287
  [2];case 2:return C+="number"==typeof n?n:1,[3,5]
287
- ;case 3:return[4,q(r.sent(),e,s)];case 4:
288
+ ;case 3:return[4,N(r.sent(),e,s)];case 4:
288
289
  return r.sent(),[3,5];case 5:return[2]}}))}))}
289
- function V(){
290
+ function H(){
290
291
  return n(this,void 0,void 0,(function(){
291
292
  var t,i=this;return r(this,(function(o){
292
293
  switch(o.label){case 0:t=function(){var t,o,l
293
294
  ;return r(this,(function(c){switch(c.label){
294
295
  case 0:
295
- return t=C,o=J?e({},O):O,l=(b||_)&&Date.now(),b&&l-N>=b&&(console.log(C),
296
- N=l),a&&C-W>=a||f&&D-Q>=f||_&&l-U>=_?(W=C,
297
- Q=D,U=l,[4,s(1)]):[3,2];case 1:
298
- return c.sent(),[2,"continue"];case 2:
299
- return(null==j?void 0:j.aborted)?[2,"continue"]:J&&!S.aborted?[3,4]:[4,K(t,o,j)]
296
+ return t=C,o=K?e({},O):O,l=(b||_)&&Date.now(),b&&l-U>=b&&(console.log(C),
297
+ U=l),a&&C-Q>=a||f&&D-B>=f||_&&l-W>=_?(Q=C,
298
+ B=D,W=l,[4,s(1)]):[3,2];case 1:c.sent(),c.label=2
299
+ ;case 2:
300
+ return(null==j?void 0:j.aborted)?[2,"continue"]:K&&!S.aborted?[3,4]:[4,V(t,o,j)]
300
301
  ;case 3:return c.sent(),[3,7];case 4:
301
- return J.hold(1)?[3,6]:[4,J.holdWait(1)];case 5:
302
+ return K.hold(1)?[3,6]:[4,K.holdWait(1)];case 5:
302
303
  c.sent(),c.label=6;case 6:
303
304
  n(i,void 0,void 0,(function(){
304
305
  return r(this,(function(e){switch(e.label){case 0:
305
- return e.trys.push([0,,2,3]),(null==S?void 0:S.aborted)?[2]:[4,K(t,o,S)]
306
+ return e.trys.push([0,,2,3]),(null==S?void 0:S.aborted)?[2]:[4,V(t,o,S)]
306
307
  ;case 1:return e.sent(),[3,3];case 2:
307
- return J.release(1),[7];case 3:return[2]}}))
308
+ return K.release(1),[7];case 3:return[2]}}))
308
309
  })),c.label=7;case 7:return[2]}}))},o.label=1
309
310
  ;case 1:
310
311
  return(null==j?void 0:j.aborted)||!G&&!function(){
@@ -314,10 +315,10 @@ for(I[t]=e,O[z[t]]=R[t][e],t++;t<T;t++){var n=F(t)
314
315
  ;if(0===n.length)break;I[t]=0,R[t]=n,O[z[t]]=n[0]}
315
316
  if(t>=T)return!0}}return!1}()?[3,3]:[5,t()]
316
317
  ;case 2:return o.sent(),[3,1];case 3:
317
- return J?[4,J.holdWait(B)]:[3,5];case 4:
318
- o.sent(),J.release(B),o.label=5;case 5:
318
+ return K?[4,K.holdWait(J)]:[3,5];case 4:
319
+ o.sent(),K.release(J),o.label=5;case 5:
319
320
  if(null==k?void 0:k.aborted)throw k.reason
320
321
  ;return y&&console.log("variants: "+C),[4,s(1)]
321
- ;case 6:return o.sent(),[2,C]}}))}))}return V()}}
322
+ ;case 6:return o.sent(),[2,C]}}))}))}return H()}}
322
323
  },Object.defineProperty(t,"__esModule",{value:!0})
323
324
  }({});
@@ -64,19 +64,24 @@ function createTestVariants(test) {
64
64
  let iterationsAsync = 0;
65
65
  let debug = false;
66
66
  let debugIteration = 0;
67
+ let isNewError = true;
67
68
  function onError(error, iterations, variantArgs) {
68
69
  return tslib.__awaiter(this, void 0, void 0, function* () {
69
- abortControllerParallel.abort(error);
70
- console.error(`error variant: ${iterations}\r\n${JSON.stringify(variantArgs, (_, value) => {
71
- if (value
72
- && typeof value === 'object'
73
- && !Array.isArray(value)
74
- && value.constructor !== Object) {
75
- return value + '';
76
- }
77
- return value;
78
- }, 2)}`);
79
- console.error(error);
70
+ const _isNewError = isNewError;
71
+ isNewError = false;
72
+ if (_isNewError) {
73
+ abortControllerParallel.abort(error);
74
+ console.error(`error variant: ${iterations}\r\n${JSON.stringify(variantArgs, (_, value) => {
75
+ if (value
76
+ && typeof value === 'object'
77
+ && !Array.isArray(value)
78
+ && value.constructor !== Object) {
79
+ return value + '';
80
+ }
81
+ return value;
82
+ }, 2)}`);
83
+ console.error(error);
84
+ }
80
85
  // rerun failed variant 5 times for debug
81
86
  const time0 = Date.now();
82
87
  // eslint-disable-next-line no-debugger
@@ -87,14 +92,16 @@ function createTestVariants(test) {
87
92
  yield next();
88
93
  debugIteration++;
89
94
  }
90
- if (onErrorCallback) {
91
- onErrorCallback({
92
- iteration: iterations,
93
- variant: variantArgs,
94
- error,
95
- });
95
+ if (_isNewError) {
96
+ if (onErrorCallback) {
97
+ onErrorCallback({
98
+ iteration: iterations,
99
+ variant: variantArgs,
100
+ error,
101
+ });
102
+ }
103
+ throw error;
96
104
  }
97
- throw error;
98
105
  });
99
106
  }
100
107
  function onCompleted() {
@@ -152,7 +159,6 @@ function createTestVariants(test) {
152
159
  prevGC_IterationsAsync = iterationsAsync;
153
160
  prevGC_Time = now;
154
161
  yield garbageCollect_garbageCollect.garbageCollect(1);
155
- continue;
156
162
  }
157
163
  if (abortSignalExternal === null || abortSignalExternal === void 0 ? void 0 : abortSignalExternal.aborted) {
158
164
  continue;
@@ -60,19 +60,24 @@ function createTestVariants(test) {
60
60
  let iterationsAsync = 0;
61
61
  let debug = false;
62
62
  let debugIteration = 0;
63
+ let isNewError = true;
63
64
  function onError(error, iterations, variantArgs) {
64
65
  return __awaiter(this, void 0, void 0, function* () {
65
- abortControllerParallel.abort(error);
66
- console.error(`error variant: ${iterations}\r\n${JSON.stringify(variantArgs, (_, value) => {
67
- if (value
68
- && typeof value === 'object'
69
- && !Array.isArray(value)
70
- && value.constructor !== Object) {
71
- return value + '';
72
- }
73
- return value;
74
- }, 2)}`);
75
- console.error(error);
66
+ const _isNewError = isNewError;
67
+ isNewError = false;
68
+ if (_isNewError) {
69
+ abortControllerParallel.abort(error);
70
+ console.error(`error variant: ${iterations}\r\n${JSON.stringify(variantArgs, (_, value) => {
71
+ if (value
72
+ && typeof value === 'object'
73
+ && !Array.isArray(value)
74
+ && value.constructor !== Object) {
75
+ return value + '';
76
+ }
77
+ return value;
78
+ }, 2)}`);
79
+ console.error(error);
80
+ }
76
81
  // rerun failed variant 5 times for debug
77
82
  const time0 = Date.now();
78
83
  // eslint-disable-next-line no-debugger
@@ -83,14 +88,16 @@ function createTestVariants(test) {
83
88
  yield next();
84
89
  debugIteration++;
85
90
  }
86
- if (onErrorCallback) {
87
- onErrorCallback({
88
- iteration: iterations,
89
- variant: variantArgs,
90
- error,
91
- });
91
+ if (_isNewError) {
92
+ if (onErrorCallback) {
93
+ onErrorCallback({
94
+ iteration: iterations,
95
+ variant: variantArgs,
96
+ error,
97
+ });
98
+ }
99
+ throw error;
92
100
  }
93
- throw error;
94
101
  });
95
102
  }
96
103
  function onCompleted() {
@@ -148,7 +155,6 @@ function createTestVariants(test) {
148
155
  prevGC_IterationsAsync = iterationsAsync;
149
156
  prevGC_Time = now;
150
157
  yield garbageCollect(1);
151
- continue;
152
158
  }
153
159
  if (abortSignalExternal === null || abortSignalExternal === void 0 ? void 0 : abortSignalExternal.aborted) {
154
160
  continue;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flemist/test-variants",
3
- "version": "1.0.5",
3
+ "version": "1.0.7",
4
4
  "description": "Runs a test function with all possible combinations of its parameters.",
5
5
  "main": "dist/lib/index.cjs",
6
6
  "module": "dist/lib/index.mjs",
@@ -32,6 +32,23 @@
32
32
  "publishConfig": {
33
33
  "access": "public"
34
34
  },
35
+ "scripts": {
36
+ "_prepublishOnly": "pnpm run audit && pnpm run lint && pnpm run build && pnpm run test:mocha:ci && pnpm run test:karma",
37
+ "audit": "pnpm audit --prod",
38
+ "lint": "eslint ./**/*.{js,cjs,mjs,ts,tsx}",
39
+ "lint:fix": "eslint --fix ./**/*.{js,cjs,mjs,ts,tsx}",
40
+ "lint:wizard": "eslint-nibble --cache --multi ./**/*.{js,cjs,mjs,ts,tsx}",
41
+ "build:js": "rimraf dist/lib && cpy \"**/assets/**\" \"**/*.{js,cjs,mjs}\" \"../dist/lib/\" --parents --cwd=src && rollup -c",
42
+ "build": "rimraf dist && pnpm run build:js",
43
+ "coverage:merge": "rimraf tmp/coverage/{all,merge} && cp-flat \"tmp/coverage/*/json/**/*.json\" \"tmp/coverage/merge\" && nyc report -r lcov --report-dir tmp/coverage/all/lcov --temp-dir \"tmp/coverage/merge/\"",
44
+ "coverage:check": "pnpm run coverage:merge && nyc check-coverage --report-dir tmp/coverage/all/lcov --lines 50 --functions 50 --branches 50 --statements 50",
45
+ "test:mocha": "mocha ./src/**/*.test.*",
46
+ "test:mocha:coverage": "rimraf tmp/coverage/mocha && nyc --all mocha ./src/**/*.test.*",
47
+ "test:mocha:watch": "mocha --watch ./src/**/*.test.*",
48
+ "test:karma": "rimraf tmp/coverage/karma && karma start --single-run --log-level debug",
49
+ "test:mocha:ci": "rimraf tmp/coverage/mocha && nyc --all mocha ./{src,dist/lib}/**/*.test.*",
50
+ "coveralls": "pnpm run coverage:check && nyc report --reporter=text-lcov --temp-dir \"tmp/coverage/merge/\" | coveralls"
51
+ },
35
52
  "devDependencies": {
36
53
  "@babel/core": "7.18.5",
37
54
  "@babel/plugin-syntax-dynamic-import": "7.8.3",
@@ -85,21 +102,5 @@
85
102
  "@flemist/async-utils": "^1.0.0",
86
103
  "@flemist/time-limits": "^1.0.1",
87
104
  "tslib": "^2.4.0"
88
- },
89
- "scripts": {
90
- "audit": "pnpm audit --prod",
91
- "lint": "eslint ./**/*.{js,cjs,mjs,ts,tsx}",
92
- "lint:fix": "eslint --fix ./**/*.{js,cjs,mjs,ts,tsx}",
93
- "lint:wizard": "eslint-nibble --cache --multi ./**/*.{js,cjs,mjs,ts,tsx}",
94
- "build:js": "rimraf dist/lib && cpy \"**/assets/**\" \"**/*.{js,cjs,mjs}\" \"../dist/lib/\" --parents --cwd=src && rollup -c",
95
- "build": "rimraf dist && pnpm run build:js",
96
- "coverage:merge": "rimraf tmp/coverage/{all,merge} && cp-flat \"tmp/coverage/*/json/**/*.json\" \"tmp/coverage/merge\" && nyc report -r lcov --report-dir tmp/coverage/all/lcov --temp-dir \"tmp/coverage/merge/\"",
97
- "coverage:check": "pnpm run coverage:merge && nyc check-coverage --report-dir tmp/coverage/all/lcov --lines 50 --functions 50 --branches 50 --statements 50",
98
- "test:mocha": "mocha ./src/**/*.test.*",
99
- "test:mocha:coverage": "rimraf tmp/coverage/mocha && nyc --all mocha ./src/**/*.test.*",
100
- "test:mocha:watch": "mocha --watch ./src/**/*.test.*",
101
- "test:karma": "rimraf tmp/coverage/karma && karma start --single-run --log-level debug",
102
- "test:mocha:ci": "rimraf tmp/coverage/mocha && nyc --all mocha ./{src,dist/lib}/**/*.test.*",
103
- "coveralls": "pnpm run coverage:check && nyc report --reporter=text-lcov --temp-dir \"tmp/coverage/merge/\" | coveralls"
104
105
  }
105
- }
106
+ }