From: fr33domlover <fr33domlo...@riseup.net>

The runner isn't being used, I just added it there so that we can start
writing tests with it. May wish to move it to a TestImport module once
we split crowdmatch tests into multiple modules.
---
 crowdmatch/crowdmatch.cabal |  1 +
 crowdmatch/test/main.hs     | 16 +++++++++++++++-
 2 files changed, 16 insertions(+), 1 deletion(-)

diff --git a/crowdmatch/crowdmatch.cabal b/crowdmatch/crowdmatch.cabal
index d378766..27b8dfc 100644
--- a/crowdmatch/crowdmatch.cabal
+++ b/crowdmatch/crowdmatch.cabal
@@ -67,6 +67,7 @@ test-suite test
         , run-persist
         , safe-exceptions
         , stripe-core
+        , stripe-haskell
         , text
         , time
         , transformers
diff --git a/crowdmatch/test/main.hs b/crowdmatch/test/main.hs
index 96a0244..df2b8ce 100644
--- a/crowdmatch/test/main.hs
+++ b/crowdmatch/test/main.hs
@@ -14,6 +14,7 @@ import Control.Monad.IO.Class (MonadIO, liftIO)
 import Control.Monad.Reader (ask)
 import Data.Foldable (traverse_)
 import Data.List (partition)
+import Data.Maybe (fromJust)
 import Data.Monoid ((<>))
 import Data.Text (Text)
 import Data.Time (getCurrentTime)
@@ -22,7 +23,7 @@ import Database.Persist.Postgresql
         (SqlPersistT, runMigration, connEscapeName, unSingle, rawSql, 
rawExecute)
 import RunPersist (runPersistPool)
 import System.Directory (createDirectoryIfMissing)
-import System.Environment (setEnv)
+import System.Environment (lookupEnv, setEnv)
 import Test.Hspec
         ( runIO
         , hspec
@@ -47,9 +48,11 @@ import Test.QuickCheck
         , getPositive
         , counterexample)
 import Test.QuickCheck.Monadic (PropertyM, monadicIO, run, pick, monitor, 
assert)
+import Web.Stripe (StripeKey(..), StripeConfig(..))
 import Web.Stripe.Balance (BalanceTransaction(..))
 import Web.Stripe.Charge (Charge(..))
 import Web.Stripe.Customer (Customer(..), CustomerId(..), TokenId(..), 
customerId)
+import Web.Stripe.Error (StripeError)
 import qualified Data.ByteString.Char8 as B
 import qualified Data.Text as T
 import qualified Database.PostgreSQL.Simple as PG
@@ -96,6 +99,17 @@ dummyStripe state = \case
         pure (Right Charge{ chargeBalanceTransaction = Nothing })
     BalanceTransactionI _ -> pure (Right BalanceTransaction{})
 
+-- | A real Stripe runner for tests that really use Stripe, except it uses the
+-- test key so the money is imaginary.
+--
+-- FIXME: The key is fetched here from the environment. But the Snowdrift test
+-- suite currently fetches it from test-settings.yaml and ignores the
+-- environment.
+mkTesterStripe :: MonadIO io => io (StripeI a -> io (Either StripeError a))
+mkTesterStripe = do
+    key <- liftIO $ fromJust <$> lookupEnv "STRIPE_SECRET_TEST_KEY"
+    return $ runStripe $ StripeConfig $ StripeKey $ B.pack key
+
 type Runner = SqlRunner IO IO
 
 -- | A QuickCheck property that uses database actions
-- 
1.9.1

_______________________________________________
Dev mailing list
Dev@lists.snowdrift.coop
https://lists.snowdrift.coop/mailman/listinfo/dev

Reply via email to