@lodestar/spec-test-util 1.48.0-dev.f22c5ce63e → 1.48.0-dev.fd70e5fc15
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/lib/single.d.ts +2 -0
- package/lib/single.d.ts.map +1 -1
- package/lib/single.js +15 -1
- package/lib/single.js.map +1 -1
- package/package.json +5 -5
- package/src/single.ts +19 -1
package/lib/single.d.ts
CHANGED
|
@@ -46,6 +46,8 @@ export interface SpecTestOptions<TestCase extends {
|
|
|
46
46
|
[K: string]: (value: any) => any;
|
|
47
47
|
};
|
|
48
48
|
shouldError?: (testCase: TestCase) => boolean;
|
|
49
|
+
/** Determine whether an input deserialization error is expected from the error and the files present in the test case. */
|
|
50
|
+
shouldErrorOnInput?: (error: Error, inputNames: Set<string>, name: string, index: number) => boolean;
|
|
49
51
|
shouldSkip?: (testCase: TestCase, name: string, index: number) => boolean;
|
|
50
52
|
expectFunc?: (testCase: TestCase, expected: any, actual: any) => void;
|
|
51
53
|
timeout?: number;
|
package/lib/single.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"single.d.ts","sourceRoot":"","sources":["../src/single.ts"],"names":[],"mappings":"AAMA,oBAAY,SAAS;IACnB,GAAG,QAAQ;IACX,UAAU,eAAe;IACzB,IAAI,SAAS;CACd;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,SAAS,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,KAAK,cAAc,GAAG;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,OAAO,CAAC;IAC5C,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,OAAO,CAAC;CACtD,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,SAAS,GAAG,iBAAiB,GAAG,iBAAiB,CAQ/F;AAED,MAAM,WAAW,eAAe,CAAC,QAAQ,SAAS;IAAC,IAAI,CAAC,EAAE,GAAG,CAAA;CAAC,EAAE,MAAM;IACpE;;;OAGG;IACH,UAAU,CAAC,EAAE;SAAE,CAAC,IAAI,MAAM,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,GAAG,iBAAiB;KAAC,CAAC;IAElF,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAE1C;;OAEG;IACH,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAEzE;;;OAGG;IACH,aAAa,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,QAAQ,CAAC;IAErD;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,MAAM,GAAG,SAAS,CAAC;IAEzD;;;OAGG;IAEH,eAAe,CAAC,EAAE;QAAC,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAAA;KAAC,CAAC;IAErD,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,OAAO,CAAC;IAE9C,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IAE1E,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;IAEtE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAaD,wBAAgB,yBAAyB,CAAC,QAAQ,SAAS;IAAC,IAAI,CAAC,EAAE,GAAG,CAAA;CAAC,EAAE,MAAM,EAC7E,IAAI,EAAE,MAAM,EACZ,qBAAqB,EAAE,MAAM,EAC7B,YAAY,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,EAC3G,OAAO,EAAE,OAAO,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,GAClD,IAAI,
|
|
1
|
+
{"version":3,"file":"single.d.ts","sourceRoot":"","sources":["../src/single.ts"],"names":[],"mappings":"AAMA,oBAAY,SAAS;IACnB,GAAG,QAAQ;IACX,UAAU,eAAe;IACzB,IAAI,SAAS;CACd;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,SAAS,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,KAAK,cAAc,GAAG;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,OAAO,CAAC;IAC5C,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,OAAO,CAAC;CACtD,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,SAAS,GAAG,iBAAiB,GAAG,iBAAiB,CAQ/F;AAED,MAAM,WAAW,eAAe,CAAC,QAAQ,SAAS;IAAC,IAAI,CAAC,EAAE,GAAG,CAAA;CAAC,EAAE,MAAM;IACpE;;;OAGG;IACH,UAAU,CAAC,EAAE;SAAE,CAAC,IAAI,MAAM,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,GAAG,iBAAiB;KAAC,CAAC;IAElF,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAE1C;;OAEG;IACH,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAEzE;;;OAGG;IACH,aAAa,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,QAAQ,CAAC;IAErD;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,MAAM,GAAG,SAAS,CAAC;IAEzD;;;OAGG;IAEH,eAAe,CAAC,EAAE;QAAC,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAAA;KAAC,CAAC;IAErD,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,OAAO,CAAC;IAE9C,0HAA0H;IAC1H,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IAErG,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IAE1E,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;IAEtE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAaD,wBAAgB,yBAAyB,CAAC,QAAQ,SAAS;IAAC,IAAI,CAAC,EAAE,GAAG,CAAA;CAAC,EAAE,MAAM,EAC7E,IAAI,EAAE,MAAM,EACZ,qBAAqB,EAAE,MAAM,EAC7B,YAAY,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,EAC3G,OAAO,EAAE,OAAO,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,GAClD,IAAI,CAgEN;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAElE"}
|
package/lib/single.js
CHANGED
|
@@ -50,7 +50,20 @@ export function describeDirectorySpecTest(name, testCaseDirectoryPath, testFunct
|
|
|
50
50
|
const meta = fs.existsSync(metaFilePath)
|
|
51
51
|
? loadYaml(fs.readFileSync(metaFilePath, "utf8"))
|
|
52
52
|
: undefined;
|
|
53
|
-
let testCase
|
|
53
|
+
let testCase;
|
|
54
|
+
try {
|
|
55
|
+
testCase = loadInputFiles(testSubDirPath, options, meta);
|
|
56
|
+
}
|
|
57
|
+
catch (e) {
|
|
58
|
+
const inputNames = new Set(fs
|
|
59
|
+
.readdirSync(testSubDirPath)
|
|
60
|
+
.filter((file) => !isDirectory(path.join(testSubDirPath, file)))
|
|
61
|
+
.map((file) => path.parse(file).name));
|
|
62
|
+
if (options.shouldErrorOnInput?.(e, inputNames, testName, 0)) {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
throw e;
|
|
66
|
+
}
|
|
54
67
|
if (options.mapToTestCase)
|
|
55
68
|
testCase = options.mapToTestCase(testCase);
|
|
56
69
|
if (options.shouldSkip?.(testCase, testName, 0)) {
|
|
@@ -64,6 +77,7 @@ export function describeDirectorySpecTest(name, testCaseDirectoryPath, testFunct
|
|
|
64
77
|
catch (_e) {
|
|
65
78
|
return;
|
|
66
79
|
}
|
|
80
|
+
expect.unreachable("Expected test function to throw");
|
|
67
81
|
}
|
|
68
82
|
else {
|
|
69
83
|
const result = await testFunction(testCase, name, testSubDirname);
|
package/lib/single.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"single.js","sourceRoot":"","sources":["../src/single.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AACpC,OAAO,EAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAC,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAC,QAAQ,EAAC,MAAM,iBAAiB,CAAC;AAEzC,MAAM,CAAN,IAAY,SAIX;AAJD,WAAY,SAAS;IACnB,wBAAW,CAAA;IACX,sCAAyB,CAAA;IACzB,0BAAa,CAAA;AACf,CAAC,EAJW,SAAS,KAAT,SAAS,QAIpB;AAaD,MAAM,UAAU,mBAAmB,CAAC,SAAwC;IAC1E,IAAK,SAA+B,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACxD,OAAO,SAA8B,CAAC;IACxC,CAAC;IACD,OAAO;QACL,IAAI,EAAE,SAAsB;QAC5B,UAAU,EAAE,KAAK;KAClB,CAAC;AACJ,CAAC;
|
|
1
|
+
{"version":3,"file":"single.js","sourceRoot":"","sources":["../src/single.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lodestar/spec-test-util",
|
|
3
|
-
"version": "1.48.0-dev.
|
|
3
|
+
"version": "1.48.0-dev.fd70e5fc15",
|
|
4
4
|
"description": "Spec test suite generator from yaml test files",
|
|
5
5
|
"author": "ChainSafe Systems",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -59,15 +59,15 @@
|
|
|
59
59
|
"blockchain"
|
|
60
60
|
],
|
|
61
61
|
"dependencies": {
|
|
62
|
-
"@lodestar/utils": "^1.48.0-dev.
|
|
62
|
+
"@lodestar/utils": "^1.48.0-dev.fd70e5fc15",
|
|
63
63
|
"rimraf": "^4.4.1",
|
|
64
64
|
"snappyjs": "^0.7.0",
|
|
65
65
|
"vitest": "catalog:"
|
|
66
66
|
},
|
|
67
67
|
"peerDependencies": {
|
|
68
|
-
"@chainsafe/ssz": "^1.
|
|
69
|
-
"@lodestar/types": "^1.48.0-dev.
|
|
68
|
+
"@chainsafe/ssz": "^1.7.0",
|
|
69
|
+
"@lodestar/types": "^1.48.0-dev.fd70e5fc15",
|
|
70
70
|
"vitest": "catalog:"
|
|
71
71
|
},
|
|
72
|
-
"gitHead": "
|
|
72
|
+
"gitHead": "dbc49c8fa4a2870bc2b4b102fe61a4d2909621fa"
|
|
73
73
|
}
|
package/src/single.ts
CHANGED
|
@@ -66,6 +66,9 @@ export interface SpecTestOptions<TestCase extends {meta?: any}, Result> {
|
|
|
66
66
|
|
|
67
67
|
shouldError?: (testCase: TestCase) => boolean;
|
|
68
68
|
|
|
69
|
+
/** Determine whether an input deserialization error is expected from the error and the files present in the test case. */
|
|
70
|
+
shouldErrorOnInput?: (error: Error, inputNames: Set<string>, name: string, index: number) => boolean;
|
|
71
|
+
|
|
69
72
|
shouldSkip?: (testCase: TestCase, name: string, index: number) => boolean;
|
|
70
73
|
|
|
71
74
|
expectFunc?: (testCase: TestCase, expected: any, actual: any) => void;
|
|
@@ -115,7 +118,21 @@ export function describeDirectorySpecTest<TestCase extends {meta?: any}, Result>
|
|
|
115
118
|
? loadYaml(fs.readFileSync(metaFilePath, "utf8"))
|
|
116
119
|
: undefined;
|
|
117
120
|
|
|
118
|
-
let testCase
|
|
121
|
+
let testCase: TestCase;
|
|
122
|
+
try {
|
|
123
|
+
testCase = loadInputFiles(testSubDirPath, options, meta);
|
|
124
|
+
} catch (e) {
|
|
125
|
+
const inputNames = new Set(
|
|
126
|
+
fs
|
|
127
|
+
.readdirSync(testSubDirPath)
|
|
128
|
+
.filter((file) => !isDirectory(path.join(testSubDirPath, file)))
|
|
129
|
+
.map((file) => path.parse(file).name)
|
|
130
|
+
);
|
|
131
|
+
if (options.shouldErrorOnInput?.(e as Error, inputNames, testName, 0)) {
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
throw e;
|
|
135
|
+
}
|
|
119
136
|
if (options.mapToTestCase) testCase = options.mapToTestCase(testCase);
|
|
120
137
|
if (options.shouldSkip?.(testCase, testName, 0)) {
|
|
121
138
|
context.skip();
|
|
@@ -128,6 +145,7 @@ export function describeDirectorySpecTest<TestCase extends {meta?: any}, Result>
|
|
|
128
145
|
} catch (_e) {
|
|
129
146
|
return;
|
|
130
147
|
}
|
|
148
|
+
expect.unreachable("Expected test function to throw");
|
|
131
149
|
} else {
|
|
132
150
|
const result = await testFunction(testCase, name, testSubDirname);
|
|
133
151
|
if (!options.getExpected) throw Error("getExpected is not defined");
|