Add security definitions to the OpenAPI output

This commit is contained in:
Laurence Isla
2022-07-13 22:47:09 -05:00
committed by GitHub
parent bdf1cbe111
commit e0ba6b6d1c
19 changed files with 96 additions and 2 deletions
+12
View File
@@ -636,3 +636,15 @@ spec actualPgVersion = describe "OpenAPI" $ do
liftIO $ params `shouldBe` Just [aesonQQ|["num", "str"]|]
describe "Security" $
it "does not include security or security definitions by default" $ do
r <- simpleBody <$> get "/"
let sec = r ^? key "security"
secDef = r ^? key "securityDefinitions"
liftIO $ do
sec `shouldBe` Nothing
secDef `shouldBe` Nothing
@@ -0,0 +1,44 @@
module Feature.OpenApi.SecurityOpenApiSpec where
import Control.Lens ((^?))
import Data.Aeson.Lens
import Data.Aeson.QQ
import Network.Wai (Application)
import Network.Wai.Test (SResponse (..))
import Test.Hspec hiding (pendingWith)
import Test.Hspec.Wai
import Protolude hiding (get)
spec :: SpecWith ((), Application)
spec =
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"
}
}
|]