packages feed

fakedata-1.0: test/CoffeeSpec.hs

{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE ScopedTypeVariables #-}

module CoffeeSpec where

import Control.Monad.Catch
import Control.Monad.IO.Class
import qualified Data.Map as M
import Data.Text hiding (all, map)
import qualified Data.Text as T
import Data.Vector (Vector)
import qualified Data.Vector as V
import Faker hiding (defaultFakerSettings)
import Faker.Book.Dune
import Faker.Coffee
import Faker.Commerce
import Faker.Educator
import Faker.Game.Dota
import Faker.Internal
-- import Faker.Provider.Coffee
import qualified Faker.TvShow.DumbAndDumber as DD
import Test.Hspec
import TestImport

spec :: Spec
spec = do
  describe "Coffee" $ do
    -- it "Nested field" $ do
    --   ctries <- coffeeRegionsBrazilProvider defaultFakerSettings
    --   (V.toList ctries) `shouldBe` ["Sul Minas", "Mogiana", "Cerrado"]
    -- it "Nested field (via TH)" $ do
    --   ctries <- coffeeRegionsColombiaProvider defaultFakerSettings
    --   (ctries) `shouldSatisfy` (\x -> V.length x > 3)
    it "random region" $ do
      ctries <- generate regionsColombia
      ctries `shouldBeOneOf` ["Santander", "Antioquia"]
    it "brazil region (via TH)" $ do
      ctries <- generate regionsBrazil
      ctries `shouldBe` "Cerrado"
    it "India region (via TH)" $ do
      ctries <- generate regionsIndia
      ctries `shouldBeOneOf` ["Sheveroys", "Travancore"]
  describe "Commerce" $ do
    it "Nested field" $ do
      ctries <- generate productNameAdjective
      ctries `shouldBeOneOf` ["Rustic", "Fantastic"]
  describe "Dota" $ do
    it "Nested field" $ do
      ctries <- generate spiritBreakerQuote
      ctries `shouldSatisfy` (\x -> T.length x > 5)
  describe "Dune" $ do
    it "Nested field" $ do
      ctries <- generate quotesJessica
      ctries `shouldSatisfy` (\x -> T.length x > 5)
  describe "DumbAndDumber" $ do
    it "Nested field" $ do
      ctries <- generate DD.actors
      ctries `shouldSatisfy` (\x -> T.length x > 5)