aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/gleam/dynamic_test.gleam37
1 files changed, 37 insertions, 0 deletions
diff --git a/test/gleam/dynamic_test.gleam b/test/gleam/dynamic_test.gleam
index f840ce8..96db8c1 100644
--- a/test/gleam/dynamic_test.gleam
+++ b/test/gleam/dynamic_test.gleam
@@ -221,3 +221,40 @@ pub fn field_test() {
|> dynamic.field(_, [])
|> expect.is_error
}
+
+pub fn element_test() {
+ let Ok(ok_atom) = atom.from_string("ok")
+ let Ok(error_atom) = atom.from_string("ok")
+ let ok_one_struct = struct(ok_atom, 1)
+
+ ok_one_struct
+ |> dynamic.from
+ |> dynamic.element(_, 0)
+ |> expect.equal(_, Ok(dynamic.from(ok_atom)))
+
+ ok_one_struct
+ |> dynamic.from
+ |> dynamic.element(_, 1)
+ |> expect.equal(_, Ok(dynamic.from(1)))
+
+ ok_one_struct
+ |> dynamic.from
+ |> dynamic.element(_, 2)
+ |> expect.is_error
+
+ ok_one_struct
+ |> dynamic.from
+ |> dynamic.element(_, -1)
+ |> expect.is_error
+
+ 1
+ |> dynamic.from
+ |> dynamic.element(_, 0)
+ |> expect.is_error
+
+ map.new()
+ |> map.insert(_, 1, ok_atom)
+ |> dynamic.from
+ |> dynamic.element(_, 0)
+ |> expect.is_error
+}