Skip to content

Commit

Permalink
Refactor Database Node Init Tests
Browse files Browse the repository at this point in the history
  • Loading branch information
alexanderkiel committed Feb 10, 2023
1 parent 172e942 commit 946e35d
Show file tree
Hide file tree
Showing 9 changed files with 102 additions and 35 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,9 @@
[clojure.spec.alpha :as s]))


(defn resource-store? [x]
(satisfies? rs/ResourceStore x))


(s/def :blaze.db/resource-store
#(satisfies? rs/ResourceStore %))
resource-store?)
12 changes: 10 additions & 2 deletions modules/db-tx-log/src/blaze/db/tx_log/spec.clj
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,20 @@
[clojure.spec.alpha :as s]))


(defn tx-log? [x]
(satisfies? tx-log/TxLog x))


(s/def :blaze.db/tx-log
#(satisfies? tx-log/TxLog %))
tx-log?)


(defn queue? [x]
(satisfies? tx-log/Queue x))


(s/def :blaze.db.tx-log/queue
#(satisfies? tx-log/Queue %))
queue?)


(s/def :blaze.db.tx-cmd/op
Expand Down
6 changes: 5 additions & 1 deletion modules/db/src/blaze/db/search_param_registry/spec.clj
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,12 @@
[clojure.spec.alpha :as s]))


(defn search-param-registry? [x]
(satisfies? sr/SearchParamRegistry x))


(s/def :blaze.db/search-param-registry
#(satisfies? sr/SearchParamRegistry %))
search-param-registry?)


(s/def :blaze.db/search-param
Expand Down
12 changes: 10 additions & 2 deletions modules/db/src/blaze/db/spec.clj
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,20 @@
#(satisfies? np/Node %))


(defn cache? [x]
(instance? Cache x))


(s/def :blaze.db/resource-handle-cache
#(instance? Cache %))
cache?)


(defn loading-cache? [x]
(instance? LoadingCache x))


(s/def :blaze.db/tx-cache
#(instance? LoadingCache %))
loading-cache?)


(s/def :blaze.db/resource-cache
Expand Down
7 changes: 4 additions & 3 deletions modules/db/test/blaze/db/node/resource_indexer_test.clj
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,8 @@
[blaze.db.node.resource-indexer-spec]
[blaze.db.resource-store :as rs]
[blaze.db.resource-store.kv :as rs-kv]
[blaze.db.search-param-registry :as sr]
[blaze.db.resource-store.spec :refer [resource-store?]]
[blaze.db.search-param-registry.spec :refer [search-param-registry?]]
[blaze.executors :as ex]
[blaze.fhir-path :as fhir-path]
[blaze.fhir.hash :as hash]
Expand Down Expand Up @@ -83,7 +84,7 @@
[:explain ::s/problems 0 :pred] := `(fn ~'[%] (contains? ~'% :kv-store))
[:explain ::s/problems 1 :pred] := `(fn ~'[%] (contains? ~'% :search-param-registry))
[:explain ::s/problems 2 :pred] := `(fn ~'[%] (contains? ~'% :executor))
[:explain ::s/problems 3 :pred] := `(fn ~'[%] (satisfies? rs/ResourceStore ~'%))
[:explain ::s/problems 3 :pred] := `resource-store?
[:explain ::s/problems 3 :val] := ::invalid))

(testing "invalid search-param-registry"
Expand All @@ -93,7 +94,7 @@
[:explain ::s/problems 0 :pred] := `(fn ~'[%] (contains? ~'% :kv-store))
[:explain ::s/problems 1 :pred] := `(fn ~'[%] (contains? ~'% :resource-store))
[:explain ::s/problems 2 :pred] := `(fn ~'[%] (contains? ~'% :executor))
[:explain ::s/problems 3 :pred] := `(fn ~'[%] (satisfies? sr/SearchParamRegistry ~'%))
[:explain ::s/problems 3 :pred] := `search-param-registry?
[:explain ::s/problems 3 :val] := ::invalid))

