packages feed

json-spec-openapi 1.0.0.0 → 1.0.1.0

raw patch · 3 files changed

+60/−30 lines, 3 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

- Data.JsonSpec.OpenApi: instance (Data.JsonSpec.OpenApi.Inlineable (Data.JsonSpec.OpenApi.Concat newDefs defs) spec, Data.JsonSpec.OpenApi.Defs newDefs newDefs) => Data.JsonSpec.OpenApi.Inlineable defs ('Data.JsonSpec.Spec.JsonLet newDefs spec)
+ Data.JsonSpec.OpenApi: instance (Data.JsonSpec.OpenApi.Inlineable (Data.JsonSpec.OpenApi.Concat newDefs defs) spec, Data.JsonSpec.OpenApi.Defs (Data.JsonSpec.OpenApi.Concat newDefs defs) newDefs) => Data.JsonSpec.OpenApi.Inlineable defs ('Data.JsonSpec.Spec.JsonLet newDefs spec)

Files

json-spec-openapi.cabal view
@@ -1,6 +1,6 @@ cabal-version:       3.0 name:                json-spec-openapi-version:             1.0.0.0+version:             1.0.1.0 synopsis:            json-spec-openapi description:   This package provides a way to produce
src/Data/JsonSpec/OpenApi.hs view
@@ -342,13 +342,13 @@       & set type_ (Just OpenApiObject) instance {- Inlineable defs (JsonLet newDefs spec) -}     ( Inlineable (Concat newDefs defs) spec-    , Defs newDefs newDefs+    , Defs (Concat newDefs defs) newDefs     )   =>     Inlineable defs (JsonLet newDefs spec)   where     inlineable = do-      mkDefs @newDefs @newDefs+      mkDefs @(Concat newDefs defs) @newDefs       inlineable @(Concat newDefs defs) @spec instance {- Inlineable defs (JsonRef target) -}     ( Deref defs defs target
test/test.hs view
@@ -287,37 +287,67 @@         in           actual `shouldBe` expected -      it "let expression" $-        let-          actual :: (Definitions OA.Schema, OA.Schema)-          actual =-            toOpenApiSchema (Proxy @(-              JsonLet '[-                '("thing", JsonString)-              ]-              (-                JsonObject '[-                  Required "foo" (JsonRef "thing")+      describe "let bindings" $ do+        it "basic let expression" $+          let+            actual :: (Definitions OA.Schema, OA.Schema)+            actual =+              toOpenApiSchema (Proxy @(+                JsonLet '[+                  '("thing", JsonString)                 ]+                (+                  JsonObject '[+                    Required "foo" (JsonRef "thing")+                  ]+                )+              ))++            expected :: (Definitions OA.Schema, OA.Schema)+            expected =+              ( HMI.singleton "thing" stringSchema+              , mempty+                  & set OA.type_ (Just OA.OpenApiObject)+                  & set OA.properties (+                      mempty+                        & set (at "foo") (Just (OA.Ref (OA.Reference "thing")))+                    )+                  & set OA.required ["foo"]+                  & set+                      OA.additionalProperties+                      (Just (OA.AdditionalPropertiesAllowed False))               )-            ))+          in+            actual `shouldBe` expected -          expected :: (Definitions OA.Schema, OA.Schema)-          expected =-            ( HMI.singleton "thing" stringSchema-            , mempty-                & set OA.type_ (Just OA.OpenApiObject)-                & set OA.properties (-                    mempty-                      & set (at "foo") (Just (OA.Ref (OA.Reference "thing")))+        it "back reference" $+          let+            actual :: (Definitions OA.Schema, OA.Schema)+            actual =+              toOpenApiSchema (Proxy @(+                JsonLet+                 '[ '( "thing1"+                     , JsonString+                     )+                  , '( "thing2"+                     , JsonRef "thing1"+                     )+                  ]+                  (+                    JsonRef "thing2"                   )-                & set OA.required ["foo"]-                & set-                    OA.additionalProperties-                    (Just (OA.AdditionalPropertiesAllowed False))-            )-        in-          actual `shouldBe` expected+              ))++            expected :: (Definitions OA.Schema, OA.Schema)+            expected =+              ( HMI.fromList+                  [ ("thing1", stringSchema)+                  , ("thing2", stringSchema)+                  ]+              , stringSchema+              )+          in+            actual `shouldBe` expected        it "top level reference" $         let