From 3756309b22a020014c95923ba926953d7ef1b1b1 Mon Sep 17 00:00:00 2001 From: "Adam C. Baker" Date: Mon, 29 Dec 2014 17:04:12 -0800 Subject: [PATCH] create items in test, not in the schema. --- test/Feature/InsertSpec.hs | 14 -------------- test/Feature/QuerySpec.hs | 5 ++++- test/Feature/RangeSpec.hs | 3 ++- test/SpecHelper.hs | 11 +++++++++++ test/fixtures/schema.sql | 19 +------------------ 5 files changed, 18 insertions(+), 34 deletions(-) diff --git a/test/Feature/InsertSpec.hs b/test/Feature/InsertSpec.hs index 185df24aa..6e2173cd2 100644 --- a/test/Feature/InsertSpec.hs +++ b/test/Feature/InsertSpec.hs @@ -13,25 +13,11 @@ import Data.Maybe (fromJust) import Network.HTTP.Types.Header import Network.HTTP.Types import Control.Monad (replicateM_) -import Data.Monoid -import qualified Hasql as H -import qualified Data.ByteString.Char8 as BS import TestTypes(IncPK(..), CompoundPK(..)) --import Debug.Trace - -clearTable :: BS.ByteString -> IO () -clearTable table = H.session pgSettings testSettings $ H.tx Nothing $ - H.unit ("delete from \"1\"."<>table, [], True) - -createItems :: Int -> IO () -createItems n = H.session pgSettings testSettings $ H.tx Nothing txn >> return () - where - txn = sequence $ map H.unit stmts - stmts = map [H.q|insert into "1".items (id) values (?)|] [1..n] - spec :: Spec spec = beforeAll resetDb $ around withApp $ do describe "Posting new record" $ do diff --git a/test/Feature/QuerySpec.hs b/test/Feature/QuerySpec.hs index 94d4c595b..5baa94a2e 100644 --- a/test/Feature/QuerySpec.hs +++ b/test/Feature/QuerySpec.hs @@ -6,7 +6,10 @@ import Test.Hspec.Wai import SpecHelper spec :: Spec -spec = beforeAll resetDb $ around withApp $ do +spec = beforeAll (do + resetDb + createItems 15 + ) . afterAll_ (clearTable "items") . around withApp $ do describe "Querying a nonexistent table" $ it "causes a 404" $ get "/faketable" `shouldRespondWith` 404 diff --git a/test/Feature/RangeSpec.hs b/test/Feature/RangeSpec.hs index 1c5017079..b82c01ac4 100644 --- a/test/Feature/RangeSpec.hs +++ b/test/Feature/RangeSpec.hs @@ -8,7 +8,8 @@ import Network.Wai.Test (SResponse(simpleHeaders,simpleStatus)) import SpecHelper spec :: Spec -spec = beforeAll resetDb $ around withApp $ +spec = beforeAll (resetDb >> createItems 15) . afterAll_ (clearTable "items") + . around withApp $ describe "GET /items" $ do context "without range headers" $ diff --git a/test/SpecHelper.hs b/test/SpecHelper.hs index 4b26b4f98..dfe9bc20b 100644 --- a/test/SpecHelper.hs +++ b/test/SpecHelper.hs @@ -10,6 +10,7 @@ import Hasql as H import Hasql.Postgres as H import Data.String.Conversions (cs) +import Data.Monoid -- import Control.Exception.Base (bracket, finally) import Control.Monad (void) import Control.Exception @@ -89,6 +90,16 @@ authHeader :: String -> String -> Header authHeader u p = (hAuthorization, cs $ "Basic " ++ encode (u ++ ":" ++ p)) +clearTable :: BS.ByteString -> IO () +clearTable table = H.session pgSettings testSettings $ H.tx Nothing $ + H.unit ("delete from \"1\"."<>table, [], True) + +createItems :: Int -> IO () +createItems n = H.session pgSettings testSettings $ H.tx Nothing txn + where + txn = sequence_ $ map H.unit stmts + stmts = map [H.q|insert into "1".items (id) values (?)|] [1..n] + -- for hspec-wai pending_ :: WaiSession () pending_ = liftIO Test.Hspec.pending diff --git a/test/fixtures/schema.sql b/test/fixtures/schema.sql index 7cce9d46b..0c7cc5d7b 100755 --- a/test/fixtures/schema.sql +++ b/test/fixtures/schema.sql @@ -452,30 +452,13 @@ SELECT pg_catalog.setval('has_fk_id_seq', 1, false); -- Data for Name: items; Type: TABLE DATA; Schema: 1; Owner: postgrest_test -- -INSERT INTO items (id) VALUES (1); -INSERT INTO items (id) VALUES (2); -INSERT INTO items (id) VALUES (3); -INSERT INTO items (id) VALUES (4); -INSERT INTO items (id) VALUES (5); -INSERT INTO items (id) VALUES (6); -INSERT INTO items (id) VALUES (7); -INSERT INTO items (id) VALUES (8); -INSERT INTO items (id) VALUES (9); -INSERT INTO items (id) VALUES (10); -INSERT INTO items (id) VALUES (11); -INSERT INTO items (id) VALUES (12); -INSERT INTO items (id) VALUES (13); -INSERT INTO items (id) VALUES (14); -INSERT INTO items (id) VALUES (15); - - -- -- TOC entry 2339 (class 0 OID 0) -- Dependencies: 198 -- Name: items_id_seq; Type: SEQUENCE SET; Schema: 1; Owner: postgrest_test -- -SELECT pg_catalog.setval('items_id_seq', 19, true); +SELECT pg_catalog.setval('items_id_seq', 1, true); --