From dd7dd9b1df1c77a62c49ca6e2620f6757b5b0734 Mon Sep 17 00:00:00 2001 From: RJ Dellecese Date: Wed, 18 Dec 2019 22:04:16 -0500 Subject: Add dynamic.element for decoding tuples --- test/gleam/dynamic_test.gleam | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) (limited to 'test') 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 +} -- cgit v1.2.3