From e8c1981a59372a74eedf74c7201b5733276d19c0 Mon Sep 17 00:00:00 2001
From: Jairus <me@jairus.dev>
Date: Mon, 12 Aug 2024 11:27:37 -0700
Subject: [PATCH] release: v0.3.4

---
 CHANGELOG.md              |  3 ++-
 README.md                 |  2 +-
 bin/index.js              |  2 +-
 bin/init.js               |  5 ++---
 bin/run.js                |  2 +-
 cli/index.ts              |  2 +-
 cli/init.ts               |  4 ++--
 cli/run.ts                |  2 +-
 package.json              |  2 +-
 run/package.json          |  2 +-
 transform/lib/mock.js     | 15 ++++++---------
 transform/lib/mock.js.map |  2 +-
 transform/package.json    |  2 +-
 transform/src/mock.ts     | 15 +++++----------
 14 files changed, 26 insertions(+), 34 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 78c9e76..fc2550e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -26,4 +26,5 @@ v0.2.1 - Remove accidental logging
 v0.3.0 - Pass metadata through terminal - Support for multiple files - Better reporting - Timing for suites - Terminal utilities
 v0.3.1 - Add screenshot of completed tests to readme
 v0.3.2 - Add `mockImport` to override imported functions
-v0.3.3 - Allow `mockImport`'s return type to be any
\ No newline at end of file
+v0.3.3 - Allow `mockImport`'s return type to be any
+v0.3.4 - Fix: import functions were not received after visitSource()
diff --git a/README.md b/README.md
index e66f211..9fcea6b 100644
--- a/README.md
+++ b/README.md
@@ -3,7 +3,7 @@
 |  _  ||   __| ___|_   _||   __||   __||_   _|
 |     ||__   ||___| | |  |   __||__   |  | |  
 |__|__||_____|      |_|  |_____||_____|  |_|  
-v0.3.3
+v0.3.4
 </pre>
 </h5>
 
diff --git a/bin/index.js b/bin/index.js
index 6cb68b3..13896f0 100755
--- a/bin/index.js
+++ b/bin/index.js
@@ -7,7 +7,7 @@ const _args = process.argv.slice(2);
 const flags = [];
 const args = [];
 const COMMANDS = ["run", "build", "test", "init"];
-const version = "0.3.3";
+const version = "0.3.4";
 for (const arg of _args) {
   if (arg.startsWith("-")) flags.push(arg);
   else args.push(arg);
diff --git a/bin/init.js b/bin/init.js
index ab36439..ffa404a 100644
--- a/bin/init.js
+++ b/bin/init.js
@@ -9,7 +9,7 @@ export async function init(args) {
     input: process.stdin,
     output: process.stdout,
   });
-  console.log(chalk.bold("as-test init v0.3.3") + "\n");
+  console.log(chalk.bold("as-test init v0.3.4") + "\n");
   console.log(chalk.dim("[1/3]") + " select a target [wasi/bindings]");
   const target = await ask(chalk.dim(" -> "), rl);
   if (!TARGETS.includes(target)) {
@@ -174,7 +174,6 @@ const exports = instantiate(module, {});`,
     existsSync(PKG_PATH) ? readFileSync(PKG_PATH).toString() : "{}",
   );
   if (!pkg["scripts"]) pkg["scripts"] = {};
-  if (pkg.scripts["test"]) process.exit(0);
   if (!pkg.scripts["pretest"]) {
     pkg.scripts["pretest"] = "as-test build";
     pkg.scripts["test"] = "as-test run";
@@ -183,7 +182,7 @@ const exports = instantiate(module, {});`,
   }
   if (!pkg["devDependencies"]) pkg["devDependencies"] = {};
   if (!pkg["devDependencies"]["as-test"])
-    pkg["devDependencies"]["as-test"] = "^0.3.3";
+    pkg["devDependencies"]["as-test"] = "^0.3.4";
   if (target == "bindings") {
     pkg["type"] = "module";
   }
