as-test 0.2.0 → 0.3.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/.github/workflows/as-test.yml +3 -0
- package/CHANGELOG.md +4 -1
- package/README.md +73 -67
- package/as-test.config.json +7 -10
- package/assembly/__tests__/array.spec.ts +19 -0
- package/assembly/__tests__/math.spec.ts +16 -0
- package/assembly/__tests__/sleep.spec.ts +28 -0
- package/assembly/index.ts +181 -165
- package/assembly/src/expectation.ts +119 -112
- package/assembly/src/log.ts +19 -0
- package/assembly/src/suite.ts +99 -0
- package/assembly/src/tests.ts +10 -0
- package/assembly/tsconfig.json +1 -1
- package/assembly/util/helpers.ts +0 -33
- package/assembly/util/term.ts +55 -0
- package/assets/img/download.png +0 -0
- package/bin/about.js +135 -0
- package/bin/build.js +72 -131
- package/bin/index.js +70 -112
- package/bin/init.js +211 -39
- package/bin/reporter.js +1 -0
- package/bin/run.js +226 -68
- package/bin/types.js +25 -31
- package/bin/util.js +44 -20
- package/cli/build.ts +70 -109
- package/cli/index.ts +148 -159
- package/cli/init.ts +235 -34
- package/cli/reporter.ts +1 -0
- package/cli/run.ts +266 -57
- package/cli/types.ts +6 -11
- package/cli/util.ts +35 -0
- package/package.json +6 -2
- package/run/package.json +27 -0
- package/tests/array.run.js +7 -0
- package/tests/math.run.js +7 -0
- package/tests/sleep.run.js +7 -0
- package/transform/lib/coverage.js +325 -319
- package/transform/lib/index.js +51 -31
- package/transform/lib/index.js.map +1 -1
- package/transform/lib/mock.js +61 -55
- package/transform/lib/mock.js.map +1 -1
- package/transform/package.json +1 -1
- package/transform/src/index.ts +22 -3
- package/transform/src/mock.ts +1 -1
- package/asconfig.json +0 -31
- package/assembly/__tests__/example.spec.ts +0 -79
- package/assembly/reporters/tap.ts +0 -30
- package/assembly/src/group.ts +0 -44
- package/assembly/src/node.ts +0 -13
- package/test.config.json +0 -0
- package/tests/test.tap +0 -14
- package/unision +0 -38
- package/unision.pub +0 -1
- package/utils.ts +0 -1
package/transform/lib/index.js
CHANGED
|
@@ -1,39 +1,59 @@
|
|
|
1
1
|
import { Transform } from "assemblyscript/dist/transform.js";
|
|
2
|
-
import { Source, Tokenizer
|
|
2
|
+
import { Node, Source, Tokenizer } from "assemblyscript/dist/assemblyscript.js";
|
|
3
3
|
import { isStdlib } from "visitor-as/dist/utils.js";
|
|
4
4
|
import { CoverageTransform } from "./coverage.js";
|
|
5
5
|
import { MockTransform } from "./mock.js";
|
|
6
6
|
export default class Transformer extends Transform {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
else {
|
|
22
|
-
return 0;
|
|
23
|
-
}
|
|
24
|
-
});
|
|
25
|
-
for (const source of sources) {
|
|
26
|
-
mock.visit(source);
|
|
27
|
-
coverage.visit(source);
|
|
28
|
-
if (coverage.globalStatements.length) {
|
|
29
|
-
source.statements.unshift(...coverage.globalStatements);
|
|
30
|
-
const tokenizer = new Tokenizer(new Source(0, source.normalizedPath, 'import { __REGISTER, __COVER } from "as-test/assembly/coverage";'));
|
|
31
|
-
parser.currentSource = tokenizer.source;
|
|
32
|
-
source.statements.unshift(parser.parseTopLevelStatement(tokenizer));
|
|
33
|
-
parser.currentSource = source;
|
|
34
|
-
}
|
|
7
|
+
afterParse(parser) {
|
|
8
|
+
const mock = new MockTransform();
|
|
9
|
+
const coverage = new CoverageTransform();
|
|
10
|
+
const sources = parser.sources
|
|
11
|
+
.filter((source) => !isStdlib(source))
|
|
12
|
+
.sort((_a, _b) => {
|
|
13
|
+
const a = _a.internalPath;
|
|
14
|
+
const b = _b.internalPath;
|
|
15
|
+
if (a[0] === "~" && b[0] !== "~") {
|
|
16
|
+
return -1;
|
|
17
|
+
} else if (a[0] !== "~" && b[0] === "~") {
|
|
18
|
+
return 1;
|
|
19
|
+
} else {
|
|
20
|
+
return 0;
|
|
35
21
|
}
|
|
36
|
-
|
|
22
|
+
});
|
|
23
|
+
const entryFile = sources.find((v) => v.sourceKind == 1).simplePath;
|
|
24
|
+
for (const source of sources) {
|
|
25
|
+
const node = Node.createVariableStatement(
|
|
26
|
+
null,
|
|
27
|
+
[
|
|
28
|
+
Node.createVariableDeclaration(
|
|
29
|
+
Node.createIdentifierExpression("ENTRY_FILE", source.range),
|
|
30
|
+
null,
|
|
31
|
+
8,
|
|
32
|
+
null,
|
|
33
|
+
Node.createStringLiteralExpression(entryFile + ".ts", source.range),
|
|
34
|
+
source.range,
|
|
35
|
+
),
|
|
36
|
+
],
|
|
37
|
+
source.range,
|
|
38
|
+
);
|
|
39
|
+
source.statements.unshift(node);
|
|
40
|
+
mock.visit(source);
|
|
41
|
+
coverage.visit(source);
|
|
42
|
+
if (coverage.globalStatements.length) {
|
|
43
|
+
source.statements.unshift(...coverage.globalStatements);
|
|
44
|
+
const tokenizer = new Tokenizer(
|
|
45
|
+
new Source(
|
|
46
|
+
0,
|
|
47
|
+
source.normalizedPath,
|
|
48
|
+
'import { __REGISTER, __COVER } from "as-test/assembly/coverage";',
|
|
49
|
+
),
|
|
50
|
+
);
|
|
51
|
+
parser.currentSource = tokenizer.source;
|
|
52
|
+
source.statements.unshift(parser.parseTopLevelStatement(tokenizer));
|
|
53
|
+
parser.currentSource = source;
|
|
54
|
+
}
|
|
37
55
|
}
|
|
56
|
+
coverage.globalStatements = [];
|
|
57
|
+
}
|
|
38
58
|
}
|
|
39
|
-
//# sourceMappingURL=index.js.map
|
|
59
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAC7D,OAAO,EAEL,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAC7D,OAAO,EAEL,IAAI,EAGJ,MAAM,EACN,SAAS,EACV,MAAM,uCAAuC,CAAC;AAE/C,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,SAAS;IAEhD,UAAU,CAAC,MAAc;QAEvB,MAAM,IAAI,GAAG,IAAI,aAAa,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,IAAI,iBAAiB,EAAE,CAAC;QAGzC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO;aAC3B,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;aACrC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;YACf,MAAM,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC;YAC1B,MAAM,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC;YAC1B,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;gBACjC,OAAO,CAAC,CAAC,CAAC;YACZ,CAAC;iBAAM,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;gBACxC,OAAO,CAAC,CAAC;YACX,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,CAAC;YACX,CAAC;QACH,CAAC,CAAC,CAAC;QACL,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAC5B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAwB,CAC5C,CAAC,UAAU,CAAC;QAEb,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,uBAAuB,CACvC,IAAI,EACJ;gBACE,IAAI,CAAC,yBAAyB,CAC5B,IAAI,CAAC,0BAA0B,CAAC,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,EAC3D,IAAI,KAEJ,IAAI,EACJ,IAAI,CAAC,6BAA6B,CAAC,SAAS,GAAG,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EACnE,MAAM,CAAC,KAAK,CACb;aACF,EACD,MAAM,CAAC,KAAK,CACb,CAAC;YACF,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAChC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACnB,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACvB,IAAI,QAAQ,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC;gBACrC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC,gBAAgB,CAAC,CAAC;gBACxD,MAAM,SAAS,GAAG,IAAI,SAAS,CAC7B,IAAI,MAAM,IAER,MAAM,CAAC,cAAc,EACrB,kEAAkE,CACnE,CACF,CAAC;gBACF,MAAM,CAAC,aAAa,GAAG,SAAS,CAAC,MAAM,CAAC;gBACxC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,sBAAsB,CAAC,SAAS,CAAE,CAAC,CAAC;gBACrE,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC;YAChC,CAAC;QACH,CAAC;QACD,QAAQ,CAAC,gBAAgB,GAAG,EAAE,CAAC;IACjC,CAAC;CACF"}
|
package/transform/lib/mock.js
CHANGED
|
@@ -1,62 +1,68 @@
|
|
|
1
|
-
import { Node
|
|
1
|
+
import { Node } from "assemblyscript/dist/assemblyscript.js";
|
|
2
2
|
import { BaseVisitor } from "visitor-as/dist/index.js";
|
|
3
3
|
import { isStdlib, toString } from "visitor-as/dist/utils.js";
|
|
4
4
|
export class MockTransform extends BaseVisitor {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
const ov = node.args[0];
|
|
22
|
-
const cb = node.args[1];
|
|
23
|
-
const newName = ov.value
|
|
24
|
-
.replaceAll(".", "_")
|
|
25
|
-
.replaceAll("[", "_")
|
|
26
|
-
.replaceAll("]", "_");
|
|
27
|
-
const newFn = Node.createFunctionDeclaration(Node.createIdentifierExpression(newName + "_mock", cb.range), cb.declaration.decorators, 0, cb.declaration.typeParameters, cb.declaration.signature, cb.declaration.body, cb.declaration.arrowKind, cb.range);
|
|
28
|
-
const stmts = this.currentSource.statements;
|
|
29
|
-
let index = -1;
|
|
30
|
-
for (let i = 0; i < stmts.length; i++) {
|
|
31
|
-
const stmt = stmts[i];
|
|
32
|
-
if (stmt.range.start != node.range.start)
|
|
33
|
-
continue;
|
|
34
|
-
index = i;
|
|
35
|
-
break;
|
|
36
|
-
}
|
|
37
|
-
if (index === -1)
|
|
38
|
-
return;
|
|
39
|
-
stmts.splice(index, 1, newFn);
|
|
40
|
-
this.mocked.add(newFn.name.text);
|
|
5
|
+
currentSource;
|
|
6
|
+
globalStatements = [];
|
|
7
|
+
fn = new Map();
|
|
8
|
+
mocked = new Set();
|
|
9
|
+
visitCallExpression(node) {
|
|
10
|
+
super.visitCallExpression(node);
|
|
11
|
+
const name = toString(node.expression)
|
|
12
|
+
.replaceAll(".", "_")
|
|
13
|
+
.replaceAll("[", "_")
|
|
14
|
+
.replaceAll("]", "_");
|
|
15
|
+
if (this.mocked.has(name + "_mock")) {
|
|
16
|
+
node.expression = Node.createIdentifierExpression(
|
|
17
|
+
name + "_mock",
|
|
18
|
+
node.expression.range,
|
|
19
|
+
);
|
|
20
|
+
return;
|
|
41
21
|
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
22
|
+
if (name != "mockFn") return;
|
|
23
|
+
const ov = node.args[0];
|
|
24
|
+
const cb = node.args[1];
|
|
25
|
+
const newName = ov.value
|
|
26
|
+
.replaceAll(".", "_")
|
|
27
|
+
.replaceAll("[", "_")
|
|
28
|
+
.replaceAll("]", "_");
|
|
29
|
+
const newFn = Node.createFunctionDeclaration(
|
|
30
|
+
Node.createIdentifierExpression(newName + "_mock", cb.range),
|
|
31
|
+
cb.declaration.decorators,
|
|
32
|
+
0,
|
|
33
|
+
cb.declaration.typeParameters,
|
|
34
|
+
cb.declaration.signature,
|
|
35
|
+
cb.declaration.body,
|
|
36
|
+
cb.declaration.arrowKind,
|
|
37
|
+
cb.range,
|
|
38
|
+
);
|
|
39
|
+
const stmts = this.currentSource.statements;
|
|
40
|
+
let index = -1;
|
|
41
|
+
for (let i = 0; i < stmts.length; i++) {
|
|
42
|
+
const stmt = stmts[i];
|
|
43
|
+
if (stmt.range.start != node.range.start) continue;
|
|
44
|
+
index = i;
|
|
45
|
+
break;
|
|
48
46
|
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
47
|
+
if (index === -1) return;
|
|
48
|
+
stmts.splice(index, 1, newFn);
|
|
49
|
+
this.mocked.add(newFn.name.text);
|
|
50
|
+
}
|
|
51
|
+
visitFunctionDeclaration(node, isDefault) {
|
|
52
|
+
super.visitFunctionDeclaration(node, isDefault);
|
|
53
|
+
const name = node.name.text;
|
|
54
|
+
if (!name) return;
|
|
55
|
+
this.fn.set(name, node);
|
|
56
|
+
}
|
|
57
|
+
visitSource(node) {
|
|
58
|
+
if (node.isLibrary || isStdlib(node)) {
|
|
59
|
+
if (!node.normalizedPath.startsWith("~lib/as-test")) {
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
60
62
|
}
|
|
63
|
+
this.mocked = new Set();
|
|
64
|
+
this.currentSource = node;
|
|
65
|
+
super.visitSource(node);
|
|
66
|
+
}
|
|
61
67
|
}
|
|
62
|
-
//# sourceMappingURL=mock.js.map
|
|
68
|
+
//# sourceMappingURL=mock.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock.js","sourceRoot":"","sources":["../src/mock.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"mock.js","sourceRoot":"","sources":["../src/mock.ts"],"names":[],"mappings":"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"}
|
package/transform/package.json
CHANGED
package/transform/src/index.ts
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { Transform } from "assemblyscript/dist/transform.js";
|
|
2
2
|
import {
|
|
3
|
+
CommonFlags,
|
|
4
|
+
Node,
|
|
3
5
|
Parser,
|
|
4
|
-
Source,
|
|
5
6
|
SourceKind,
|
|
7
|
+
Source,
|
|
6
8
|
Tokenizer,
|
|
7
9
|
} from "assemblyscript/dist/assemblyscript.js";
|
|
8
10
|
|
|
9
|
-
import { isStdlib
|
|
11
|
+
import { isStdlib } from "visitor-as/dist/utils.js";
|
|
10
12
|
import { CoverageTransform } from "./coverage.js";
|
|
11
13
|
import { MockTransform } from "./mock.js";
|
|
12
14
|
|
|
@@ -31,9 +33,26 @@ export default class Transformer extends Transform {
|
|
|
31
33
|
return 0;
|
|
32
34
|
}
|
|
33
35
|
});
|
|
34
|
-
|
|
36
|
+
const entryFile = sources.find(
|
|
37
|
+
(v) => v.sourceKind == SourceKind.UserEntry,
|
|
38
|
+
).simplePath;
|
|
35
39
|
// Loop over every source
|
|
36
40
|
for (const source of sources) {
|
|
41
|
+
const node = Node.createVariableStatement(
|
|
42
|
+
null,
|
|
43
|
+
[
|
|
44
|
+
Node.createVariableDeclaration(
|
|
45
|
+
Node.createIdentifierExpression("ENTRY_FILE", source.range),
|
|
46
|
+
null,
|
|
47
|
+
CommonFlags.Const,
|
|
48
|
+
null,
|
|
49
|
+
Node.createStringLiteralExpression(entryFile + ".ts", source.range),
|
|
50
|
+
source.range,
|
|
51
|
+
),
|
|
52
|
+
],
|
|
53
|
+
source.range,
|
|
54
|
+
);
|
|
55
|
+
source.statements.unshift(node);
|
|
37
56
|
mock.visit(source);
|
|
38
57
|
coverage.visit(source);
|
|
39
58
|
if (coverage.globalStatements.length) {
|
package/transform/src/mock.ts
CHANGED
package/asconfig.json
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"targets": {
|
|
3
|
-
"test": {
|
|
4
|
-
"outFile": "build/test.spec.wasm",
|
|
5
|
-
"sourceMap": false,
|
|
6
|
-
"optimizeLevel": 0,
|
|
7
|
-
"shrinkLevel": 0,
|
|
8
|
-
"converge": false,
|
|
9
|
-
"noAssert": false
|
|
10
|
-
},
|
|
11
|
-
"debug": {
|
|
12
|
-
"outFile": "build/test.wasm",
|
|
13
|
-
"sourceMap": false,
|
|
14
|
-
"optimizeLevel": 0,
|
|
15
|
-
"shrinkLevel": 0,
|
|
16
|
-
"converge": false,
|
|
17
|
-
"noAssert": false
|
|
18
|
-
},
|
|
19
|
-
"bench": {
|
|
20
|
-
"outFile": "build/bench.wasm",
|
|
21
|
-
"sourceMap": false,
|
|
22
|
-
"optimizeLevel": 3,
|
|
23
|
-
"shrinkLevel": 0,
|
|
24
|
-
"converge": true,
|
|
25
|
-
"noAssert": false
|
|
26
|
-
}
|
|
27
|
-
},
|
|
28
|
-
"options": {
|
|
29
|
-
"bindings": "esm"
|
|
30
|
-
}
|
|
31
|
-
}
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
describe,
|
|
3
|
-
expect,
|
|
4
|
-
test, // Alias for `it`
|
|
5
|
-
beforeAll,
|
|
6
|
-
afterAll,
|
|
7
|
-
beforeEach,
|
|
8
|
-
afterEach,
|
|
9
|
-
log,
|
|
10
|
-
run,
|
|
11
|
-
mockFn,
|
|
12
|
-
} from "..";
|
|
13
|
-
|
|
14
|
-
mockFn<void>("console.log", (data: string): void => {
|
|
15
|
-
console.log("[MOCKED]: " + data);
|
|
16
|
-
});
|
|
17
|
-
|
|
18
|
-
// Shared setup for all tests (executed once before all tests)
|
|
19
|
-
beforeAll(() => {
|
|
20
|
-
log("Setting up test environment...");
|
|
21
|
-
});
|
|
22
|
-
|
|
23
|
-
// Shared teardown for all tests (executed once after all tests)
|
|
24
|
-
afterAll(() => {
|
|
25
|
-
log("Tearing down test environment...");
|
|
26
|
-
});
|
|
27
|
-
|
|
28
|
-
describe("Math operations", () => {
|
|
29
|
-
// Setup before each test in this group (optional)
|
|
30
|
-
beforeEach(() => {
|
|
31
|
-
log("Initializing test...");
|
|
32
|
-
});
|
|
33
|
-
|
|
34
|
-
// Teardown after each test in this group (optional)
|
|
35
|
-
afterEach(() => {
|
|
36
|
-
log("Cleaning up after test...");
|
|
37
|
-
});
|
|
38
|
-
|
|
39
|
-
test("Mock", () => {
|
|
40
|
-
console.log("hello");
|
|
41
|
-
});
|
|
42
|
-
|
|
43
|
-
test("Addition", () => {
|
|
44
|
-
expect(1 + 2).toBe(3);
|
|
45
|
-
});
|
|
46
|
-
|
|
47
|
-
test("Comparison", () => {
|
|
48
|
-
expect(5).toBeGreaterThan(3);
|
|
49
|
-
expect(2).toBeLessThan(4);
|
|
50
|
-
});
|
|
51
|
-
|
|
52
|
-
test("Type checking", () => {
|
|
53
|
-
expect("hello").toBeString();
|
|
54
|
-
expect(true).toBeBoolean();
|
|
55
|
-
expect(10.5).toBeNumber();
|
|
56
|
-
});
|
|
57
|
-
});
|
|
58
|
-
|
|
59
|
-
let myArray: i32[] = [];
|
|
60
|
-
|
|
61
|
-
describe("Array manipulation", () => {
|
|
62
|
-
beforeAll(() => {
|
|
63
|
-
myArray = [1, 2, 3];
|
|
64
|
-
});
|
|
65
|
-
|
|
66
|
-
test("Array length", () => {
|
|
67
|
-
expect(myArray).toHaveLength(3);
|
|
68
|
-
});
|
|
69
|
-
|
|
70
|
-
test("Array inclusion", () => {
|
|
71
|
-
expect(myArray).toContain(2);
|
|
72
|
-
});
|
|
73
|
-
});
|
|
74
|
-
|
|
75
|
-
function foo(): void {}
|
|
76
|
-
|
|
77
|
-
run({
|
|
78
|
-
log: false,
|
|
79
|
-
});
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { Verdict } from "..";
|
|
2
|
-
import { TestGroup } from "../src/group";
|
|
3
|
-
|
|
4
|
-
export class TapReporter {
|
|
5
|
-
public groups: TestGroup[];
|
|
6
|
-
constructor(groups: TestGroup[]) {
|
|
7
|
-
this.groups = groups;
|
|
8
|
-
}
|
|
9
|
-
report(): string {
|
|
10
|
-
let out = "TAP version 14\n";
|
|
11
|
-
let totalTests: i32 = this.groups.length;
|
|
12
|
-
|
|
13
|
-
out += "1.." + totalTests.toString();
|
|
14
|
-
for (let i = 0; i < this.groups.length; i++) {
|
|
15
|
-
const group = unchecked(this.groups[i]);
|
|
16
|
-
if (group.verdict === Verdict.Ok) {
|
|
17
|
-
out += `\nok ${i} - ${group.description}`;
|
|
18
|
-
} else if (group.verdict === Verdict.Fail) {
|
|
19
|
-
out += `\nnot ok ${i} - ${group.description}`;
|
|
20
|
-
out += " ---";
|
|
21
|
-
out += ` message: '${group.description}'`;
|
|
22
|
-
out += ` severity: fail`;
|
|
23
|
-
for (let ii = 0; ii < group.results.length; ii++) {
|
|
24
|
-
const res = unchecked(group.results[ii]);
|
|
25
|
-
if (res.verdict === Verdict.Ok) continue;
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
}
|
package/assembly/src/group.ts
DELETED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { Verdict } from "..";
|
|
2
|
-
import { Expectation } from "./expectation";
|
|
3
|
-
import { Node, ReportLogs } from "./node";
|
|
4
|
-
export class TestGroup {
|
|
5
|
-
public results: Node[] = [];
|
|
6
|
-
|
|
7
|
-
public description: string;
|
|
8
|
-
public executed: boolean = false;
|
|
9
|
-
public verdict: Verdict = Verdict.Unreachable;
|
|
10
|
-
|
|
11
|
-
public passed: i32 = 0;
|
|
12
|
-
public failed: i32 = 0;
|
|
13
|
-
|
|
14
|
-
public callback: () => void;
|
|
15
|
-
constructor(description: string, callback: () => void) {
|
|
16
|
-
this.description = description;
|
|
17
|
-
this.callback = callback;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
addExpectation<T extends Expectation<unknown>>(test: T): void {
|
|
21
|
-
this.results.push(test);
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
getLogs(): ReportLogs {
|
|
25
|
-
let passed_logs = "";
|
|
26
|
-
let failed_logs = "";
|
|
27
|
-
for (let i = 0; i < this.results.length; i++) {
|
|
28
|
-
const result = unchecked(this.results[i]);
|
|
29
|
-
const report = result.report();
|
|
30
|
-
if (report) {
|
|
31
|
-
if (result.verdict === Verdict.Fail) failed_logs += report + "\n";
|
|
32
|
-
else if (result.verdict === Verdict.Ok) passed_logs += report + "\n";
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
return {
|
|
36
|
-
passed: passed_logs.length ? passed_logs : null,
|
|
37
|
-
failed: failed_logs.length ? failed_logs : null,
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
run(): void {
|
|
42
|
-
this.callback();
|
|
43
|
-
}
|
|
44
|
-
}
|
package/assembly/src/node.ts
DELETED
package/test.config.json
DELETED
|
File without changes
|
package/tests/test.tap
DELETED
package/unision
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
-----BEGIN OPENSSH PRIVATE KEY-----
|
|
2
|
-
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
-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
-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
-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
-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
-
BIPAe8K9g2JROKYgwPj6+W5JTx27n6IWMANeDWpKddJOtotIWdGnb/qrAtIyShdqrGVdx/
|
|
8
|
-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
-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
-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
-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
-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
-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
-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
-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
-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
-
eyVeAga06HQoOaLZU+AdTFpTuuhgVo2bNTnZIIricU7S8zUAxIHszVee3X9FFUYN6ubrCT
|
|
18
|
-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
-
8EnJgK3b0aT+TqnZ7OfjIztaYhB4sFh90OqrsSfUQ3VB229juXTa23jOtoN59iiPGsNn1V
|
|
20
|
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-
++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
-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
-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
-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
-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
-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
-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
|
|
37
|
-
oAafeEoeae21MAAAAHaHViQEh1YgECAwQ=
|
|
38
|
-
-----END OPENSSH PRIVATE KEY-----
|
package/unision.pub
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCePO2+pTIp8FoxgUMgLu+woJpE/NQ0/RGY8HoGOkdiwW8JUbIA8rz+IyzGt3ZW6D3OLRQd9YZqAN7d83VcuOpEAHaiirPsASRc59v+pfXQUtP3n5cZtkutRRevLZZ5z6OzFYP4ZujxLgbV+Gtq+Y3/jRujcN7qOToEj3H07cUffE9/Y2TTG23UjXE382oZW8K+gGV8h71WcZBcVV3ndgQ4Aj+ByS/zEhienTWYqTLaFBPF9b0usGOecdqmNgZHZ/GdP357cEg8B7wr2DYlE4piDA+Pr5bklPHbufohYwA14Nakp10k62i0hZ0adv+qsC0jJKF2qsZV3H9WpjYrsZTyszBFPx1EjmdM88gpXKluVcP/un94PzN4a4xMk4VDpes0oSgzkru8cfQF0R+D8ClyyfPUzVo3slXgIGtOh0KDmi2VPgHUxaU7roYFaNmzU52SCK4nFO0vM1AMSB7M1Xnt1/RRVGDerm6wk10W3sWYfTgcKsYaK5PAEs4DLLx/hu0= hub@Hub
|
package/utils.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from "./assembly/util/index.ts";
|