@@ -6,6 +6,7 @@ import Prelude ()
66import Prelude.Compat hiding (seq)
77
88import Data.Aeson
9+import Data.DList (DList)
910import Data.Aeson.Parser.Internal
1011import Data.Aeson.Types ()
1112import Data.Aeson.Internal
@@ -24,6 +25,7 @@ tests = testGroup "Error accumulation" [
2425 testCase "Seq" seq
2526 , testCase "Vector" vector
2627 , testCase "NonEmpty" nonEmpty
28+ , testCase "DList" dlist
2729 ]
2830
2931decoder :: FromJSON a
@@ -48,3 +50,9 @@ nonEmpty = do
4850 let res = decoder "[true, null]" :: Either (NonEmpty (JSONPath, String)) (NL.NonEmpty Int)
4951 let message i s = ([Index i], "expected Int, encountered " <> s)
5052 res @=? Left (NL.fromList [message 0 "Boolean", message 1 "Null"])
53+
54+dlist :: Assertion
55+dlist = do
56+ let res = decoder "[true, null]" :: Either (NonEmpty (JSONPath, String)) (DList Int)
57+ let message i s = ([Index i], "expected Int, encountered " <> s)
58+ res @=? Left (NL.fromList [message 0 "Boolean", message 1 "Null"])