diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/gleam/dynamic_test.gleam | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/test/gleam/dynamic_test.gleam b/test/gleam/dynamic_test.gleam index 4b6c797..42018e9 100644 --- a/test/gleam/dynamic_test.gleam +++ b/test/gleam/dynamic_test.gleam @@ -408,13 +408,30 @@ pub fn optional_field_test() { |> dict.insert("ok", None) |> dynamic.from |> dynamic.optional_field("ok", dynamic.int) - |> should.equal(Ok(None)) + |> should.equal( + Error([DecodeError(expected: "Int", found: "Atom", path: ["ok"])]), + ) dict.new() |> dict.insert("ok", Nil) |> dynamic.from |> dynamic.optional_field("ok", dynamic.int) - |> should.equal(Ok(None)) + |> should.equal( + Error([DecodeError(expected: "Int", found: "Nil", path: ["ok"])]), + ) + + // optional_field and optional should combine together to give nested Options + dict.new() + |> dict.insert("ok", Nil) + |> dynamic.from + |> dynamic.optional_field("ok", dynamic.optional(dynamic.int)) + |> should.equal(Ok(Some(None))) + + dict.new() + |> dict.insert("ok", 4) + |> dynamic.from + |> dynamic.optional_field("ok", dynamic.optional(dynamic.int)) + |> should.equal(Ok(Some(Some(4)))) dict.new() |> dynamic.from |