diff options
author | Louis Pilfold <louis@lpil.uk> | 2022-01-03 14:27:56 +0000 |
---|---|---|
committer | Louis Pilfold <louis@lpil.uk> | 2022-01-03 14:27:56 +0000 |
commit | c85007c3b8c1456220c81848f232664aa0c12e4d (patch) | |
tree | fed4710ab9e309e0b55370d54a2a5b405f89d904 /test | |
parent | 492c92493013415467155788aebac6018f67c072 (diff) | |
download | gleam_stdlib-c85007c3b8c1456220c81848f232664aa0c12e4d.tar.gz gleam_stdlib-c85007c3b8c1456220c81848f232664aa0c12e4d.zip |
Return all errors from tuple decoders
Diffstat (limited to 'test')
-rw-r--r-- | test/gleam/dynamic_test.gleam | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/test/gleam/dynamic_test.gleam b/test/gleam/dynamic_test.gleam index 8f2a54d..64f1aac 100644 --- a/test/gleam/dynamic_test.gleam +++ b/test/gleam/dynamic_test.gleam @@ -389,6 +389,14 @@ pub fn tuple2_test() { DecodeError(expected: "Int", found: "String", path: ["1"]), ])) + #(1.2, "") + |> dynamic.from + |> dynamic.tuple2(dynamic.int, dynamic.int) + |> should.equal(Error([ + DecodeError(expected: "Int", found: "Float", path: ["0"]), + DecodeError(expected: "Int", found: "String", path: ["1"]), + ])) + #(1, 2, 3) |> dynamic.from |> dynamic.tuple2(dynamic.int, dynamic.int) @@ -426,6 +434,15 @@ pub fn tuple3_test() { DecodeError(expected: "Int", found: "String", path: ["2"]), ])) + #(1.2, "", "") + |> dynamic.from + |> dynamic.tuple3(dynamic.int, dynamic.int, dynamic.int) + |> should.equal(Error([ + DecodeError(expected: "Int", found: "Float", path: ["0"]), + DecodeError(expected: "Int", found: "String", path: ["1"]), + DecodeError(expected: "Int", found: "String", path: ["2"]), + ])) + #(1, 2) |> dynamic.from |> dynamic.tuple3(dynamic.int, dynamic.int, dynamic.int) @@ -463,6 +480,16 @@ pub fn tuple4_test() { DecodeError(expected: "Int", found: "String", path: ["3"]), ])) + #(1.2, "", "", "") + |> dynamic.from + |> dynamic.tuple4(dynamic.int, dynamic.int, dynamic.int, dynamic.int) + |> should.equal(Error([ + DecodeError(expected: "Int", found: "Float", path: ["0"]), + DecodeError(expected: "Int", found: "String", path: ["1"]), + DecodeError(expected: "Int", found: "String", path: ["2"]), + DecodeError(expected: "Int", found: "String", path: ["3"]), + ])) + #(1, 2) |> dynamic.from |> dynamic.tuple4(dynamic.int, dynamic.int, dynamic.int, dynamic.int) @@ -518,6 +545,23 @@ pub fn tuple5_test() { DecodeError(expected: "Int", found: "String", path: ["4"]), ])) + #(1.2, "", "", "", "") + |> dynamic.from + |> dynamic.tuple5( + dynamic.int, + dynamic.int, + dynamic.int, + dynamic.int, + dynamic.int, + ) + |> should.equal(Error([ + DecodeError(expected: "Int", found: "Float", path: ["0"]), + DecodeError(expected: "Int", found: "String", path: ["1"]), + DecodeError(expected: "Int", found: "String", path: ["2"]), + DecodeError(expected: "Int", found: "String", path: ["3"]), + DecodeError(expected: "Int", found: "String", path: ["4"]), + ])) + #(1, 2) |> dynamic.from |> dynamic.tuple5( @@ -588,6 +632,25 @@ pub fn tuple6_test() { DecodeError(expected: "Int", found: "String", path: ["5"]), ])) + #(1.2, "", "", "", "", "") + |> dynamic.from + |> dynamic.tuple6( + dynamic.int, + dynamic.int, + dynamic.int, + dynamic.int, + dynamic.int, + dynamic.int, + ) + |> should.equal(Error([ + DecodeError(expected: "Int", found: "Float", path: ["0"]), + DecodeError(expected: "Int", found: "String", path: ["1"]), + DecodeError(expected: "Int", found: "String", path: ["2"]), + DecodeError(expected: "Int", found: "String", path: ["3"]), + DecodeError(expected: "Int", found: "String", path: ["4"]), + DecodeError(expected: "Int", found: "String", path: ["5"]), + ])) + #(1, 2) |> dynamic.from |> dynamic.tuple6( |