diff options
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); +} |