diff options
author | Louis Pilfold <louis@lpil.uk> | 2022-01-04 18:01:10 +0000 |
---|---|---|
committer | Louis Pilfold <louis@lpil.uk> | 2022-01-04 18:05:03 +0000 |
commit | d377e8ba146c4c597f7cf2041d4d5186a0977b50 (patch) | |
tree | 1cfc821d63afa34474ee71fc7e6666983915d623 /test/gleam_stdlib_test_ffi.mjs | |
parent | a11f368e83598923014df9eda07821dc2ce143e7 (diff) | |
download | gleam_stdlib-d377e8ba146c4c597f7cf2041d4d5186a0977b50.tar.gz gleam_stdlib-d377e8ba146c4c597f7cf2041d4d5186a0977b50.zip |
Fix JS tests, discover bug
Diffstat (limited to 'test/gleam_stdlib_test_ffi.mjs')
-rwxr-xr-x | test/gleam_stdlib_test_ffi.mjs | 35 |
1 files changed, 35 insertions, 0 deletions
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); +} |