aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorLouis Pilfold <louis@lpil.uk>2022-01-04 18:01:10 +0000
committerLouis Pilfold <louis@lpil.uk>2022-01-04 18:05:03 +0000
commitd377e8ba146c4c597f7cf2041d4d5186a0977b50 (patch)
tree1cfc821d63afa34474ee71fc7e6666983915d623 /test
parenta11f368e83598923014df9eda07821dc2ce143e7 (diff)
downloadgleam_stdlib-d377e8ba146c4c597f7cf2041d4d5186a0977b50.tar.gz
gleam_stdlib-d377e8ba146c4c597f7cf2041d4d5186a0977b50.zip
Fix JS tests, discover bug
Diffstat (limited to 'test')
-rw-r--r--test/gleam/should.gleam2
-rw-r--r--test/gleam_stdlib_test.gleam5
-rwxr-xr-xtest/gleam_stdlib_test_ffi.mjs35
3 files changed, 41 insertions, 1 deletions
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);
+}