|
49 | 49 | :symbol
|
50 | 50 | :qualified-keyword
|
51 | 51 | :qualified-symbol]]
|
52 |
| - (is (every? (partial m/validate schema) (mg/sample schema {:size 1000}))))) |
| 52 | + (is (every? (m/validator schema) (mg/sample schema {:size 1000}))))) |
53 | 53 |
|
54 | 54 | (testing "double properties"
|
55 | 55 | (let [infinity? #(or (= % ##Inf)
|
|
165 | 165 | (testing "recursion"
|
166 | 166 | (let [schema [:schema {:registry {::cons [:maybe [:tuple int? [:ref ::cons]]]}}
|
167 | 167 | ::cons]]
|
168 |
| - (is (every? (partial m/validate schema) (mg/sample schema {:size 100}))))) |
| 168 | + (is (every? (m/validator schema) (mg/sample schema {:size 100}))))) |
169 | 169 | (testing "mutual recursion"
|
170 | 170 | (let [schema [:schema
|
171 | 171 | {:registry {::ping [:maybe [:tuple [:= "ping"] [:ref ::pong]]]
|
172 | 172 | ::pong [:maybe [:tuple [:= "pong"] [:ref ::ping]]]}}
|
173 | 173 | ::ping]]
|
174 |
| - (is (every? (partial m/validate schema) (mg/sample schema {:size 100}))))) |
| 174 | + (is (every? (m/validator schema) (mg/sample schema {:size 100}))))) |
175 | 175 | (testing "recursion limiting"
|
176 | 176 | (are [schema]
|
177 |
| - (every? (partial m/validate schema) (mg/sample schema {:size 100})) |
| 177 | + (every? (m/validator schema) (mg/sample schema {:size 100})) |
178 | 178 |
|
179 | 179 | [:schema {:registry {::rec [:maybe [:ref ::rec]]}} ::rec]
|
180 | 180 | [:schema {:registry {::rec [:map [:rec {:optional true} [:ref ::rec]]]}} ::rec]
|
|
369 | 369 | [:map [:x int?] [:y int?]]
|
370 | 370 | [:x]]]
|
371 | 371 | :let [schema (m/schema schema {:registry registry})]]
|
372 |
| - (is (every? (partial m/validate schema) (mg/sample schema {:size 1000})))))) |
| 372 | + (is (every? (m/validator schema) (mg/sample schema {:size 1000})))))) |
373 | 373 |
|
374 | 374 | #?(:clj
|
375 | 375 | (deftest function-schema-test
|
|
1098 | 1098 | (deftest double-with-long-min-test
|
1099 | 1099 | (is (m/validate :double (shrink [:double {:min 3}])))
|
1100 | 1100 | (is (= 3.0 (shrink [:double {:min 3}]))))
|
| 1101 | + |
| 1102 | +(deftest multi-keyword-dispatch-test |
| 1103 | + (testing "keyword dispatch value accumulates to generated value" |
| 1104 | + (let [schema [:multi {:dispatch :type} |
| 1105 | + ["duck" :map] |
| 1106 | + ["boss" :map]]] |
| 1107 | + (is (every? #{{:type "duck"} {:type "boss"}} (mg/sample schema))) |
| 1108 | + (is (every? (m/validator schema) (mg/sample schema))))) |
| 1109 | + |
| 1110 | + (testing "non keyword doesn't accumulate data" |
| 1111 | + (let [schema [:multi {:dispatch (fn [x] (:type x))} |
| 1112 | + ["duck" :map] |
| 1113 | + ["boss" :map]]] |
| 1114 | + (is (every? #{{}} (mg/sample schema))) |
| 1115 | + (is (not (every? (m/validator schema) (mg/sample schema)))))) |
| 1116 | + |
| 1117 | + (testing "::m/default works too" |
| 1118 | + (let [schema [:multi {:dispatch :type} |
| 1119 | + ["duck" :map] |
| 1120 | + [::m/default [:= "boss"]]]] |
| 1121 | + (is (every? #{{:type "duck"} "boss"} (mg/sample schema))) |
| 1122 | + (is (every? (m/validator schema) (mg/sample schema))))) |
| 1123 | + |
| 1124 | + (testing "works with nil & {} too" |
| 1125 | + (let [schema [:multi {:dispatch :type} |
| 1126 | + [nil :map] |
| 1127 | + [{} :map]]] |
| 1128 | + (is (every? #{{:type nil} {:type {}}} (mg/sample schema))) |
| 1129 | + (is (every? (m/validator schema) (mg/sample schema)))))) |
0 commit comments