diff --git a/src/Web/Users/TestSpec.hs b/src/Web/Users/TestSpec.hs
--- a/src/Web/Users/TestSpec.hs
+++ b/src/Web/Users/TestSpec.hs
@@ -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
diff --git a/users-test.cabal b/users-test.cabal
--- a/users-test.cabal
+++ b/users-test.cabal
@@ -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
