Previously, information about each test-suite was repeated in 3 separate places: - as a label and as implicit knowledge in the test-suite itself, - as a comment in Main.hs, and - as a configuration in SpecHelper.hs. With this change, there will be a single source of truth in the test suite itself. This will allow a single test-suite to easily test multiple different configurations.
47 lines
1.1 KiB
Haskell
47 lines
1.1 KiB
Haskell
module Feature.OpenApi.SecurityOpenApiSpec where
|
|
|
|
import Control.Lens ((^?))
|
|
|
|
import Data.Aeson.Lens
|
|
import Data.Aeson.QQ
|
|
|
|
import Network.Wai.Test (SResponse (..))
|
|
|
|
import Test.Hspec hiding (pendingWith)
|
|
import Test.Hspec.Wai
|
|
|
|
import PostgREST.Config (AppConfig (..))
|
|
|
|
import Protolude hiding (get)
|
|
import SpecHelper
|
|
|
|
spec :: SpecWithConfig
|
|
spec withConfig = withConfig (baseCfg { configOpenApiSecurityActive = True }) $
|
|
describe "Security active" $
|
|
it "includes security and security definitions" $ do
|
|
r <- simpleBody <$> get "/"
|
|
|
|
let sec = r ^? key "security"
|
|
secDef = r ^? key "securityDefinitions"
|
|
|
|
liftIO $ do
|
|
|
|
sec `shouldBe` Just
|
|
[aesonQQ|
|
|
[
|
|
{ "JWT": [] }
|
|
]
|
|
|]
|
|
|
|
secDef `shouldBe` Just
|
|
[aesonQQ|
|
|
{
|
|
"JWT": {
|
|
"description": "Add the token prepending \"Bearer \" (without quotes) to it",
|
|
"in": "header",
|
|
"name": "Authorization",
|
|
"type": "apiKey"
|
|
}
|
|
}
|
|
|]
|