@@ -100,6 +100,7 @@ tests = testGroup "unit" [
100100 , testGroup "SingleMaybeField" singleMaybeField
101101 , testCase "withEmbeddedJSON" withEmbeddedJSONTest
102102 , testCase "SingleFieldCon" singleFieldCon
103+ , testCase "Ratio with denominator 0" ratioDenominator0
103104 ]
104105
105106roundTripCamel :: String -> Assertion
@@ -546,6 +547,12 @@ singleFieldCon :: Assertion
546547singleFieldCon =
547548 assertEqual "fromJSON" (Right (SingleFieldCon 0)) (eitherDecode "0")
548549
550+ratioDenominator0 :: Assertion
551+ratioDenominator0 =
552+ assertEqual "Ratio with denominator 0"
553+ (Left "Error in $: Ratio denominator was 0")
554+ (eitherDecode "{ \"numerator\": 1, \"denominator\": 0 }" :: Either String Rational)
555+
549556deriveJSON defaultOptions{omitNothingFields=True} ''MyRecord
550557
551558deriveToJSON defaultOptions ''Foo