aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorDanny Martini <despair.blue@gmail.com>2023-04-29 15:23:27 +0200
committerGitHub <noreply@github.com>2023-04-29 14:23:27 +0100
commit8924398359342ad33e99d707a3c8a7fb44d99da0 (patch)
treeb87de09c589474d8d23226d07b740f0cc7da65c7 /test
parent13f8dc62e08fb499e600a4bcacfae7a29008dbfa (diff)
downloadgleam_stdlib-8924398359342ad33e99d707a3c8a7fb44d99da0.tar.gz
gleam_stdlib-8924398359342ad33e99d707a3c8a7fb44d99da0.zip
fix decode_map throwing when `null` is being passed in (#432)
Diffstat (limited to 'test')
-rw-r--r--test/gleam/dynamic_test.gleam34
-rwxr-xr-xtest/gleam_stdlib_test_ffi.mjs4
2 files changed, 38 insertions, 0 deletions
diff --git a/test/gleam/dynamic_test.gleam b/test/gleam/dynamic_test.gleam
index ffd8b73..a220e6e 100644
--- a/test/gleam/dynamic_test.gleam
+++ b/test/gleam/dynamic_test.gleam
@@ -51,6 +51,35 @@ if javascript {
}
}
+if erlang {
+ pub type MyAtom {
+ ThisIsAnAtom
+ }
+
+ pub fn map_from_atom_test() {
+ ThisIsAnAtom
+ |> dynamic.from
+ |> dynamic.map(dynamic.string, dynamic.int)
+ |> should.equal(Error([
+ DecodeError(expected: "Map", found: "Atom", path: []),
+ ]))
+ }
+}
+
+if javascript {
+ external fn get_null() -> dynamic.Dynamic =
+ "../gleam_stdlib_test_ffi.mjs" "get_null"
+
+ pub fn map_from_null_test() {
+ get_null()
+ |> dynamic.from
+ |> dynamic.map(dynamic.string, dynamic.int)
+ |> should.equal(Error([
+ DecodeError(expected: "Map", found: "Null", path: []),
+ ]))
+ }
+}
+
pub fn string_test() {
""
|> dynamic.from
@@ -758,6 +787,11 @@ pub fn map_test() {
|> should.equal(Error([
DecodeError(expected: "Map", found: "Function", path: []),
]))
+
+ Nil
+ |> dynamic.from
+ |> dynamic.map(dynamic.string, dynamic.int)
+ |> should.equal(Error([DecodeError(expected: "Map", found: "Nil", path: [])]))
}
pub fn shallow_list_test() {
diff --git a/test/gleam_stdlib_test_ffi.mjs b/test/gleam_stdlib_test_ffi.mjs
index 68922c9..c859093 100755
--- a/test/gleam_stdlib_test_ffi.mjs
+++ b/test/gleam_stdlib_test_ffi.mjs
@@ -6,3 +6,7 @@ export function uint8array(list) {
}
return array;
}
+
+export function get_null() {
+ return null;
+}