diff options
author | Louis Pilfold <louis@lpil.uk> | 2022-01-09 18:08:09 +0000 |
---|---|---|
committer | Louis Pilfold <louis@lpil.uk> | 2022-01-09 18:08:09 +0000 |
commit | 462f4cd3d451b352a5afa1351cd2a3e99c77a4be (patch) | |
tree | 1bec93b0eb79a03a06f62da9dc0e649b294eeab7 /test | |
parent | 40ce5630785a5860f9e0daea82758bb125252464 (diff) | |
download | gleam_stdlib-462f4cd3d451b352a5afa1351cd2a3e99c77a4be.tar.gz gleam_stdlib-462f4cd3d451b352a5afa1351cd2a3e99c77a4be.zip |
decode7
Diffstat (limited to 'test')
-rw-r--r-- | test/gleam/dynamic_test.gleam | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/test/gleam/dynamic_test.gleam b/test/gleam/dynamic_test.gleam index 566bb15..94e4e5d 100644 --- a/test/gleam/dynamic_test.gleam +++ b/test/gleam/dynamic_test.gleam @@ -925,3 +925,34 @@ pub fn decode6_test() { DecodeError(expected: "String", found: "Float", path: ["1"]), ])) } + +type Seven(a, b, c, d, e, f, g) { + Seven(a, b, c, d, e, f, g) +} + +pub fn decode7_test() { + let decoder = + dynamic.decode7( + Seven, + dynamic.element(0, dynamic.int), + dynamic.element(1, dynamic.string), + dynamic.element(2, dynamic.int), + dynamic.element(3, dynamic.int), + dynamic.element(4, dynamic.int), + dynamic.element(5, dynamic.int), + dynamic.element(6, dynamic.int), + ) + + #(1, "2", 3, 4, 5, 6, 7) + |> dynamic.from + |> decoder + |> should.equal(Ok(Seven(1, "2", 3, 4, 5, 6, 7))) + + #(1.3, 2.1, 3, 4, 5, 6, 7) + |> dynamic.from + |> decoder + |> should.equal(Error([ + DecodeError(expected: "Int", found: "Float", path: ["0"]), + DecodeError(expected: "String", found: "Float", path: ["1"]), + ])) +} |