packages feed

freesound-0.3.0: test/Sound/Freesound/SearchSpec.hs

{-# LANGUAGE OverloadedStrings #-}
module Sound.Freesound.SearchSpec (spec) where

import           Data.Default (def)
import           Sound.Freesound
import           Sound.Freesound.Search
import qualified Sound.Freesound.Sound as Sound
import           Sound.Freesound.Test
import           Test.Hspec

spec :: Spec
spec = do
  describe "search" $ do
    it "searches" $ do
      let p s =    Sound.username s == "k0s"
                && Sound.name s == "Spiffy Spank"
      fs (anySatisfy p =<< search_ (include "spank")) `shouldReturn` True
    it "filters by user name" $ do
      let p s = Sound.username s == "k0s"
      fs (allSatisfy p =<< search def def (username "k0s") (include "spank")) `shouldReturn` True
    it "paginates" $ do
      l <- fs $ search (Pagination 0 1) def def ""
      length (elems l) `shouldBe` 1