aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorLouis Pilfold <louis@lpil.uk>2022-01-09 18:08:09 +0000
committerLouis Pilfold <louis@lpil.uk>2022-01-09 18:08:09 +0000
commit462f4cd3d451b352a5afa1351cd2a3e99c77a4be (patch)
tree1bec93b0eb79a03a06f62da9dc0e649b294eeab7 /test
parent40ce5630785a5860f9e0daea82758bb125252464 (diff)
downloadgleam_stdlib-462f4cd3d451b352a5afa1351cd2a3e99c77a4be.tar.gz
gleam_stdlib-462f4cd3d451b352a5afa1351cd2a3e99c77a4be.zip
decode7
Diffstat (limited to 'test')
-rw-r--r--test/gleam/dynamic_test.gleam31
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"]),
+ ]))
+}