From 8b56e89782ead004e4d5a7963868815d2547cd24 Mon Sep 17 00:00:00 2001 From: jem Date: Fri, 11 Oct 2019 13:26:24 +0200 Subject: [PATCH] fixed tests with completly activated schema validation --- main/src/data_test/loader.clj | 11 ++++++----- .../data_test/loader_test/test_it.1.edn | 3 ++- .../data_test/loader_test/test_it.9.edn | 3 ++- .../resources/data_test/loader_test/test_it.edn | 3 ++- test/resources/simple_aero.edn | 3 ++- test/resources/tagged_aero.edn | 6 +++--- test/src/data_test/loader_test.clj | 17 +++++++++++------ test/src/data_test_test.clj | 3 +++ 8 files changed, 31 insertions(+), 18 deletions(-) diff --git a/main/src/data_test/loader.clj b/main/src/data_test/loader.clj index 2837869..7ad36dc 100644 --- a/main/src/data_test/loader.clj +++ b/main/src/data_test/loader.clj @@ -27,7 +27,8 @@ :expected s/Any (s/optional-key :meta) {(s/optional-key :name) s/Str (s/optional-key :description) s/Str - (s/optional-key :link) s/Str}}) + (s/optional-key :link) s/Str} + (s/optional-key :references) s/Any}) (def RuntimeTestDataSpec (merge @@ -38,8 +39,8 @@ [runtime-test-data-spec :- RuntimeTestDataSpec] (:data-spec-file runtime-test-data-spec)) -(s/defn read-test-data-spec :- TestDataSpec - [resource-url :- s/Str] +(s/defn read-test-data-spec ; :- TestDataSpec - at least TestDataSpec but more keys are allowed + [resource-url] ; input is a url object (aero/read-config resource-url)) (s/defn data-test-spec-file-prefix :- s/Str @@ -56,7 +57,7 @@ (map #(str prefix "." % ".edn") (range 10))))) -(s/defn load-data-test-spec :- RuntimeTestDataSpec +(s/defn load-data-test-spec ; either :- RuntimeTestDataSpec or nil [file-path :- s/Str] (let [file-resource (io/resource file-path)] (when file-resource @@ -64,7 +65,7 @@ {:data-spec-file file-path} (read-test-data-spec file-resource))))) -(s/defn load-data-test-specs :- [RuntimeTestDataSpec] +(s/defn load-data-test-specs ; :- [RuntimeTestDataSpec] at least but more keys are allowed in elements [name-key :- s/Keyword] (let [locations (data-test-spec-file-names name-key) data-test-specs (filter some? (map load-data-test-spec locations))] diff --git a/test/resources/data_test/loader_test/test_it.1.edn b/test/resources/data_test/loader_test/test_it.1.edn index 6351458..c3b5a9f 100644 --- a/test/resources/data_test/loader_test/test_it.1.edn +++ b/test/resources/data_test/loader_test/test_it.1.edn @@ -1 +1,2 @@ -{:test "data1"} \ No newline at end of file +{:input "data1" + :expectation true} \ No newline at end of file diff --git a/test/resources/data_test/loader_test/test_it.9.edn b/test/resources/data_test/loader_test/test_it.9.edn index dd58eb4..89783b2 100644 --- a/test/resources/data_test/loader_test/test_it.9.edn +++ b/test/resources/data_test/loader_test/test_it.9.edn @@ -1 +1,2 @@ -{:test "data9"} \ No newline at end of file +{:input "data9" + :expectation true} \ No newline at end of file diff --git a/test/resources/data_test/loader_test/test_it.edn b/test/resources/data_test/loader_test/test_it.edn index e85d33d..a5e1940 100644 --- a/test/resources/data_test/loader_test/test_it.edn +++ b/test/resources/data_test/loader_test/test_it.edn @@ -1 +1,2 @@ -{:test "data"} \ No newline at end of file +{:input "data" + :expectation true} \ No newline at end of file diff --git a/test/resources/simple_aero.edn b/test/resources/simple_aero.edn index 24f3b15..dc97f8a 100644 --- a/test/resources/simple_aero.edn +++ b/test/resources/simple_aero.edn @@ -1 +1,2 @@ -{:simple "test"} \ No newline at end of file +{:input "test" + :expected true} \ No newline at end of file diff --git a/test/resources/tagged_aero.edn b/test/resources/tagged_aero.edn index dce6b70..50d0dd6 100644 --- a/test/resources/tagged_aero.edn +++ b/test/resources/tagged_aero.edn @@ -1,3 +1,3 @@ -{:to-be-refernced "ref-test" - :key1 #ref [:to-be-refernced] - :key2 #ref [:to-be-refernced]} \ No newline at end of file +{:references {:to-be-refernced "ref-test"} + :input #ref [:references :to-be-refernced] + :expected #ref [:references :to-be-refernced]} \ No newline at end of file diff --git a/test/src/data_test/loader_test.clj b/test/src/data_test/loader_test.clj index 7669b8b..762af0d 100644 --- a/test/src/data_test/loader_test.clj +++ b/test/src/data_test/loader_test.clj @@ -20,9 +20,10 @@ [data-test.loader :as sut])) (deftest should-read-test-data-spec - (is (= {:simple "test"} + (is (= {:input "test" + :expected true} (sut/read-test-data-spec (io/resource "simple_aero.edn")))) - (is (= {:to-be-refernced "ref-test", :key1 "ref-test", :key2 "ref-test"} + (is (= {:references {:to-be-refernced "ref-test"}, :input "ref-test", :expected "ref-test"} (sut/read-test-data-spec (io/resource "tagged_aero.edn")))) (is (thrown? RuntimeException (sut/read-test-data-spec (io/resource "aero_with_deserialization_issue.edn"))))) @@ -46,7 +47,8 @@ (sut/data-test-spec-file-names ::test-it)))) (deftest should-load-data - (is (= {:test "data" + (is (= {:input "data" + :expectation true :data-spec-file "data_test/loader_test/test_it.edn"} (sut/load-data-test-spec (str (sut/data-test-spec-file-prefix ::test-it) ".edn"))))) @@ -55,11 +57,14 @@ (sut/load-data-test-spec (str (sut/data-test-spec-file-prefix ::not-existing) ".edn"))))) (deftest should-load-data-test-specs - (is (= [{:test "data" + (is (= [{:input "data" + :expectation true :data-spec-file "data_test/loader_test/test_it.edn"} - {:test "data1" + {:input "data1" + :expectation true :data-spec-file "data_test/loader_test/test_it.1.edn"} - {:test "data9" + {:input "data9" + :expectation true :data-spec-file "data_test/loader_test/test_it.9.edn"}] (sut/load-data-test-specs ::test-it)))) diff --git a/test/src/data_test_test.clj b/test/src/data_test_test.clj index 22d1a93..beea8bf 100644 --- a/test/src/data_test_test.clj +++ b/test/src/data_test_test.clj @@ -17,9 +17,12 @@ (:require [clojure.test :refer :all] [clojure.java.io :as io] + [schema.core :as s] [data-test.loader :as loader] [data-test :as sut])) +(s/set-fn-validation! true) + ; -------------------- explicit version ------------------ (deftest should-test-with-data-explicit-version (let [testdata (loader/read-test-data-spec (io/resource "data_test_test/should_test_with_data_explicit_version.edn"))