fakedata-0.6.0: test/BgTextSpec.hs
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE OverloadedStrings #-}
module BgTextSpec where
import Data.Text (Text)
import qualified Data.Text as T
import Faker hiding (defaultFakerSettings)
import qualified Faker.Address as FA
import qualified Faker.Name as NA
import qualified Faker.Internet as IN
import Test.Hspec
import TestImport
isText :: Text -> Bool
isText x = T.length x >= 1
fakerSettings :: FakerSettings
fakerSettings = setNonDeterministic $ setLocale "bg" defaultFakerSettings
verifyFakes :: [Fake Text] -> IO [Bool]
verifyFakes funs = do
let fs :: [IO Text] = map (generateWithSettings fakerSettings) funs
gs :: [IO Bool] = map (\f -> isText <$> f) fs
sequence gs
spec :: Spec
spec = do
describe "TextSpec" $ do
it "Bg Locale" $ do
let functions :: [Fake Text] =
[ FA.country
, FA.buildingNumber
, FA.streetSuffix
, FA.postcode
, FA.city
, FA.streetName
, FA.streetAddress
, NA.maleFirstName
, NA.femaleFirstName
, NA.firstName
, NA.name
, IN.freeEmail
, IN.domainSuffix
]
bools <- verifyFakes functions
(and bools) `shouldBe` True