metosin / spec-tools

Clojure(Script) tools for clojure.spec

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

multi-spec -> swagger returns empty map

nikolavojicic opened this issue · comments

Generating Swagger / OpenApi / JsonSchema from multi-spec returns empty map:

  (s/def ::string string?)
  (s/def ::number number?)
  (defmulti foo :type)
  (defmethod foo "string" [_] (s/keys :req-un [::string]))
  (defmethod foo "number" [_] (s/keys :req-un [::number]))
  (s/def ::foo (s/multi-spec foo :type))

  (gen/sample (s/gen ::foo))
  #_({:number -2.0, :type "number"}
     {:number -0.5, :type "number"}
     {:number -2, :type "number"}
     {:number -1, :type "number"}
     {:number -1, :type "number"}
     {:string "dqo6", :type "string"}
     {:number -0.5, :type "number"}
     {:string "7FtR", :type "string"}
     {:number -1.859375, :type "number"}
     {:string "91C", :type "string"})

  (swagger/transform ::foo)
  #_{}
  (openapi/transform ::foo)
  #_{}
  (json-schema/transform ::foo)
  #_{}

Is there any workaround for this?