diff --git a/bin/run.js b/bin/run.js
index 0517062..fe8692d 100644
--- a/bin/run.js
+++ b/bin/run.js
@@ -35,7 +35,7 @@ export async function run() {
       chalk.bold.blueBright(`|__|__||_____|      |_|  |_____||_____|  |_|  `),
     );
     console.log(
-      chalk.dim("\n------------------- v0.3.3 -------------------\n"),
+      chalk.dim("\n------------------- v0.3.4 -------------------\n"),
     );
   }
   for (const plugin of Object.keys(config.plugins)) {
diff --git a/cli/index.ts b/cli/index.ts
index acff818..4b6da36 100644
--- a/cli/index.ts
+++ b/cli/index.ts
@@ -11,7 +11,7 @@ const args: string[] = [];
 
 const COMMANDS: string[] = ["run", "build", "test", "init"];
 
-const version = "0.3.3";
+const version = "0.3.4";
 
 for (const arg of _args) {
   if (arg.startsWith("-")) flags.push(arg);
diff --git a/cli/init.ts b/cli/init.ts
index 3d0444f..9552b5b 100644
--- a/cli/init.ts
+++ b/cli/init.ts
@@ -9,7 +9,7 @@ export async function init(args: string[]) {
     input: process.stdin,
     output: process.stdout,
   });
-  console.log(chalk.bold("as-test init v0.3.3") + "\n");
+  console.log(chalk.bold("as-test init v0.3.4") + "\n");
   console.log(chalk.dim("[1/3]") + " select a target [wasi/bindings]");
   const target = await ask(chalk.dim(" -> "), rl);
   if (!TARGETS.includes(target)) {
@@ -192,7 +192,7 @@ const exports = instantiate(module, {});`,
   }
   if (!pkg["devDependencies"]) pkg["devDependencies"] = {};
   if (!pkg["devDependencies"]["as-test"])
-    pkg["devDependencies"]["as-test"] = "^0.3.3";
+    pkg["devDependencies"]["as-test"] = "^0.3.4";
   if (target == "bindings") {
     pkg["type"] = "module";
   }
diff --git a/cli/run.ts b/cli/run.ts
index c66d85b..a886ce4 100644
--- a/cli/run.ts
+++ b/cli/run.ts
@@ -42,7 +42,7 @@ export async function run() {
       chalk.bold.blueBright(`|__|__||_____|      |_|  |_____||_____|  |_|  `),
     );
     console.log(
-      chalk.dim("\n------------------- v0.3.3 -------------------\n"),
+      chalk.dim("\n------------------- v0.3.4 -------------------\n"),
     );
   }
 
diff --git a/package.json b/package.json
index 2edb1b2..a305673 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
 {
   "name": "as-test",
-  "version": "0.3.3",
+  "version": "0.3.4",
   "description": "Testing framework for AssemblyScript. Compatible with WASI or Bindings ",
   "types": "assembly/index.ts",
   "author": "Jairus Tanaka",
diff --git a/run/package.json b/run/package.json
index dc585e4..d07858d 100644
--- a/run/package.json
+++ b/run/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@as-test/run",
-  "version": "0.3.3",
+  "version": "0.3.4",
   "description": "Testing framework for AssemblyScript. Compatible with WASI or Bindings ",
   "main": "./lib/index.js",
   "author": "Jairus Tanaka",
diff --git a/transform/lib/mock.js b/transform/lib/mock.js
index 7199cc3..48182a5 100644
--- a/transform/lib/mock.js
+++ b/transform/lib/mock.js
@@ -3,7 +3,7 @@ import {
   FunctionDeclaration,
 } from "assemblyscript/dist/assemblyscript.js";
 import { BaseVisitor } from "visitor-as/dist/index.js";
-import { isStdlib, toString } from "visitor-as/dist/utils.js";
+import { toString } from "visitor-as/dist/utils.js";
 export class MockTransform extends BaseVisitor {
   currentSource;
   globalStatements = [];
@@ -25,6 +25,7 @@ export class MockTransform extends BaseVisitor {
     }
     if (name == "mockImport") {
       this.importMocked.add(node.args[0].value);
+      return;
     }
     if (name != "mockFn") return;
     const ov = toString(node.args[0]);
@@ -60,18 +61,16 @@ export class MockTransform extends BaseVisitor {
     super.visitFunctionDeclaration(node, isDefault);
   }
   visitSource(node) {
-    if (node.isLibrary || isStdlib(node)) {
-      if (!node.normalizedPath.startsWith("~lib/as-test")) {
-        return;
-      }
-    }
     this.mocked = new Set();
     this.currentSource = node;
+    this.importFns = [];
     super.visitSource(node);
     for (const node of this.importFns) {
       let path = "";
       const dec = node.decorators?.find((v) => v.name.text == "external");
-      if (dec.args[0] && dec.args[1])
+      if (!dec) {
+        path = "env." + node.name.text;
+      } else if (dec.args[0] && dec.args[1])
         path = dec.args.map((v) => v.value).join(".");
       else if (dec.args[0])
         path = this.currentSource.simplePath + "." + dec.args[0].value;
@@ -115,7 +114,6 @@ export class MockTransform extends BaseVisitor {
         0,
         node.range,
       );
-      newFn.signature = node.signature;
       const stmts = this.currentSource.statements;
       let index = -1;
       for (let i = 0; i < stmts.length; i++) {
@@ -131,7 +129,6 @@ export class MockTransform extends BaseVisitor {
       if (index === -1) return;
       stmts.splice(index, 1, newFn);
     }
-    this.importFns = [];
   }
 }
 //# sourceMappingURL=mock.js.map
diff --git a/transform/lib/mock.js.map b/transform/lib/mock.js.map
index 97339aa..5d40f33 100644
--- a/transform/lib/mock.js.map
+++ b/transform/lib/mock.js.map
@@ -1 +1 @@
-{"version":3,"file":"mock.js","sourceRoot":"","sources":["../src/mock.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"mock.js","sourceRoot":"","sources":["../src/mock.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/transform/package.json b/transform/package.json
index 3145947..335f5ef 100644
--- a/transform/package.json
+++ b/transform/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@as-test/transform",
-  "version": "0.3.3",
+  "version": "0.3.4",
   "description": "Testing framework for AssemblyScript. Compatible with WASI or Bindings ",
   "main": "./lib/index.js",
   "author": "Jairus Tanaka",
diff --git a/transform/src/mock.ts b/transform/src/mock.ts
index c978ec9..985e965 100644
--- a/transform/src/mock.ts
+++ b/transform/src/mock.ts
@@ -37,6 +37,7 @@ export class MockTransform extends BaseVisitor {
 
     if (name == "mockImport") {
       this.importMocked.add((node.args[0] as StringLiteralExpression).value);
+      return;
     }
     if (name != "mockFn") return;
     const ov = toString(node.args[0]);
@@ -77,13 +78,9 @@ export class MockTransform extends BaseVisitor {
     super.visitFunctionDeclaration(node, isDefault);
   }
   visitSource(node: Source): void {
-    if (node.isLibrary || isStdlib(node)) {
-      if (!node.normalizedPath.startsWith("~lib/as-test")) {
-        return;
-      }
-    }
     this.mocked = new Set<string>();
     this.currentSource = node;
+    this.importFns = [];
     super.visitSource(node);
 
     for (const node of this.importFns) {
@@ -91,7 +88,9 @@ export class MockTransform extends BaseVisitor {
       const dec = node.decorators?.find(
         (v) => (v.name as IdentifierExpression).text == "external",
       );
-      if (dec.args[0] && dec.args[1])
+      if (!dec) {
+        path = "env." + node.name.text;
+      } else if (dec.args[0] && dec.args[1])
         path = dec.args
           .map((v) => (v as StringLiteralExpression).value)
           .join(".");
@@ -101,7 +100,6 @@ export class MockTransform extends BaseVisitor {
           "." +
           (dec.args[0] as StringLiteralExpression).value;
       else path = this.currentSource.simplePath + "." + node.name.text;
-
       if (!this.importMocked.has(path)) return;
 
       let args: Expression[] = [
@@ -147,8 +145,6 @@ export class MockTransform extends BaseVisitor {
         node.range,
       );
 
-      newFn.signature = node.signature;
-
       const stmts = this.currentSource.statements;
       let index = -1;
       for (let i = 0; i < stmts.length; i++) {
@@ -164,6 +160,5 @@ export class MockTransform extends BaseVisitor {
       if (index === -1) return;
       stmts.splice(index, 1, newFn);
     }
-    this.importFns = [];
   }
 }