Skip to content

Commit 5e92bc3

Browse files
authored
Extra tests (#131)
1 parent 6aa2b83 commit 5e92bc3

File tree

2 files changed

+47
-3
lines changed

2 files changed

+47
-3
lines changed

test/toucan2/test.clj

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -313,16 +313,24 @@
313313

314314
(defmacro with-discarded-table-changes
315315
{:style/indent 1}
316-
[table-name & body]
317-
`(do-with-discarded-table-changes (current-db-type) ~table-name (^:once fn* [] ~@body)))
316+
[table-name-or-names & body]
317+
(let [table-names (if (sequential? table-name-or-names)
318+
table-name-or-names
319+
[table-name-or-names])]
320+
(reduce (fn [expr table-name]
321+
`(do-with-discarded-table-changes (current-db-type) ~table-name (^:once fn* [] ~expr)))
322+
`(do ~@body)
323+
table-names)))
318324

319325
(defn discard-table-changes-all-dbs! [table-name]
320326
(doseq [db-type (db-types)]
321327
(binding [*current-db-type* db-type]
322328
(create-table! table-name))))
323329

324330
(s/fdef with-discarded-table-changes
325-
:args (s/cat :table-name (some-fn symbol? keyword? string?)
331+
:args (s/cat :table-name (let [table-name (some-fn symbol? simple-keyword? string?)]
332+
(s/alt :table-name table-name
333+
:table-names (s/coll-of table-name :min-count 1)))
326334
:body (s/+ any?))
327335
:ret any?)
328336

toucan1/test/toucan/db_test.clj

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
[toucan.test-models.venue :refer [Venue]]
1414
[toucan.test-setup :as test-setup]
1515
[toucan2.connection :as conn]
16+
[toucan2.insert :as insert]
1617
[toucan2.instance :as instance]
1718
[toucan2.jdbc :as jdbc]
1819
[toucan2.jdbc.query :as jdbc.query]
@@ -529,6 +530,41 @@
529530
(is (= {:id 4, :first-name "Grass", :last-name "HOPPER"}
530531
(t1.db/insert! User {:first-name "Grass" :last-name [:upper "Hopper"]}))))))
531532

533+
(derive ::venues.edn-category ::test/venues)
534+
535+
(t1.models/add-type!
536+
::edn
537+
:in pr-str
538+
:out (fn [s]
539+
(binding [*read-eval* false]
540+
(read-string s))))
541+
542+
(t1.models/deftypes
543+
::venues.edn-category
544+
{:category ::edn})
545+
546+
(deftest ^:synchronized insert!-deftypes-test
547+
(test/with-discarded-table-changes "venues"
548+
(is (= 2
549+
(insert/insert! ::venues.edn-category
550+
[{:name "Venue 1", :category {:name "Category 1"}}
551+
{:name "Venue 2", :category {:name :category-2}}])))
552+
(is (= [(instance/instance
553+
::venues.edn-category
554+
{:id 5
555+
:name "Venue 2"
556+
:category {:name :category-2}
557+
:created-at (java.time.LocalDateTime/parse "2017-01-01T00:00")
558+
:updated-at (java.time.LocalDateTime/parse "2017-01-01T00:00")})
559+
(instance/instance
560+
::venues.edn-category
561+
{:id 4
562+
:name "Venue 1"
563+
:category {:name "Category 1"}
564+
:created-at (java.time.LocalDateTime/parse "2017-01-01T00:00")
565+
:updated-at (java.time.LocalDateTime/parse "2017-01-01T00:00")})]
566+
(t1.db/select ::venues.edn-category {:order-by [[:id :desc]], :limit 2})))))
567+
532568
(deftest ^:parallel select-one-test
533569
(is (= {:id 1, :first-name "Cam", :last-name "Saul"}
534570
(t1.db/select-one User, :first-name "Cam")))

0 commit comments

Comments
 (0)