add load-and-adjust-ns-helper

This commit is contained in:
Michael Jerger 2025-03-10 14:57:15 +01:00
parent 991cf57c4f
commit f99a0dd747
3 changed files with 30 additions and 1 deletions
src
main/cljc/dda/c4k_common
test
cljc/dda/c4k_common
resources/namespace-test

View file

@ -3,6 +3,8 @@
#?(:clj [orchestra.core :refer [defn-spec]]
:cljs [orchestra.core :refer-macros [defn-spec]])
[clojure.spec.alpha :as s]
[dda.c4k-common.predicate :as cp]
[dda.c4k-common.yaml :as yaml]
[dda.c4k-common.namespace.namespace-internal :as int]))
(s/def ::namespace ::int/namespace)
@ -17,3 +19,10 @@
(let [final-config (merge default-config
config)]
[(int/generate-namespace final-config)]))
(defn-spec load-and-adjust-namespace cp/map-or-seq?
[file string?
namespace ::namespace]
(->
(yaml/load-as-edn file)
(assoc-in [:metadata :namespace] namespace)))

View file

@ -2,10 +2,18 @@
(:require
#?(:clj [clojure.test :refer [deftest is are testing run-tests]]
:cljs [cljs.test :refer-macros [deftest is are testing run-tests]])
#?(:cljs [shadow.resource :as rc])
[clojure.spec.test.alpha :as st]
[dda.c4k-common.namespace :as cut]))
(st/instrument `cut/generate)
(st/instrument `cut/load-and-adjust-namespace)
#?(:cljs
(defmethod yaml/load-resource :namespace-test [resource-name]
(case resource-name
"namespace-test/dummy.yaml" (rc/inline "namespace-test/dummy.yaml")
(throw (js/Error. (str "Undefined Resource: " resource-name))))))
(deftest should-generate-simple-ingress
(is (= [{:apiVersion "v1"
@ -15,4 +23,11 @@
(is (= [{:apiVersion "v1"
:kind "Namespace"
:metadata {:name "myapp"}}]
(cut/generate {:namespace "myapp"}))))
(cut/generate {:namespace "myapp"}))))
(deftest should-load-and-replace-ns
(is (= {:apiVersion "v1"
:kind "Dummy"
:metadata {:name "dummy"
:namespace "xy"}}
(cut/load-and-adjust-namespace "namespace-test/dummy.yaml" "xy"))))

View file

@ -0,0 +1,5 @@
apiVersion: v1
kind: Dummy
metadata:
name: dummy
namespace: default