as-test 0.1.8 → 0.1.9

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/CHANGELOG.md CHANGED
@@ -17,3 +17,6 @@ v0.1.5 - Add skeleton cli and custom config
17
17
  v0.1.6 - Fix: args should be prefixed with a space
18
18
  v0.1.7 - Fix: remove warning about wasi-shim not being included when it is included
19
19
  v0.1.8 - Feat: function mocking
20
+ v0.1.9 - Fix: mocks were not being applied to declared functions, only property accesses
21
+
22
+ v0.1.10 [UNRELEASED] - Feat: snapshotting
package/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
  | _ || __| ___|_ _|| __|| __||_ _|
4
4
  | ||__ ||___| | | | __||__ | | |
5
5
  |__|__||_____| |_| |_____||_____| |_|
6
- v0.1.8
6
+ v0.1.9
7
7
  </pre>
8
8
  </h5>
9
9
 
package/assembly/index.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { rainbow } from "as-rainbow";
2
2
  import { TestGroup } from "./src/group";
3
3
  import { Expectation } from "./src/expectation";
4
- import { formatTime } from "./util";
4
+ import { formatTime } from "./util/helpers";
5
5
  import { stringify } from "as-console/stringify";
6
6
  import { __COVER, __HASHES, __POINTS } from "as-test/assembly/coverage";
7
7
  import { createTable } from "table-as";
@@ -235,7 +235,7 @@ export function run(options: RunOptions = new RunOptions()): void {
235
235
  ),
236
236
  );
237
237
  console.log(
238
- rainbow.dimMk("\n------------------- v0.1.8 -------------------\n"),
238
+ rainbow.dimMk("\n------------------- v0.1.9 -------------------\n"),
239
239
  );
240
240
  // @ts-ignore
