{-# Language OverloadedStrings #-}
module Main where
import Text.HTML.Scalpel.Search
import Test.Hspec
import Text.HTML.Scalpel
import qualified Text.HTML.TagSoup as S
main :: IO ()
main = hspec spec
ft :: URL -> IO ()
ft u = do ts <- fetchTags u
writeFile "/tmp/diogene.html" (S.renderTags ts)
type MyScraper = Scraper String SearchResult
spec :: Spec
spec = do
describe "ddgScraper" $ do
it "scrapes a DuckDuckGo search" $
let url = buildDuckduckgoURL "Caro Elisir"
sa = scrapeURL (show url) (duckduckgoScraper :: MyScraper)
in fmap (length . unwrapSR) <$> sa `shouldReturn` Just 25
describe "googleScraper" $ do
it "scrapes a Google search" $
let url = buildGoogleURL "Osculetur me"
sa = scrapeURL (show url) (googleScraper :: MyScraper)
in fmap (length . unwrapSR) <$> sa `shouldReturn` Just 9