liblastfm-0.6.0: test/api/Json/ChartSpec.hs
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE OverloadedStrings #-}
module Json.ChartSpec (spec) where
import Data.Aeson (Value)
import Data.Aeson.Lens
import Data.Text (Text)
import Lastfm
import Lastfm.Chart
import Test.Hspec
import SpecHelper
spec :: Spec
spec = do
describe "get*Artists" $ do
let jsonQuery :: Fold Value Text
jsonQuery = key "artists".key "artist".values.key "name"._String
it "getHypedArtists" $
publicly (getHypedArtists <* limit 3)
`shouldHaveJson`
jsonQuery
it "getTopArtists" $
publicly (getTopArtists <* limit 4)
`shouldHaveJson`
jsonQuery
describe "get*Tracks" $ do
let jsonQuery :: Fold Value Text
jsonQuery = key "tracks".key "track".values.key "name"._String
it "getHypedTracks" $
publicly (getHypedTracks <* limit 2)
`shouldHaveJson`
jsonQuery
it "getLovedTracks" $
publicly (getLovedTracks <* limit 3)
`shouldHaveJson`
jsonQuery
it "getTopTracks" $
publicly (getTopTracks <* limit 2)
`shouldHaveJson`
jsonQuery
it "getTopTags" $
publicly (getTopTags <* limit 5)
`shouldHaveJson`
key "tags".key "tag".values.key "name"._String