Files
Wolfgang Walther 268ab00ed9 test(spec): inline config into test suite
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.
2026-06-02 06:49:15 +00:00

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"
}
}
|]