stripe-haskell-0.1.4.1: tests/Test/Balance.hs
{-# LANGUAGE OverloadedStrings #-}
module Test.Balance where
import Control.Monad
import Data.Either
import Test.Hspec
import Web.Stripe
import Web.Stripe.Balance
import Web.Stripe.Charge
import Web.Stripe.Customer
balanceTests :: StripeConfig -> Spec
balanceTests config = do
describe "Balance tests" $ do
it "Succesfully retrieves a Balance" $ do
result <- stripe config getBalance
result `shouldSatisfy` isRight
it "Succesfully retrieves a Balance Transaction" $ do
result <- stripe config $ do
Customer { customerId = cid } <- createCustomerByCard cn em ey cvc
Charge { chargeBalanceTransaction = Just txid } <-
chargeCustomer cid USD 100 Nothing
balance <- getBalanceTransaction txid
void $ deleteCustomer cid
return balance
result `shouldSatisfy` isRight
it "Succesfully retrieves an Expanded Balance Transaction" $ do
result <- stripe config $ do
Customer { customerId = cid } <- createCustomerByCard cn em ey cvc
Charge { chargeBalanceTransaction = Just txid
} <- chargeCustomer cid USD 100 Nothing
result <- getBalanceTransactionExpandable txid ["source"]
void $ deleteCustomer cid
return result
result `shouldSatisfy` isRight
it "Succesfully retrieves Balance Transaction History" $ do
result <- stripe config $ getBalanceTransactionHistory Nothing Nothing Nothing
result `shouldSatisfy` isRight
where
cn = CardNumber "4242424242424242"
em = ExpMonth 12
ey = ExpYear 2015
cvc = CVC "123"