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 = []; } }