{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE RecordWildCards #-}
module Web.Stripe.Test.AllTests where
import Test.Hspec (hspec)
import Web.Stripe.Test.Config (getConfig)
import Web.Stripe.Test.Account (accountTests)
import Web.Stripe.Test.ApplicationFee (applicationFeeTests)
import Web.Stripe.Test.ApplicationFeeRefund (applicationFeeRefundTests)
import Web.Stripe.Test.Balance (balanceTests)
import Web.Stripe.Test.Charge (chargeTests)
import Web.Stripe.Test.Card (cardTests)
import Web.Stripe.Test.Coupon (couponTests)
import Web.Stripe.Test.Customer (customerTests)
import Web.Stripe.Test.Discount (discountTests)
import Web.Stripe.Test.Dispute (disputeTests)
import Web.Stripe.Test.Invoice (invoiceTests)
import Web.Stripe.Test.InvoiceItem (invoiceItemTests)
import Web.Stripe.Test.Plan (planTests)
import Web.Stripe.Test.Recipient (recipientTests)
import Web.Stripe.Test.Refund (refundTests)
import Web.Stripe.Test.Subscription (subscriptionTests)
import Web.Stripe.Test.Token (tokenTests)
import Web.Stripe.Test.Transfer (transferTests)
import Web.Stripe.Test.Event (eventTests)
import Web.Stripe.Test.Prelude (Stripe)
import Web.Stripe.Client (StripeConfig, StripeError)
allTests :: (forall a. StripeConfig -> Stripe a -> IO (Either StripeError a))
-> IO ()
allTests stripe' = do
config <- getConfig stripe'
let stripe = stripe' config
hspec $ do
chargeTests stripe
refundTests stripe
customerTests stripe
cardTests stripe
subscriptionTests stripe
planTests stripe
couponTests stripe
discountTests stripe
invoiceTests stripe
invoiceItemTests stripe
disputeTests stripe
transferTests stripe
applicationFeeTests stripe
applicationFeeRefundTests stripe
accountTests stripe
balanceTests stripe
tokenTests stripe
eventTests stripe