aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorLouis Pilfold <louis@lpil.uk>2022-01-03 14:27:56 +0000
committerLouis Pilfold <louis@lpil.uk>2022-01-03 14:27:56 +0000
commitc85007c3b8c1456220c81848f232664aa0c12e4d (patch)
treefed4710ab9e309e0b55370d54a2a5b405f89d904 /test
parent492c92493013415467155788aebac6018f67c072 (diff)
downloadgleam_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.gleam63
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(