aeson-qq 0.8.1 → 0.8.2
raw patch · 3 files changed
+76/−23 lines, 3 filesdep ~aesondep ~haskell-src-metaPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: aeson, haskell-src-meta
API changes (from Hackage documentation)
Files
- aeson-qq.cabal +25/−22
- src/Data/Aeson/QQ.hs +1/−1
- test/Data/JSON/QQSpec.hs +50/−0
aeson-qq.cabal view
@@ -1,5 +1,9 @@+-- This file has been generated from package.yaml by hpack version 0.18.0.+--+-- see: https://github.com/sol/hpack+ name: aeson-qq-version: 0.8.1+version: 0.8.2 synopsis: JSON quasiquoter for Haskell description: @aeson-qq@ provides a JSON quasiquoter for Haskell. .@@ -10,30 +14,31 @@ >aesonQQ :: QuasiQuoter . Consult the @README@ for documentation:- <https://github.com/zalora/aeson-qq#readme>--homepage: http://github.com/zalora/aeson-qq+ <https://github.com/sol/aeson-qq#readme>+homepage: https://github.com/sol/aeson-qq#readme+bug-reports: https://github.com/sol/aeson-qq/issues license: MIT license-file: LICENSE author: Oscar Finnsson maintainer: Simon Hengel <sol@typeful.net> category: JSON build-type: Simple-cabal-version: >= 1.8+cabal-version: >= 1.10 source-repository head type: git- location: https://github.com/zalora/aeson-qq/+ location: https://github.com/sol/aeson-qq library- ghc-options:- -Wall+ ghc-options: -Wall hs-source-dirs: src exposed-modules: Data.Aeson.QQ other-modules: Data.JSON.QQ+ Paths_aeson_qq+ default-language: Haskell2010 build-depends: base >= 4.5 && < 5 , base-compat@@ -47,17 +52,19 @@ , haskell-src-meta >= 0.1.0 test-suite spec- type:- exitcode-stdio-1.0- ghc-options:- -Wall+ type: exitcode-stdio-1.0+ ghc-options: -Wall hs-source-dirs:- src, test- main-is:- Spec.hs+ src+ test+ main-is: Spec.hs other-modules:- Person+ Data.Aeson.QQ+ Data.JSON.QQ Data.Aeson.QQSpec+ Data.JSON.QQSpec+ Person+ default-language: Haskell2010 build-depends: base >= 4.5 && < 5 , base-compat@@ -65,13 +72,9 @@ , attoparsec , scientific , vector- , aeson+ , aeson >= 0.6 , parsec , template-haskell- , haskell-src-meta-- , aeson+ , haskell-src-meta >= 0.1.0 , hspec-- -- Neded for GHC 7.4.* , ghc-prim
src/Data/Aeson/QQ.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE TemplateHaskell #-}--- | Have a look at the <https://github.com/zalora/aeson-qq#readme README> for+-- | Have a look at the <https://github.com/sol/aeson-qq#readme README> for -- documentation. module Data.Aeson.QQ (aesonQQ) where
+ test/Data/JSON/QQSpec.hs view
@@ -0,0 +1,50 @@+{-# LANGUAGE OverloadedStrings #-}+module Data.JSON.QQSpec (main, spec) where++import Test.Hspec++import Data.JSON.QQ++main :: IO ()+main = hspec spec++spec :: Spec+spec = do+ describe "parsedJson" $ do+ it "parses JSON" $ do+ let Right value = parsedJson "{foo: 23}"+ value `shouldBe` JsonObject [(HashStringKey "foo", JsonNumber 23)]++ it "parses decimal numbers" $ do+ let Right value = parsedJson "{foo: 5.97}"+ value `shouldBe` JsonObject [(HashStringKey "foo", JsonNumber 5.97)]++ context "empty objects" $ do+ it "parses empty objects (regression test)" $ do+ let Right value = parsedJson "{}"+ value `shouldBe` JsonObject []++ it "parses empty objects that include whitespace (regression test)" $ do+ let Right value = parsedJson "{ }"+ value `shouldBe` JsonObject []++ it "parses empty objects that include newlines (regression test)" $ do+ let Right value = parsedJson "{\n}"+ value `shouldBe` JsonObject []++ context "empty arrays" $ do+ it "parses empty arrays" $ do+ let Right value = parsedJson "[ ]"+ value `shouldBe` JsonArray []++ it "parses empty arrays that include whitespace (regression test)" $ do+ let Right value = parsedJson "[ ]"+ value `shouldBe` JsonArray []++ it "parses empty objects that include newlines (regression test)" $ do+ let Right value = parsedJson "[\n]"+ value `shouldBe` JsonArray []++ it "fails on excess input" $ do+ let Left err = parsedJson "{foo: 23} some excess input"+ show err `shouldBe` "\"txt\" (line 1, column 11):\nunexpected 's'\nexpecting space or end of input"