From d377e8ba146c4c597f7cf2041d4d5186a0977b50 Mon Sep 17 00:00:00 2001 From: Louis Pilfold Date: Tue, 4 Jan 2022 18:01:10 +0000 Subject: Fix JS tests, discover bug --- bin/run-tests.js | 38 -------------------------------------- package.json | 6 ------ src/gleam_stdlib.mjs | 8 ++++---- test/gleam/should.gleam | 2 +- test/gleam_stdlib_test.gleam | 5 +++++ test/gleam_stdlib_test_ffi.mjs | 35 +++++++++++++++++++++++++++++++++++ 6 files changed, 45 insertions(+), 49 deletions(-) delete mode 100755 bin/run-tests.js delete mode 100644 package.json create mode 100755 test/gleam_stdlib_test_ffi.mjs diff --git a/bin/run-tests.js b/bin/run-tests.js deleted file mode 100755 index 3eaba7c..0000000 --- a/bin/run-tests.js +++ /dev/null @@ -1,38 +0,0 @@ -import { opendir } from "fs/promises"; - -const dir = "gen/javascript/gleam/"; - -async function main() { - console.log("Running tests..."); - - let passes = 0; - let failures = 0; - - for await (let entry of await opendir(dir)) { - if (!entry.name.endsWith("_test.js")) continue; - let path = "../" + dir + entry.name; - let module = await import(path); - - for (let fnName of Object.keys(module)) { - if (!fnName.endsWith("_test")) continue; - try { - module[fnName](); - process.stdout.write(`\u001b[32m.\u001b[0m`); - passes++; - } catch (error) { - let moduleName = "\ngleam/" + entry.name.slice(0, -3); - process.stdout.write(`\n❌ ${moduleName}.${fnName}: ${error}\n`); - failures++; - } - } - } - - console.log(` - -${passes + failures} tests -${passes} passes -${failures} failures`); - process.exit(failures ? 1 : 0); -} - -main(); diff --git a/package.json b/package.json deleted file mode 100644 index 0e087bf..0000000 --- a/package.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "type": "module", - "scripts": { - "test": "sh bin/test.sh" - } -} diff --git a/src/gleam_stdlib.mjs b/src/gleam_stdlib.mjs index 5ec4d45..dd25832 100644 --- a/src/gleam_stdlib.mjs +++ b/src/gleam_stdlib.mjs @@ -8,13 +8,13 @@ import { inspect, stringBits, toBitString, -} from "./gleam.js"; +} from "./gleam.mjs"; import { CompileError as RegexCompileError, Match as RegexMatch, -} from "./gleam/regex.js"; -import { DecodeError } from "./gleam/dynamic.js"; -import { Some, None } from "./gleam/option.js"; +} from "./gleam/regex.mjs"; +import { DecodeError } from "./gleam/dynamic.mjs"; +import { Some, None } from "./gleam/option.mjs"; const HASHCODE_CACHE = new WeakMap(); diff --git a/test/gleam/should.gleam b/test/gleam/should.gleam index 3cedbcd..792a4b4 100644 --- a/test/gleam/should.gleam +++ b/test/gleam/should.gleam @@ -22,7 +22,7 @@ if javascript { import gleam/string external fn stringify(anything) -> String = - "../gleam.js" "inspect" + "../gleam.mjs" "inspect" external fn crash(String) -> anything = "../gleam_stdlib.mjs" "crash" diff --git a/test/gleam_stdlib_test.gleam b/test/gleam_stdlib_test.gleam index 04635a2..3528ddd 100644 --- a/test/gleam_stdlib_test.gleam +++ b/test/gleam_stdlib_test.gleam @@ -2,3 +2,8 @@ if erlang { pub external fn main() -> Nil = "gleam_stdlib_test_ffi" "main" } + +if javascript { + pub external fn main() -> Nil = + "./gleam_stdlib_test_ffi.mjs" "main" +} diff --git a/test/gleam_stdlib_test_ffi.mjs b/test/gleam_stdlib_test_ffi.mjs new file mode 100755 index 0000000..e948e0f --- /dev/null +++ b/test/gleam_stdlib_test_ffi.mjs @@ -0,0 +1,35 @@ +import { opendir } from "fs/promises"; + +const dir = "build/dev/javascript/gleam_stdlib/dist/gleam/"; + +export async function main() { + console.log("Running tests..."); + + let passes = 0; + let failures = 0; + + for await (let entry of await opendir(dir)) { + if (!entry.name.endsWith("_test.mjs")) continue; + let module = await import("./gleam/" + entry.name); + + for (let fnName of Object.keys(module)) { + if (!fnName.endsWith("_test")) continue; + try { + module[fnName](); + process.stdout.write(`\u001b[32m.\u001b[0m`); + passes++; + } catch (error) { + let moduleName = "\ngleam/" + entry.name.slice(0, -3); + process.stdout.write(`\n❌ ${moduleName}.${fnName}: ${error}\n`); + failures++; + } + } + } + + console.log(` + +${passes + failures} tests +${passes} passes +${failures} failures`); + process.exit(failures ? 1 : 0); +} -- cgit v1.2.3