From 1dddd86cc65879b4d0195e934a1b106252a9cfe2 Mon Sep 17 00:00:00 2001 From: Michael Jones Date: Mon, 24 Jun 2024 17:40:53 +0100 Subject: Add per-target tests for optional field error As the error is different in each case. There might be a preferred way of handling this. --- test/gleam/dynamic_test.gleam | 32 ++++++++++++++++++++++++-------- 1 file changed, 24 insertions(+), 8 deletions(-) (limited to 'test') diff --git a/test/gleam/dynamic_test.gleam b/test/gleam/dynamic_test.gleam index 42018e9..fd51212 100644 --- a/test/gleam/dynamic_test.gleam +++ b/test/gleam/dynamic_test.gleam @@ -404,14 +404,6 @@ pub fn optional_field_test() { Error([DecodeError(expected: "String", found: "Int", path: ["ok"])]), ) - dict.new() - |> dict.insert("ok", None) - |> dynamic.from - |> dynamic.optional_field("ok", dynamic.int) - |> should.equal( - Error([DecodeError(expected: "Int", found: "Atom", path: ["ok"])]), - ) - dict.new() |> dict.insert("ok", Nil) |> dynamic.from @@ -453,6 +445,30 @@ pub fn optional_field_test() { ) } +// Error is different for erlang & javascript +@target(javascript) +pub fn optional_field_error_test() { + dict.new() + |> dict.insert("ok", None) + |> dynamic.from + |> dynamic.optional_field("ok", dynamic.int) + |> should.equal( + Error([DecodeError(expected: "Int", found: "Object", path: ["ok"])]), + ) +} + +// Error is different for erlang & javascript +@target(erlang) +pub fn optional_field_error_test() { + dict.new() + |> dict.insert("ok", None) + |> dynamic.from + |> dynamic.optional_field("ok", dynamic.int) + |> should.equal( + Error([DecodeError(expected: "Int", found: "Atom", path: ["ok"])]), + ) +} + pub fn element_test() { let ok_one_tuple = #("ok", 1) -- cgit v1.2.3