diff --git a/CHANGES.md b/CHANGES.md index 0a69098..8c19a31 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -3,7 +3,7 @@ * `#sql/inline nil` should produce `NULL`. Fix #221. (@seancorfield) * `#sql/inline :kw` should produce `"kw"`. Fix #224 via PR #225. (@vincent-dm) Note: this introduces a new protocol, `Inlinable`, which controls inline value rendering, and changes the behavior of `#sql/inline :foo/bar` to produce just `"bar"` (where it was probably invalid SQL before). * Alias expressions `[:col :alias]` are now checked to have exactly two elements. Fix #226. -* Allow `where` and `merge-where` to be given no predicates. Fix #228. +* Allow `where` and `merge-where` to be given no predicates. Fix #228 and PR #230. ## 0.9.3 diff --git a/test/honeysql/core_test.cljc b/test/honeysql/core_test.cljc index 2c3ceb6..f3b9cbf 100644 --- a/test/honeysql/core_test.cljc +++ b/test/honeysql/core_test.cljc @@ -6,7 +6,7 @@ [honeysql.helpers :refer [select modifiers from join left-join right-join full-join where group having order-by limit offset values columns - insert-into with]] + insert-into with merge-where]] honeysql.format-test)) ;; TODO: more tests @@ -215,4 +215,20 @@ (where [:= :id (sql/inline nil)]) sql/format)))) +(deftest merge-where-no-params-test + (testing "merge-where called with just the map as parameter - see #228" + (let [sqlmap (-> (select :*) + (from :table) + (where [:= :foo :bar]))] + (is (= ["SELECT * FROM table WHERE foo = bar"] + (sql/format (apply merge-where sqlmap []))))))) + +(deftest merge-where-test + (is (= ["SELECT * FROM table WHERE (foo = bar AND quuz = xyzzy)"] + (-> (select :*) + (from :table) + (where [:= :foo :bar]) + (merge-where [:= :quuz :xyzzy]) + sql/format)))) + #?(:cljs (cljs.test/run-all-tests))