You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
85 lines
3.0 KiB
Clojure
85 lines
3.0 KiB
Clojure
(ns dda.c4k-common.yaml-test
|
|
(:require
|
|
[clojure.test :refer [deftest is are testing run-tests]]
|
|
[clojure.spec.test.alpha :as st]
|
|
[dda.c4k-common.yaml :as cut]))
|
|
|
|
(st/instrument `cut/from-string)
|
|
(st/instrument `cut/to-string)
|
|
(st/instrument `cut/dispatch-by-resource-name)
|
|
|
|
(deftest should-dispatch-by-resource-name
|
|
(is (= :clj
|
|
(cut/dispatch-by-resource-name "postgres/etc"))))
|
|
|
|
(deftest should-parse-yaml-string
|
|
(is (= {:hallo "welt"}
|
|
(cut/from-string "hallo: welt"))))
|
|
|
|
(deftest should-generate-yaml-string
|
|
(is (= "hallo: welt
|
|
"
|
|
(cut/to-string {:hallo "welt"}))))
|
|
|
|
(deftest should-convert-config-yml-to-map
|
|
(is (= {:apiVersion "networking.k8s.io/v1beta1"
|
|
:kind "Ingress"
|
|
:metadata
|
|
{:name "ingress-cloud"
|
|
:annotations
|
|
{:cert-manager.io/cluster-issuer
|
|
"letsencrypt-staging-issuer"
|
|
:nginx.ingress.kubernetes.io/proxy-body-size "256m"
|
|
:nginx.ingress.kubernetes.io/ssl-redirect "true"
|
|
:nginx.ingress.kubernetes.io/rewrite-target "/"
|
|
:nginx.ingress.kubernetes.io/proxy-connect-timeout "300"
|
|
:nginx.ingress.kubernetes.io/proxy-send-timeout "300"
|
|
:nginx.ingress.kubernetes.io/proxy-read-timeout "300"}
|
|
:namespace "default"}
|
|
:spec
|
|
{:tls [{:hosts ["fqdn"], :secretName "keycloak-secret"}]
|
|
:rules
|
|
[{:host "fqdn"
|
|
:http
|
|
{:paths
|
|
[{:backend
|
|
{:serviceName "keycloak", :servicePort 8080}}]}}
|
|
{:host "fqdn"
|
|
:http
|
|
{:paths
|
|
[{:backend
|
|
{:serviceName "another_keycloak"
|
|
:servicePort 8081}}]}}]}}
|
|
(cut/from-string (cut/load-resource "test/ingress_test.yaml")))))
|
|
|
|
(deftest should-directly-convert-config-yml-to-map
|
|
(is (= {:apiVersion "networking.k8s.io/v1beta1"
|
|
:kind "Ingress"
|
|
:metadata
|
|
{:name "ingress-cloud"
|
|
:annotations
|
|
{:cert-manager.io/cluster-issuer
|
|
"letsencrypt-staging-issuer"
|
|
:nginx.ingress.kubernetes.io/proxy-body-size "256m"
|
|
:nginx.ingress.kubernetes.io/ssl-redirect "true"
|
|
:nginx.ingress.kubernetes.io/rewrite-target "/"
|
|
:nginx.ingress.kubernetes.io/proxy-connect-timeout "300"
|
|
:nginx.ingress.kubernetes.io/proxy-send-timeout "300"
|
|
:nginx.ingress.kubernetes.io/proxy-read-timeout "300"}
|
|
:namespace "default"}
|
|
:spec
|
|
{:tls [{:hosts ["fqdn"], :secretName "keycloak-secret"}]
|
|
:rules
|
|
[{:host "fqdn"
|
|
:http
|
|
{:paths
|
|
[{:backend
|
|
{:serviceName "keycloak", :servicePort 8080}}]}}
|
|
{:host "fqdn"
|
|
:http
|
|
{:paths
|
|
[{:backend
|
|
{:serviceName "another_keycloak"
|
|
:servicePort 8081}}]}}]}}
|
|
(cut/load-as-edn "test/ingress_test.yaml"))))
|