users-test 0.3.0.0 → 0.4.0.0
raw patch · 2 files changed
+17/−7 lines, 2 filesdep ~users
Dependency ranges changed: users
Files
- src/Web/Users/TestSpec.hs +15/−5
- users-test.cabal +2/−2
src/Web/Users/TestSpec.hs view
@@ -49,6 +49,13 @@ Right _ -> expectationFailure msg Left v -> action v +assertJust :: IO (Maybe a) -> String -> (a -> IO ()) -> IO ()+assertJust val msg action =+ do r <- val+ case r of+ Nothing -> expectationFailure msg+ Just v -> action v+ makeUsersSpec :: forall b. UserStorageBackend b => b -> Spec makeUsersSpec backend = before_ (initUserBackend backend) $@@ -60,13 +67,13 @@ assertRight (createUser backend userB) $ \_ -> do assertLeft (createUser backend (mkUser "foo2" "bar2@baz.com")) "succeeded to create foo2 bar2 again" $ \err ->- err `shouldBe` UsernameOrEmailAlreadyTaken+ err `shouldBe` UsernameAndEmailAlreadyTaken assertLeft (createUser backend (mkUser "foo2" "asdas@baz.com")) "succeeded to create foo2 with different email again" $ \err ->- err `shouldBe` UsernameOrEmailAlreadyTaken+ err `shouldBe` UsernameAlreadyTaken assertLeft (createUser backend (mkUser "asdas" "bar2@baz.com")) "succeeded to create different user with same email" $ \err ->- err `shouldBe` UsernameOrEmailAlreadyTaken+ err `shouldBe` EmailAlreadyTaken it "list and count should be correct" $ assertRight (createUser backend userA) $ \userId1 -> assertRight (createUser backend userB) $ \userId2 ->@@ -80,10 +87,10 @@ do assertRight (updateUser backend userIdA (\(user :: DummyUser) -> user { u_name = "changed" })) $ const (return ()) assertLeft (updateUser backend userIdA (\(user :: DummyUser) -> user { u_name = "foo2" })) "succeeded to set username to already used username" $ \err ->- err `shouldBe` UsernameOrEmailAlreadyExists+ err `shouldBe` UsernameAlreadyExists assertLeft (updateUser backend userIdA (\(user :: DummyUser) -> user { u_email = "bar2@baz.com" })) "succeeded to set email to already used email" $ \err ->- err `shouldBe` UsernameOrEmailAlreadyExists+ err `shouldBe` EmailAlreadyExists updateUserDetails backend userIdA (\d -> d { dd_foo = False }) userA' <- getUserById backend userIdA userA' `shouldBe`@@ -132,6 +139,9 @@ it "sessionless auth with invalid userdata should fail" $ assertRight (createUser backend userA) $ \userIdA -> withAuthUser backend "bar@baz.com" ((/= DummyDetails True 21) . u_more) (return . (/= userIdA)) `shouldReturn` Nothing+ it "forcing a session works" $+ assertRight (createUser backend userA) $ \userIdA ->+ assertJust (createSession backend userIdA 500) "session id missing" $ \_ -> return () it "destroy session should really remove the session" $ withAuthedUser $ \(sessionId, _) -> do destroySession backend sessionId
users-test.cabal view
@@ -1,5 +1,5 @@ name: users-test-version: 0.3.0.0+version: 0.4.0.0 synopsis: Library to test backends for the users library description: Provides HSpec helpers for backends of <http://hackage.haskell.org/package/users users package>. .@@ -26,7 +26,7 @@ aeson >=0.8, base >=4.6 && <5, hspec >=2.1,- users >=0.3.0.0,+ users >=0.4.0.0, text >=1.2 hs-source-dirs: src default-language: Haskell2010