241
241
  if (isDefined(COVERAGE_USE)) {
@@ -1,5 +1,5 @@
1
1
  import { rainbow } from "as-rainbow";
2
- import { diff, visualize } from "../util";
2
+ import { diff, visualize } from "../util/helpers";
3
3
  import { Node } from "./node";
4
4
  import { Verdict, after_each_callback, before_each_callback } from "..";
5
5
 
File without changes
package/bin/index.js CHANGED
@@ -7,7 +7,7 @@ const _args = process.argv.slice(2);
7
7
  const flags = [];
8
8
  const args = [];
9
9
  const COMMANDS = ["run", "build", "test", "init"];
10
- const version = "0.1.8";
10
+ const version = "0.1.9";
11
11
  for (const arg of _args) {
12
12
  if (arg.startsWith("-"))
13
13
  flags.push(arg);
package/cli/index.ts CHANGED
@@ -11,7 +11,7 @@ const args: string[] = [];
11
11
 
12
12
  const COMMANDS: string[] = ["run", "build", "test", "init"];
13
13
 
14
- const version = "0.1.8";
14
+ const version = "0.1.9";
15
15
 
16
16
  for (const arg of _args) {
17
17
  if (arg.startsWith("-")) flags.push(arg);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "as-test",
3
- "version": "0.1.8",
3
+ "version": "0.1.9",
4
4
  "description": "Testing framework for AssemblyScript. Compatible with WASI or Bindings ",
5
5
  "types": "assembly/index.ts",
6
6
  "author": "Jairus Tanaka",
@@ -1,4 +1,4 @@
1
- import { IdentifierExpression, Node, PropertyAccessExpression, } from "assemblyscript/dist/assemblyscript.js";
1
+ import { Node, } from "assemblyscript/dist/assemblyscript.js";
2
2
  import { BaseVisitor } from "visitor-as/dist/index.js";
3
3
  import { toString } from "visitor-as/dist/utils.js";
4
4
  export class MockTransform extends BaseVisitor {
@@ -8,19 +8,15 @@ export class MockTransform extends BaseVisitor {
8
8
  mocked = new Set();
9
9
  visitCallExpression(node) {
10
10
  super.visitCallExpression(node);
11
- if (node.expression instanceof PropertyAccessExpression) {
12
- const name = toString(node.expression)
13
- .replaceAll(".", "_")
14
- .replaceAll("[", "_")
15
- .replaceAll("]", "_");
16
- if (this.mocked.has(name + "_mock")) {
17
- node.expression = Node.createIdentifierExpression(name + "_mock", node.expression.range);
18
- return;
19
- }
20
- }
21
- if (!(node.expression instanceof IdentifierExpression))
11
+ const name = toString(node.expression)
12
+ .replaceAll(".", "_")
13
+ .replaceAll("[", "_")
14
+ .replaceAll("]", "_");
15
+ if (this.mocked.has(name + "_mock")) {
16
+ node.expression = Node.createIdentifierExpression(name + "_mock", node.expression.range);
22
17
  return;
23
- if (node.expression.text != "mock")
18
+ }
19
+ if (name != "mock")
24
20
  return;
25
21
  const ov = node.args[0];
26
22
  const cb = node.args[1];
@@ -33,7 +29,7 @@ export class MockTransform extends BaseVisitor {
33
29
  let index = -1;
34
30
  for (let i = 0; i < stmts.length; i++) {
35
31
  const stmt = stmts[i];
36
- if (toString(stmt) != toString(node))
32
+ if (stmt.range.start != node.range.start)
37
33
  continue;
38
34
  index = i;
39
35
  break;
@@ -1 +1 @@
1
- {"version":3,"file":"mock.js","sourceRoot":"","sources":["../src/mock.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,oBAAoB,EAKpB,IAAI,EACJ,wBAAwB,GACzB,MAAM,uCAAuC,CAAC;AAG/C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,MAAM,OAAO,aAAc,SAAQ,WAAW;IACrC,aAAa,CAAS;IACtB,gBAAgB,GAAgB,EAAE,CAAC;IACnC,EAAE,GAAG,IAAI,GAAG,EAA+B,CAAC;IAC5C,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,mBAAmB,CAAC,IAAoB;QACtC,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,IAAI,CAAC,UAAU,YAAY,wBAAwB,EAAE,CAAC;YACxD,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC;iBACnC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC;iBACpB,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC;iBACpB,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACxB,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC,EAAE,CAAC;gBAEpC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,0BAA0B,CAC/C,IAAI,GAAG,OAAO,EACd,IAAI,CAAC,UAAU,CAAC,KAAK,CACtB,CAAC;gBAEF,OAAO;YACT,CAAC;QACH,CAAC;QACD,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,YAAY,oBAAoB,CAAC;YAAE,OAAO;QAC/D,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,MAAM;YAAE,OAAO;QAC3C,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAA4B,CAAC;QACnD,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAuB,CAAC;QAE9C,MAAM,OAAO,GAAG,EAAE,CAAC,KAAK;aACrB,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC;aACpB,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC;aACpB,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,yBAAyB,CAC1C,IAAI,CAAC,0BAA0B,CAAC,OAAO,GAAG,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,EAC5D,EAAE,CAAC,WAAW,CAAC,UAAU,KAEzB,EAAE,CAAC,WAAW,CAAC,cAAc,EAC7B,EAAE,CAAC,WAAW,CAAC,SAAS,EACxB,EAAE,CAAC,WAAW,CAAC,IAAI,EACnB,EAAE,CAAC,WAAW,CAAC,SAAS,EACxB,EAAE,CAAC,KAAK,CACT,CAAC;QACF,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;QAC5C,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;QACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACtB,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC;gBAAE,SAAS;YAC/C,KAAK,GAAG,CAAC,CAAC;YACV,MAAM;QACR,CAAC;QACD,IAAI,KAAK,KAAK,CAAC,CAAC;YAAE,OAAO;QAEzB,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IACD,wBAAwB,CACtB,IAAyB,EACzB,SAAmB;QAEnB,KAAK,CAAC,wBAAwB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAChD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QAC5B,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1B,CAAC;IACD,WAAW,CAAC,IAAY;QACtB,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;QAChC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;CACF"}
1
+ {"version":3,"file":"mock.js","sourceRoot":"","sources":["../src/mock.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@as-test/transform",
3
- "version": "0.1.8",
3
+ "version": "0.1.9",
4
4
  "description": "Testing framework for AssemblyScript. Compatible with WASI or Bindings ",
5
5
  "main": "./lib/index.js",
6
6
  "author": "Jairus Tanaka",
@@ -21,23 +21,20 @@ export class MockTransform extends BaseVisitor {
21
21
  public mocked = new Set<string>();
22
22
  visitCallExpression(node: CallExpression): void {
23
23
  super.visitCallExpression(node);
24
- if (node.expression instanceof PropertyAccessExpression) {
25
- const name = toString(node.expression)
26
- .replaceAll(".", "_")
27
- .replaceAll("[", "_")
28
- .replaceAll("]", "_");
29
- if (this.mocked.has(name + "_mock")) {
30
- //console.log("fn rn " + name + " -> " + name + "_mock");
31
- node.expression = Node.createIdentifierExpression(
32
- name + "_mock",
33
- node.expression.range,
34
- );
35
- //console.log(toString(node.expression))
36
- return;
37
- }
24
+ const name = toString(node.expression)
25
+ .replaceAll(".", "_")
26
+ .replaceAll("[", "_")
27
+ .replaceAll("]", "_");
28
+
29
+ if (this.mocked.has(name + "_mock")) {
30
+ node.expression = Node.createIdentifierExpression(
31
+ name + "_mock",
32
+ node.expression.range,
33
+ );
34
+ return;
38
35
  }
39
- if (!(node.expression instanceof IdentifierExpression)) return;
40
- if (node.expression.text != "mock") return;
36
+
37
+ if (name != "mock") return;
41
38
  const ov = node.args[0] as StringLiteralExpression;
42
39
  const cb = node.args[1] as FunctionExpression;
43
40
 
@@ -45,6 +42,7 @@ export class MockTransform extends BaseVisitor {
45
42
  .replaceAll(".", "_")
46
43
  .replaceAll("[", "_")
47
44
  .replaceAll("]", "_");
45
+
48
46
  const newFn = Node.createFunctionDeclaration(
49
47
  Node.createIdentifierExpression(newName + "_mock", cb.range),
50
48
  cb.declaration.decorators,
@@ -55,16 +53,16 @@ export class MockTransform extends BaseVisitor {
55
53
  cb.declaration.arrowKind,
56
54
  cb.range,
57
55
  );
56
+
58
57
  const stmts = this.currentSource.statements;
59
58
  let index = -1;
60
59
  for (let i = 0; i < stmts.length; i++) {
61
60
  const stmt = stmts[i];
62
- if (toString(stmt) != toString(node)) continue;
61
+ if (stmt.range.start != node.range.start) continue;
63
62
  index = i;
64
63
  break;
65
64
  }
66
65
  if (index === -1) return;
67
- //console.log("fn mock " + newName + "_mock" + " at index " + index.toString());
68
66
  stmts.splice(index, 1, newFn);
69
67
  this.mocked.add(newFn.name.text);
70
68
  }
package/utils.ts ADDED
@@ -0,0 +1 @@
1
+ export * from "./assembly/util/index.ts";
File without changes