@@ -6,6 +6,7 @@ import Prelude ()
6import Prelude.Compat hiding (seq)
6import Prelude.Compat hiding (seq)
8import Data.Aeson
8import Data.Aeson
9+import Data.DList (DList)
9import Data.Aeson.Parser.Internal
10import Data.Aeson.Parser.Internal
10import Data.Aeson.Types ()
11import Data.Aeson.Types ()
11import Data.Aeson.Internal
12import Data.Aeson.Internal
@@ -24,6 +25,7 @@ tests = testGroup "Error accumulation" [
24 testCase "Seq" seq
25 testCase "Seq" seq
25 , testCase "Vector" vector
26 , testCase "Vector" vector
26 , testCase "NonEmpty" nonEmpty
27 , testCase "NonEmpty" nonEmpty
28+ , testCase "DList" dlist
29decoder :: FromJSON a
31decoder :: FromJSON a
@@ -48,3 +50,9 @@ nonEmpty = do
48 let res = decoder "[true, null]" :: Either (NonEmpty (JSONPath, String)) (NL.NonEmpty Int)
50 let res = decoder "[true, null]" :: Either (NonEmpty (JSONPath, String)) (NL.NonEmpty Int)
49 let message i s = ([Index i], "expected Int, encountered " <> s)
51 let message i s = ([Index i], "expected Int, encountered " <> s)
50 res @=? Left (NL.fromList [message 0 "Boolean", message 1 "Null"])
52 res @=? Left (NL.fromList [message 0 "Boolean", message 1 "Null"])
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"])