diff --git a/src/monger/testing.clj b/src/monger/testing.clj index b73645b..cd5e7cc 100644 --- a/src/monger/testing.clj +++ b/src/monger/testing.clj @@ -106,6 +106,14 @@ (remember-oid f-group f-name (:_id expanded)) expanded))) +(defn seed-all + "Seeds all fixtures in the given collection" + [f-group] + (io! + (let [xs (vec (keys (get @factories f-group)))] + (doseq [f-name xs] + (seed f-group f-name))))) + (defn embedded-doc [f-group f-name & { :as overrides }] (fn [] diff --git a/test/monger/test/factory_dsl.clj b/test/monger/test/factory_dsl.clj index 53b57c8..031d4df 100644 --- a/test/monger/test/factory_dsl.clj +++ b/test/monger/test/factory_dsl.clj @@ -120,3 +120,11 @@ (is (:domain-id page)) (is (= "clojure.org" (:name domain))) (is (= "/rationale" (:name page))))) + + +(deftest test-seeding-all-factories-in-a-group + (is (mc/empty? "domains")) + (is (mc/empty? "pages")) + (seed-all "pages") + (is (>= (mc/count "domains") 1)) + (is (>= (mc/count "pages") 4)))