(testing "invalid executor"
Expand Down
81 changes: 59 additions & 22 deletions modules/db/test/blaze/db/node_test.clj
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,14 @@
[blaze.db.node.version :as version]
[blaze.db.resource-handle-cache]
[blaze.db.resource-store :as rs]
[blaze.db.resource-store.spec :refer [resource-store?]]
[blaze.db.search-param-registry]
[blaze.db.search-param-registry.spec :refer [search-param-registry?]]
[blaze.db.spec :refer [cache? loading-cache?]]
[blaze.db.test-util :refer [system]]
[blaze.db.tx-log :as tx-log]
[blaze.db.tx-log-spec]
[blaze.db.tx-log.local-spec]
[blaze.db.tx-log.spec :refer [tx-log?]]
[blaze.executors :as ex]
[blaze.fhir.structure-definition-repo]
[blaze.log]
Expand Down Expand Up @@ -114,33 +117,67 @@
[:explain ::s/problems 7 :pred] := `(fn ~'[%] (contains? ~'% :search-param-registry))))

(testing "invalid tx-log"
(given-thrown (ig/init {:blaze.db/node {:tx-log ::invalid}})
(given-thrown (ig/init (assoc-in system [:blaze.db/node :tx-log] ::invalid))
:key := :blaze.db/node
:reason := ::ig/build-failed-spec
[:explain ::s/problems 0 :pred] := `(fn ~'[%] (contains? ~'% :resource-handle-cache))
[:explain ::s/problems 1 :pred] := `(fn ~'[%] (contains? ~'% :tx-cache))
[:explain ::s/problems 2 :pred] := `(fn ~'[%] (contains? ~'% :indexer-executor))
[:explain ::s/problems 3 :pred] := `(fn ~'[%] (contains? ~'% :kv-store))
[:explain ::s/problems 4 :pred] := `(fn ~'[%] (contains? ~'% :resource-indexer))
[:explain ::s/problems 5 :pred] := `(fn ~'[%] (contains? ~'% :resource-store))
[:explain ::s/problems 6 :pred] := `(fn ~'[%] (contains? ~'% :search-param-registry))
[:explain ::s/problems 7 :pred] := `(fn ~'[%] (satisfies? tx-log/TxLog ~'%))
[:explain ::s/problems 7 :val] := ::invalid))
[:explain ::s/problems 0 :pred] := `tx-log?
[:explain ::s/problems 0 :val] := ::invalid))

(testing "invalid resource-handle-cache"
(given-thrown (ig/init (assoc-in system [:blaze.db/node :resource-handle-cache] ::invalid))
:key := :blaze.db/node
:reason := ::ig/build-failed-spec
[:explain ::s/problems 0 :pred] := `cache?
[:explain ::s/problems 0 :val] := ::invalid))

(testing "invalid tx-cache"
(given-thrown (ig/init (assoc-in system [:blaze.db/node :tx-cache] ::invalid))
:key := :blaze.db/node
:reason := ::ig/build-failed-spec
[:explain ::s/problems 0 :pred] := `loading-cache?
[:explain ::s/problems 0 :val] := ::invalid))

(testing "invalid indexer-executor"
(given-thrown (ig/init (assoc-in system [:blaze.db/node :indexer-executor] ::invalid))
:key := :blaze.db/node
:reason := ::ig/build-failed-spec
[:explain ::s/problems 0 :pred] := `ex/executor?
[:explain ::s/problems 0 :val] := ::invalid))

(testing "invalid kv-store"
(given-thrown (ig/init (assoc-in system [:blaze.db/node :kv-store] ::invalid))
:key := :blaze.db/node
:reason := ::ig/build-failed-spec
[:explain ::s/problems 0 :pred] := `kv/store?
[:explain ::s/problems 0 :val] := ::invalid))

(testing "invalid resource-indexer"
(given-thrown (ig/init (assoc-in system [:blaze.db/node :resource-indexer] ::invalid))
:key := :blaze.db/node
:reason := ::ig/build-failed-spec
[:explain ::s/problems 0 :pred] := `map?
[:explain ::s/problems 0 :val] := ::invalid))

(testing "invalid resource-store"
(given-thrown (ig/init (assoc-in system [:blaze.db/node :resource-store] ::invalid))
:key := :blaze.db/node
:reason := ::ig/build-failed-spec
[:explain ::s/problems 0 :pred] := `resource-store?
[:explain ::s/problems 0 :val] := ::invalid))

