diff options
author | drew <drew@drewolson.org> | 2020-11-03 12:57:08 -0600 |
---|---|---|
committer | Louis Pilfold <louis@lpil.uk> | 2020-11-07 19:16:29 +0000 |
commit | 8254bd1079512ed8c8ae8d6fe3c1daf339e4e39e (patch) | |
tree | d0ba1c164719abb2d992c678929378eb0ac00ff8 /test | |
parent | c1d3cc12b920f60d06265b645daa3ff0010a8402 (diff) | |
download | gleam_stdlib-8254bd1079512ed8c8ae8d6fe3c1daf339e4e39e.tar.gz gleam_stdlib-8254bd1079512ed8c8ae8d6fe3c1daf339e4e39e.zip |
Add result and typed_result to dynamic
Diffstat (limited to 'test')
-rw-r--r-- | test/gleam/dynamic_test.gleam | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/test/gleam/dynamic_test.gleam b/test/gleam/dynamic_test.gleam index f4e78a0..d8b3be4 100644 --- a/test/gleam/dynamic_test.gleam +++ b/test/gleam/dynamic_test.gleam @@ -389,3 +389,54 @@ pub fn list_test() { |> dynamic.list |> should.equal(Error("Expected a list, got an int")) } + +pub fn result_test() { + Ok(1) + |> dynamic.from + |> dynamic.result + |> should.equal(Ok(Ok(dynamic.from(1)))) + + Error("error") + |> dynamic.from + |> dynamic.result + |> should.equal(Ok(Error(dynamic.from("error")))) + + 1 + |> dynamic.from + |> dynamic.result + |> should.equal(Error("Expected a 2 element tuple, got an int")) + + let tag = atom.create_from_string("bad") + + tuple(tag, "value") + |> dynamic.from + |> dynamic.result + |> should.equal(Error("Expected a tag of \"ok\" or \"error\", got \"bad\"")) +} + +pub fn typed_result_test() { + Ok(1) + |> dynamic.from + |> dynamic.typed_result(ok: dynamic.int, error: dynamic.string) + |> should.equal(Ok(Ok(1))) + + Error("error") + |> dynamic.from + |> dynamic.typed_result(ok: dynamic.int, error: dynamic.string) + |> should.equal(Ok(Error("error"))) + + Ok("1") + |> dynamic.from + |> dynamic.typed_result(ok: dynamic.int, error: dynamic.string) + |> should.equal(Error("Expected an int, got a binary")) + + Error(1) + |> dynamic.from + |> dynamic.typed_result(ok: dynamic.int, error: dynamic.string) + |> should.equal(Error("Expected a bit_string, got an int")) + + 1 + |> dynamic.from + |> dynamic.typed_result(ok: dynamic.int, error: dynamic.string) + |> should.equal(Error("Expected a 2 element tuple, got an int")) +} |