matcher-combinators

itaied 2025-04-28T15:30:20.453039Z

hey all, i'm getting a weird behavior for match? :

(is (match? '[{(insert_business
                {:objects
                 [{:id "uuid"
                   :business_user {:data [{:user {:data {:id "uuid-user"}
                                                  :on_conflict {:constraint user_pkey
                                                                :update_columns [id name]}}}]
                                   :on_conflict {:constraint business_user_pkey
                                                 :update_columns [id]}}}]
                 :on_conflict {:constraint business_pkey
                               :update_columns [id name description]}})
               [{:returning [:id]}]}]
            '[{(insert_business
                {:objects
                 [{:id "uuid", :business_user {:data [{}], :on_conflict {:constraint user_pkey, :update_columns [id name]}}}],
                 :on_conflict {:constraint business_pkey, :update_columns [id name description]}})
               [{:returning [:id]}]}]))
results:
; FAIL in () (at eval (<anonymous>):NaN:NaN)
; expected: (match? (quote [{(insert_business {:objects [{:id "uuid", :business_user {:data [{:user {:data {:id "uuid-user"}, :on_conflict {:constraint user_pkey, :update_columns [id name]}}}], :on_conflict {:constraint business_user_pkey, :update_columns [id]}}}], :on_conflict {:constraint business_pkey, :update_columns [id name description]}}) [{:returning [:id]}]}]) (quote [{(insert_business {:objects [{:id "uuid", :business_user {:data [{}], :on_conflict {:constraint user_pkey, :update_columns [id name]}}}], :on_conflict {:constraint business_pkey, :update_columns [id name description]}}) [{:returning [:id]}]}]))
;   actual: [{(insert_business
;    {:objects
;     [{:id "uuid",
;       :business_user
;       {:data [{}],
;        :on_conflict
;        {:constraint user_pkey, :update_columns [id name]}}}],
;     :on_conflict
;     {:constraint business_pkey,
;      :update_columns [id name description]}})
;   [{:returning [:id]}],
;   (insert_business
;    {:objects
;     [{:id "uuid",
;       :business_user
;       {:data
;        [{:user
;          {:data {:id "uuid-user"},
;           :on_conflict
;           {:constraint user_pkey, :update_columns [id name]}}}],
;        :on_conflict
;        {:constraint business_user_pkey, :update_columns [id]}}}],
;     :on_conflict
;     {:constraint business_pkey,
;      :update_columns [id name description]}})
;   (missing "[{:returning [:id]}]")}]
it says (missing "[{:returning [:id]}]") and ignores the actual problem where the business_user.data is empty anyone can help with this please?