(testing "invalid search-param-registry"
(given-thrown (ig/init (assoc-in system [:blaze.db/node :search-param-registry] ::invalid))
:key := :blaze.db/node
:reason := ::ig/build-failed-spec
[:explain ::s/problems 0 :pred] := `search-param-registry?
[:explain ::s/problems 0 :val] := ::invalid))

(testing "invalid enforce-referential-integrity"
(given-thrown (ig/init {:blaze.db/node {:enforce-referential-integrity ::invalid}})
(given-thrown (ig/init (assoc-in system [:blaze.db/node :enforce-referential-integrity] ::invalid))
:key := :blaze.db/node
:reason := ::ig/build-failed-spec
[:explain ::s/problems 0 :pred] := `(fn ~'[%] (contains? ~'% :tx-log))
[:explain ::s/problems 1 :pred] := `(fn ~'[%] (contains? ~'% :resource-handle-cache))
[:explain ::s/problems 2 :pred] := `(fn ~'[%] (contains? ~'% :tx-cache))
[:explain ::s/problems 3 :pred] := `(fn ~'[%] (contains? ~'% :indexer-executor))
[:explain ::s/problems 4 :pred] := `(fn ~'[%] (contains? ~'% :kv-store))
[:explain ::s/problems 5 :pred] := `(fn ~'[%] (contains? ~'% :resource-indexer))
[:explain ::s/problems 6 :pred] := `(fn ~'[%] (contains? ~'% :resource-store))
[:explain ::s/problems 7 :pred] := `(fn ~'[%] (contains? ~'% :search-param-registry))
[:explain ::s/problems 8 :pred] := `boolean?
[:explain ::s/problems 8 :val] := ::invalid))
[:explain ::s/problems 0 :pred] := `boolean?
[:explain ::s/problems 0 :val] := ::invalid))

(testing "incompatible version"
(given-thrown (ig/init (with-index-store-version system -1))
Expand Down
3 changes: 2 additions & 1 deletion modules/db/test/blaze/db/resource_cache_test.clj
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
[blaze.db.resource-store :as rs]
[blaze.db.resource-store-spec]
[blaze.db.resource-store.kv :as rs-kv]
[blaze.db.resource-store.spec :refer [resource-store?]]
[blaze.fhir.hash :as hash]
[blaze.fhir.hash-spec]
[blaze.test-util :as tu :refer [given-thrown with-system]]
Expand Down Expand Up @@ -67,7 +68,7 @@
(given-thrown (ig/init {:blaze.db/resource-cache {:resource-store ::invalid}})
:key := :blaze.db/resource-cache
:reason := ::ig/build-failed-spec
[:explain ::s/problems 0 :pred] := `(fn ~'[%] (satisfies? rs/ResourceStore ~'%))
[:explain ::s/problems 0 :pred] := `resource-store?
[:explain ::s/problems 0 :val] := ::invalid))

(testing "invalid max-size"
Expand Down
4 changes: 2 additions & 2 deletions modules/db/test/blaze/db/search_param_registry_test.clj
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
[blaze.fhir-path :as fhir-path]
[blaze.fhir.spec.type]
[blaze.fhir.structure-definition-repo]
[blaze.fhir.structure-definition-repo.protocols :as p]
[blaze.fhir.structure-definition-repo.spec :refer [structure-definition-repo?]]
[blaze.test-util :refer [given-thrown with-system]]
[clojure.spec.alpha :as s]
[clojure.spec.test.alpha :as st]
Expand Down Expand Up @@ -46,7 +46,7 @@
(given-thrown (ig/init {:blaze.db/search-param-registry {:structure-definition-repo ::invalid}})
:key := :blaze.db/search-param-registry
:reason := ::ig/build-failed-spec
[:explain ::s/problems 0 :pred] := `(fn ~'[%] (satisfies? p/StructureDefinitionRepo ~'%))
[:explain ::s/problems 0 :pred] := `structure-definition-repo?
[:explain ::s/problems 0 :val] := ::invalid)))


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,9 @@
[clojure.spec.alpha :as s]))


(defn structure-definition-repo? [x]
(satisfies? p/StructureDefinitionRepo x))


(s/def :blaze.fhir/structure-definition-repo
#(satisfies? p/StructureDefinitionRepo %))
structure-definition-repo?)

0 comments on commit 946e35d

Please sign in to comment.