@flemist/test-variants 0.0.15 → 1.0.0
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/bundle/browser.js
CHANGED
|
@@ -38,41 +38,43 @@ setTimeout((function(){n(e)}),1)}))
|
|
|
38
38
|
;return e<=0?n:n.then(r)}
|
|
39
39
|
e.createTestVariants=function(e){
|
|
40
40
|
return function(o){return function(a){
|
|
41
|
-
var i=void 0===a?{}:a,u=i.GC_Iterations,c=void 0===u?1e6:u,l=i.GC_IterationsAsync,s=void 0===l?1e4:l,f=i.GC_Interval,v=void 0===f?1e3:f,h=i.logInterval,b=void 0===h?5e3:h,
|
|
42
|
-
;function
|
|
43
|
-
;return"function"==typeof n&&(n=n(
|
|
44
|
-
for(var
|
|
45
|
-
;
|
|
41
|
+
var i=void 0===a?{}:a,u=i.GC_Iterations,c=void 0===u?1e6:u,l=i.GC_IterationsAsync,s=void 0===l?1e4:l,f=i.GC_Interval,v=void 0===f?1e3:f,h=i.logInterval,b=void 0===h?5e3:h,d=i.logCompleted,p=void 0===d||d,y=i.onError,w=void 0===y?null:y,g=i.abortSignal,m=Object.keys(o),I=Object.values(o),k=m.length,x={}
|
|
42
|
+
;function D(e){var n=I[e]
|
|
43
|
+
;return"function"==typeof n&&(n=n(x)),n}
|
|
44
|
+
for(var E=[],G=[],O=0;O<k;O++)E[O]=-1,G[O]=[]
|
|
45
|
+
;G[0]=D(0);var T=0,_=0,j=!1,C=0;function S(e){
|
|
46
46
|
return n(this,void 0,void 0,(function(){var n
|
|
47
47
|
;return t(this,(function(t){switch(t.label){
|
|
48
48
|
case 0:
|
|
49
|
-
return console.error("error variant: ".concat(
|
|
49
|
+
return console.error("error variant: ".concat(T,"\r\n").concat(JSON.stringify(x,null,2))),
|
|
50
50
|
console.error(e),
|
|
51
|
-
n=Date.now(),Date.now()-n>50&&
|
|
52
|
-
|
|
53
|
-
;case 2:throw w&&w({iteration:
|
|
54
|
-
}),e}}))}))}var P=Date.now(),
|
|
55
|
-
;function
|
|
51
|
+
n=Date.now(),Date.now()-n>50&&C<5?(console.log("DEBUG ITERATION: "+C),
|
|
52
|
+
j=!0,[4,J()]):[3,2];case 1:t.sent(),C++,t.label=2
|
|
53
|
+
;case 2:throw w&&w({iteration:T,variant:x,error:e
|
|
54
|
+
}),e}}))}))}var P=Date.now(),A=P,N=T,B=_
|
|
55
|
+
;function J(){
|
|
56
56
|
return n(this,void 0,void 0,(function(){
|
|
57
57
|
var n,o,a,i;return t(this,(function(t){
|
|
58
58
|
switch(t.label){case 0:
|
|
59
59
|
t.trys.push([0,7,,9]),t.label=1;case 1:
|
|
60
|
-
return
|
|
61
|
-
var
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
if(e
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
60
|
+
return(null==g?void 0:g.aborted)||!j&&!function(){
|
|
61
|
+
for(var e=k-1;e>=0;e--){var n=E[e]+1
|
|
62
|
+
;if(n<G[e].length){
|
|
63
|
+
for(E[e]=n,x[m[e]]=G[e][n],e++;e<k;e++){var t=D(e)
|
|
64
|
+
;if(0===t.length)break;E[e]=0,G[e]=t,x[m[e]]=t[0]}
|
|
65
|
+
if(e>=k)return!0}}return!1
|
|
66
|
+
}()?[3,6]:(n=(b||v)&&Date.now(),b&&n-P>=b&&(console.log(T),
|
|
67
|
+
P=n),c&&T-N>=c||s&&_-B>=s||v&&n-A>=v?(N=T,
|
|
68
|
+
B=_,A=n,[4,r(1)]):[3,3]);case 2:
|
|
68
69
|
return t.sent(),[3,1];case 3:
|
|
69
|
-
return"object"==typeof(o=e(
|
|
70
|
+
return"object"==typeof(o=e(x))&&o&&"function"==typeof o.then?[4,o]:[3,5]
|
|
70
71
|
;case 4:
|
|
71
|
-
return a=t.sent(),
|
|
72
|
-
;case 5:return
|
|
73
|
-
;case 6:return[3,9];case 7:return[4,
|
|
72
|
+
return a=t.sent(),_+=i="number"==typeof a?a:1,T+=i,[3,1]
|
|
73
|
+
;case 5:return T+="number"==typeof o?o:1,[3,1]
|
|
74
|
+
;case 6:return[3,9];case 7:return[4,S(t.sent())]
|
|
74
75
|
;case 8:return t.sent(),[3,9];case 9:
|
|
75
|
-
|
|
76
|
-
;
|
|
76
|
+
if(null==g?void 0:g.aborted)throw g.reason
|
|
77
|
+
;return p&&console.log("variants: "+T),[4,r(1)]
|
|
78
|
+
;case 10:return t.sent(),[2,T]}}))}))}return J()}}
|
|
77
79
|
},Object.defineProperty(e,"__esModule",{value:!0})
|
|
78
80
|
}({});
|
|
@@ -8,7 +8,7 @@ var garbageCollect_garbageCollect = require('../garbage-collect/garbageCollect.c
|
|
|
8
8
|
/* eslint-disable @typescript-eslint/no-shadow */
|
|
9
9
|
function createTestVariants(test) {
|
|
10
10
|
return function testVariantsArgs(args) {
|
|
11
|
-
return function testVariantsCall({ GC_Iterations = 1000000, GC_IterationsAsync = 10000, GC_Interval = 1000, logInterval = 5000, logCompleted = true, onError: onErrorCallback = null, } = {}) {
|
|
11
|
+
return function testVariantsCall({ GC_Iterations = 1000000, GC_IterationsAsync = 10000, GC_Interval = 1000, logInterval = 5000, logCompleted = true, onError: onErrorCallback = null, abortSignal, } = {}) {
|
|
12
12
|
const argsKeys = Object.keys(args);
|
|
13
13
|
const argsValues = Object.values(args);
|
|
14
14
|
const argsLength = argsKeys.length;
|
|
@@ -89,7 +89,7 @@ function createTestVariants(test) {
|
|
|
89
89
|
function next() {
|
|
90
90
|
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
91
91
|
try {
|
|
92
|
-
while (debug || nextVariant()) {
|
|
92
|
+
while (!(abortSignal === null || abortSignal === void 0 ? void 0 : abortSignal.aborted) && (debug || nextVariant())) {
|
|
93
93
|
const now = (logInterval || GC_Interval) && Date.now();
|
|
94
94
|
if (logInterval && now - prevLogTime >= logInterval) {
|
|
95
95
|
// the log is required to prevent the karma browserNoActivityTimeout
|
|
@@ -121,6 +121,9 @@ function createTestVariants(test) {
|
|
|
121
121
|
catch (err) {
|
|
122
122
|
yield onError(err);
|
|
123
123
|
}
|
|
124
|
+
if (abortSignal === null || abortSignal === void 0 ? void 0 : abortSignal.aborted) {
|
|
125
|
+
throw abortSignal.reason;
|
|
126
|
+
}
|
|
124
127
|
onCompleted();
|
|
125
128
|
yield garbageCollect_garbageCollect.garbageCollect(1);
|
|
126
129
|
return iterations;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { IAbortSignalFast } from '@flemist/abort-controller-fast';
|
|
1
2
|
declare type VariantsArgs<TArgs> = {
|
|
2
3
|
[key in keyof TArgs]: TArgs[key][] | ((args: TArgs) => TArgs[key][]);
|
|
3
4
|
};
|
|
@@ -22,6 +23,8 @@ export declare type TestVariantsCallParams<TArgs> = {
|
|
|
22
23
|
variant: TArgs;
|
|
23
24
|
error: any;
|
|
24
25
|
}) => void;
|
|
26
|
+
abortSignal?: IAbortSignalFast;
|
|
27
|
+
parallel?: number;
|
|
25
28
|
};
|
|
26
29
|
export declare function createTestVariants<TArgs extends object>(test: (args: TArgs) => Promise<number | void> | number | void): TestVariantsSetArgs<TArgs>;
|
|
27
30
|
export {};
|
|
@@ -4,7 +4,7 @@ import { garbageCollect } from '../garbage-collect/garbageCollect.mjs';
|
|
|
4
4
|
/* eslint-disable @typescript-eslint/no-shadow */
|
|
5
5
|
function createTestVariants(test) {
|
|
6
6
|
return function testVariantsArgs(args) {
|
|
7
|
-
return function testVariantsCall({ GC_Iterations = 1000000, GC_IterationsAsync = 10000, GC_Interval = 1000, logInterval = 5000, logCompleted = true, onError: onErrorCallback = null, } = {}) {
|
|
7
|
+
return function testVariantsCall({ GC_Iterations = 1000000, GC_IterationsAsync = 10000, GC_Interval = 1000, logInterval = 5000, logCompleted = true, onError: onErrorCallback = null, abortSignal, } = {}) {
|
|
8
8
|
const argsKeys = Object.keys(args);
|
|
9
9
|
const argsValues = Object.values(args);
|
|
10
10
|
const argsLength = argsKeys.length;
|
|
@@ -85,7 +85,7 @@ function createTestVariants(test) {
|
|
|
85
85
|
function next() {
|
|
86
86
|
return __awaiter(this, void 0, void 0, function* () {
|
|
87
87
|
try {
|
|
88
|
-
while (debug || nextVariant()) {
|
|
88
|
+
while (!(abortSignal === null || abortSignal === void 0 ? void 0 : abortSignal.aborted) && (debug || nextVariant())) {
|
|
89
89
|
const now = (logInterval || GC_Interval) && Date.now();
|
|
90
90
|
if (logInterval && now - prevLogTime >= logInterval) {
|
|
91
91
|
// the log is required to prevent the karma browserNoActivityTimeout
|
|
@@ -117,6 +117,9 @@ function createTestVariants(test) {
|
|
|
117
117
|
catch (err) {
|
|
118
118
|
yield onError(err);
|
|
119
119
|
}
|
|
120
|
+
if (abortSignal === null || abortSignal === void 0 ? void 0 : abortSignal.aborted) {
|
|
121
|
+
throw abortSignal.reason;
|
|
122
|
+
}
|
|
120
123
|
onCompleted();
|
|
121
124
|
yield garbageCollect(1);
|
|
122
125
|
return iterations;
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flemist/test-variants",
|
|
3
|
-
"version": "0.0
|
|
3
|
+
"version": "1.0.0",
|
|
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",
|
|
7
7
|
"types": "dist/lib/index.d.ts",
|
|
8
8
|
"engines": {
|
|
9
9
|
"node": ">=10.4.0",
|
|
10
|
-
"pnpm": "
|
|
10
|
+
"pnpm": ">=7.1.6"
|
|
11
11
|
},
|
|
12
12
|
"repository": {
|
|
13
13
|
"type": "git",
|
|
@@ -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",
|
|
@@ -41,7 +58,7 @@
|
|
|
41
58
|
"@babel/runtime-corejs3": "7.18.3",
|
|
42
59
|
"@flemist/copy-glob-flat": "0.0.5",
|
|
43
60
|
"@flemist/karma-custom-launcher": "0.0.0",
|
|
44
|
-
"@flemist/test-utils": "0.0.
|
|
61
|
+
"@flemist/test-utils": "0.0.9",
|
|
45
62
|
"@rollup/plugin-alias": "3.1.9",
|
|
46
63
|
"@rollup/plugin-babel": "5.3.1",
|
|
47
64
|
"@rollup/plugin-commonjs": "=21.1.0",
|
|
@@ -50,16 +67,15 @@
|
|
|
50
67
|
"@rollup/plugin-multi-entry": "4.1.0",
|
|
51
68
|
"@rollup/plugin-node-resolve": "13.3.0",
|
|
52
69
|
"@rollup/plugin-replace": "4.0.0",
|
|
53
|
-
"@rollup/plugin-typescript": "
|
|
70
|
+
"@rollup/plugin-typescript": "11.1.5",
|
|
71
|
+
"@rollup/pluginutils": "4.2.1",
|
|
54
72
|
"@types/assert": "1.5.6",
|
|
55
|
-
"@types/fs-extra": "9.0.13",
|
|
56
73
|
"@types/mocha": "9.1.1",
|
|
57
74
|
"@types/node": "18.0.0",
|
|
58
75
|
"@zerollup/ts-transform-paths": "1.7.18",
|
|
59
76
|
"cpy-cli": "=3.1.1",
|
|
60
77
|
"eslint": "8.18.0",
|
|
61
|
-
"eslint-config-pro": "3.0.
|
|
62
|
-
"fs-extra": "10.1.0",
|
|
78
|
+
"eslint-config-pro": "3.0.16",
|
|
63
79
|
"globby": "=11.1.0",
|
|
64
80
|
"karma": "6.4.0",
|
|
65
81
|
"karma-chrome-launcher": "3.1.1",
|
|
@@ -68,9 +84,8 @@
|
|
|
68
84
|
"karma-mocha": "2.0.1",
|
|
69
85
|
"karma-safari-launcher": "1.0.0",
|
|
70
86
|
"mocha": "9.2.2",
|
|
71
|
-
"nodemon": "2.0.16",
|
|
72
87
|
"nyc": "15.1.0",
|
|
73
|
-
"rdtsc": "
|
|
88
|
+
"rdtsc": "3.0.3",
|
|
74
89
|
"rimraf": "3.0.2",
|
|
75
90
|
"rollup": "2.75.7",
|
|
76
91
|
"rollup-plugin-delete": "2.0.0",
|
|
@@ -80,25 +95,10 @@
|
|
|
80
95
|
"rollup-plugin-terser": "7.0.2",
|
|
81
96
|
"ts-node": "=10.8.0",
|
|
82
97
|
"tsconfig-paths": "4.0.0",
|
|
83
|
-
"typescript": "
|
|
98
|
+
"typescript": "=4.7.4"
|
|
84
99
|
},
|
|
85
100
|
"dependencies": {
|
|
101
|
+
"@flemist/abort-controller-fast": "1.0.0",
|
|
86
102
|
"tslib": "^2.4.0"
|
|
87
|
-
},
|
|
88
|
-
"scripts": {
|
|
89
|
-
"audit": "pnpm audit --prod",
|
|
90
|
-
"lint": "eslint ./**/*.{js,cjs,mjs,ts,tsx}",
|
|
91
|
-
"lint:fix": "eslint --fix ./**/*.{js,cjs,mjs,ts,tsx}",
|
|
92
|
-
"lint:wizard": "eslint-nibble --cache --multi ./**/*.{js,cjs,mjs,ts,tsx}",
|
|
93
|
-
"build:js": "rimraf dist/lib && cpy \"**/assets/**\" \"../dist/lib/\" --parents --cwd=src && rollup -c",
|
|
94
|
-
"build": "rimraf dist && pnpm run build:js",
|
|
95
|
-
"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/\"",
|
|
96
|
-
"coverage:check": "pnpm run coverage:merge && nyc check-coverage --report-dir tmp/coverage/all/lcov --lines 50 --functions 50 --branches 50 --statements 50",
|
|
97
|
-
"test:mocha": "mocha ./src/**/*.test.*",
|
|
98
|
-
"test:mocha:coverage": "rimraf tmp/coverage/mocha && nyc --all mocha ./src/**/*.test.*",
|
|
99
|
-
"test:mocha:watch": "mocha --watch ./src/**/*.test.*",
|
|
100
|
-
"test:karma": "rimraf tmp/coverage/karma && karma start --single-run --log-level debug",
|
|
101
|
-
"test:mocha:ci": "rimraf tmp/coverage/mocha && nyc --all mocha ./{src,dist/lib}/**/*.test.*",
|
|
102
|
-
"coveralls": "pnpm run coverage:check && nyc report --reporter=text-lcov --temp-dir \"tmp/coverage/merge/\" | coveralls"
|
|
103
103
|
}
|
|
104
|
-
}
|
|
104
|
+
}
|