test: malli now uses . instead of ~1 in json-schema/swagger $refs

update our assertions accordingly
This commit is contained in:
Joel Kaasinen 2025-04-01 10:22:07 +03:00
parent 832d9ebe95
commit 2bf8aa98a7
2 changed files with 21 additions and 25 deletions

View file

@ -1009,7 +1009,7 @@
{:content {:content
{"application/json" {"application/json"
{:schema {:schema
{:$ref "#/components/schemas/reitit.openapi-test~1Plus"}}}}}} {:$ref "#/components/schemas/reitit.openapi-test.Plus"}}}}}}
"/get" "/get"
{:get {:get
{:parameters {:parameters
@ -1019,19 +1019,15 @@
{:in "query" {:in "query"
:name :y :name :y
:required true :required true
:schema {:$ref "#/components/schemas/reitit.openapi-test~1Y"}}]}}} :schema {:$ref "#/components/schemas/reitit.openapi-test.Y"}}]}}}
:components :components
{:schemas {:schemas
{"reitit.openapi-test/Plus" {"reitit.openapi-test.Plus"
{:type "object" {:type "object"
:properties :properties
{:x {:type "integer"} {:x {:type "integer"}
:y {:$ref "#/components/schemas/reitit.openapi-test~1Y"}} :y {:$ref "#/components/schemas/reitit.openapi-test.Y"}}
:required [:x :y]} :required [:x :y]}
"reitit.openapi-test/Y" {:type "integer"}}}} "reitit.openapi-test.Y" {:type "integer"}}}}
spec)) spec))
;; TODO: the OAS 3.1 json schema disallows "/" in :components :schemas keys,
;; even though the text of the spec allows it. See:
;; https://github.com/seriousme/openapi-schema-validator/blob/772375bf4895f0e641d103c27140cdd1d2afc34e/schemas/v3.1/schema.json#L282
#_
(is (nil? (validate spec)))))) (is (nil? (validate spec))))))

View file

@ -161,14 +161,14 @@
expected {:x-id #{::math} expected {:x-id #{::math}
:swagger "2.0" :swagger "2.0"
:info {:title "my-api"} :info {:title "my-api"}
:definitions {"reitit.swagger-test/req-key" {:type "string" :definitions {"reitit.swagger-test.req-key" {:type "string"
:x-anyOf [{:type "string"} :x-anyOf [{:type "string"}
{:type "string"}]} {:type "string"}]}
"reitit.swagger-test/req-val" {:type "object" "reitit.swagger-test.req-val" {:type "object"
:x-anyOf [{:type "object"} :x-anyOf [{:type "object"}
{:type "string"}]} {:type "string"}]}
"reitit.swagger-test/resp-map" {:type "object"}, "reitit.swagger-test.resp-map" {:type "object"},
"reitit.swagger-test/resp-string" {:type "string" "reitit.swagger-test.resp-string" {:type "string"
:minLength 1}} :minLength 1}}
:paths {"/api/spec/plus/{z}" {:patch {:parameters [] :paths {"/api/spec/plus/{z}" {:patch {:parameters []
:summary "patch" :summary "patch"
@ -287,12 +287,12 @@
:schema :schema
{:type "object" {:type "object"
:additionalProperties :additionalProperties
{:$ref "#/definitions/reitit.swagger-test~1req-val"}}}] {:$ref "#/definitions/reitit.swagger-test.req-val"}}}]
:responses {200 :responses {200
{:schema {:schema
{:$ref "#/definitions/reitit.swagger-test~1resp-map" {:$ref "#/definitions/reitit.swagger-test.resp-map"
:x-anyOf [{:$ref "#/definitions/reitit.swagger-test~1resp-map"} :x-anyOf [{:$ref "#/definitions/reitit.swagger-test.resp-map"}
{:$ref "#/definitions/reitit.swagger-test~1resp-string"}]} {:$ref "#/definitions/reitit.swagger-test.resp-string"}]}
:description ""} :description ""}
500 {:description "fail"}} 500 {:description "fail"}}
:summary "plus put with definitions"}} :summary "plus put with definitions"}}
@ -532,24 +532,24 @@
{:get {:no-doc true {:get {:no-doc true
:handler (swagger/create-swagger-handler)}}]])) :handler (swagger/create-swagger-handler)}}]]))
spec (:body (app {:request-method :get, :uri "/swagger.json"}))] spec (:body (app {:request-method :get, :uri "/swagger.json"}))]
(is (= {:definitions {"reitit.swagger-test/Plus" {:properties {:x {:$ref "#/definitions/reitit.swagger-test~1X"}, (is (= {:definitions {"reitit.swagger-test.Plus" {:properties {:x {:$ref "#/definitions/reitit.swagger-test.X"},
:y {:$ref "#/definitions/reitit.swagger-test~1Y"}}, :y {:$ref "#/definitions/reitit.swagger-test.Y"}},
:required [:x :y], :required [:x :y],
:type "object"}, :type "object"},
"reitit.swagger-test/X" {:format "int64", "reitit.swagger-test.X" {:format "int64",
:type "integer"}, :type "integer"},
"reitit.swagger-test/Y" {:format "int64", "reitit.swagger-test.Y" {:format "int64",
:type "integer"}, :type "integer"},
"reitit.swagger-test/Result" {:type "object", "reitit.swagger-test.Result" {:type "object",
:properties {:result {:type "integer", :format "int64"}}, :properties {:result {:type "integer", :format "int64"}},
:required [:result]}}, :required [:result]}},
:paths {"/post" {:post {:parameters [{:description "", :paths {"/post" {:post {:parameters [{:description "",
:in "body", :in "body",
:name "body", :name "body",
:required true, :required true,
:schema {:$ref "#/definitions/reitit.swagger-test~1Plus"}}] :schema {:$ref "#/definitions/reitit.swagger-test.Plus"}}]
:responses {200 {:description "" :responses {200 {:description ""
:schema {:$ref "#/definitions/reitit.swagger-test~1Result"}}}}} :schema {:$ref "#/definitions/reitit.swagger-test.Result"}}}}}
"/get" {:get {:parameters [{:in "query" "/get" {:get {:parameters [{:in "query"
:name :x :name :x
:description "" :description ""
@ -563,7 +563,7 @@
:required true :required true
:format "int64"}] :format "int64"}]
:responses {200 {:description "" :responses {200 {:description ""
:schema {:$ref "#/definitions/reitit.swagger-test~1Result"}}}}}} :schema {:$ref "#/definitions/reitit.swagger-test.Result"}}}}}}
:swagger "2.0", :swagger "2.0",
:x-id #{:reitit.swagger/default}} :x-id #{:reitit.swagger/default}}
spec)))) spec))))