{-# LANGUAGE DataKinds #-} {-# LANGUAGE OverloadedStrings #-} module Xml.GroupSpec (spec) where import Network.Lastfm import Network.Lastfm.Group import Test.Hspec import Text.Xml.Lens import SpecHelper spec :: Spec spec = do it "getHype" $ publicly (getHype <*> groupname) `shouldHaveXml` root.node "weeklyartistchart".node "artist".node "mbid".text it "getMembers" $ publicly (getMembers <*> groupname <* limit 10) `shouldHaveXml` root.node "members".node "user".node "name".text it "getWeeklyAlbumChart" $ publicly (getWeeklyAlbumChart <*> groupname) `shouldHaveXml` root.node "weeklyalbumchart".node "album".node "playcount".text it "getWeeklyArtistChart" $ publicly (getWeeklyArtistChart <*> groupname) `shouldHaveXml` root.node "weeklyartistchart".node "artist".node "name".text it "getWeeklyChartList" $ publicly (getWeeklyChartList <*> groupname) `shouldHaveXml` root.node "weeklychartlist".node "chart".attr "from" it "getWeeklyTrackChart" $ publicly (getWeeklyTrackChart <*> groupname) `shouldHaveXml` root.node "weeklytrackchart".node "track".node "url".text groupname :: Request f Group groupname = group "People with no social lives that listen to more music than is healthy who are slightly scared of spiders and can never seem to find a pen"