@@ -1,11 +1,12 @@
1−{-# LANGUAGE CPP, DeriveGeneric, OverloadedStrings, ScopedTypeVariables #-}
1+{-# LANGUAGE CPP, DeriveGeneric, OverloadedStrings, ScopedTypeVariables, TemplateHaskell #-}
22
33module UnitTests (ioTests, tests) where
44
55import Control.Monad (forM)
66import Data.Aeson (decode, eitherDecode, encode, genericToJSON, genericToEncoding)
7+import Data.Aeson.TH ( deriveJSON )
78import Data.Aeson.Encode (encodeToTextBuilder)
8−import Data.Aeson.Types (ToJSON(..), Value, camelTo, camelTo2, defaultOptions)
9+import Data.Aeson.Types (ToJSON(..), Value, camelTo, camelTo2, defaultOptions, omitNothingFields)
910import Data.Char (toUpper)
1011import Data.Time (UTCTime)
1112import Data.Time.Format (parseTime)
@@ -184,3 +185,7 @@ encoderComparisonTests = do
184185 , "twitter100.json"
185186 , "twitter50.json"
186187 ]
188+
189+-- A regression test for: https://github.com/bos/aeson/issues/293
190+data MyRecord = MyRecord {field1 :: Maybe Int, field2 :: Maybe Bool}
191+deriveJSON defaultOptions{omitNothingFields=True} ''MyRecord