packages feed

scalpel-search-0.1.0.0: test/Test.hs

{-# 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