blob: 1d7552ab8eab8e687c6102e7cef4341131bebb01 [file] [log] [blame]
Giorgi Lekveishvili7c427602024-01-04 00:13:55 +04001package installer
2
3import (
Giorgi Lekveishvili7c427602024-01-04 00:13:55 +04004 "testing"
Giorgi Lekveishvili7c427602024-01-04 00:13:55 +04005)
6
Giorgi Lekveishvili67383962024-03-22 19:27:34 +04007func TestAuthProxyEnabled(t *testing.T) {
Giorgi Lekveishvili186eae52024-02-15 14:21:41 +04008 r := NewInMemoryAppRepository(CreateAllApps())
Giorgi Lekveishvili67383962024-03-22 19:27:34 +04009 for _, app := range []string{"rpuppy", "Pi-hole", "url-shortener"} {
10 a, err := r.Find(app)
11 if err != nil {
12 t.Fatal(err)
13 }
14 if a == nil {
15 t.Fatal("returned app is nil")
16 }
17 d := Derived{
18 Release: Release{
19 Namespace: "foo",
20 },
21 Global: Values{
22 PCloudEnvName: "dodo",
23 Id: "id",
24 ContactEmail: "foo@bar.ge",
25 Domain: "bar.ge",
26 PrivateDomain: "p.bar.ge",
27 PublicIP: "1.2.3.4",
28 NamespacePrefix: "id-",
29 },
30 Values: map[string]any{
31 "network": map[string]any{
32 "name": "Public",
33 "ingressClass": "dodo-ingress-public",
34 "certificateIssuer": "id-public",
35 "domain": "bar.ge",
36 },
37 "subdomain": "woof",
38 "auth": map[string]any{
39 "enabled": true,
40 "groups": "a,b",
41 },
42 },
43 }
44 rendered, err := a.Render(d)
45 if err != nil {
46 t.Fatal(err)
47 }
48 for _, r := range rendered.Resources {
49 t.Log(string(r))
50 }
51 }
52}
53
54func TestAuthProxyDisabled(t *testing.T) {
55 r := NewInMemoryAppRepository(CreateAllApps())
56 for _, app := range []string{"rpuppy", "Pi-hole", "url-shortener"} {
57 a, err := r.Find(app)
58 if err != nil {
59 t.Fatal(err)
60 }
61 if a == nil {
62 t.Fatal("returned app is nil")
63 }
64 d := Derived{
65 Release: Release{
66 Namespace: "foo",
67 },
68 Global: Values{
69 PCloudEnvName: "dodo",
70 Id: "id",
71 ContactEmail: "foo@bar.ge",
72 Domain: "bar.ge",
73 PrivateDomain: "p.bar.ge",
74 PublicIP: "1.2.3.4",
75 NamespacePrefix: "id-",
76 },
77 Values: map[string]any{
78 "network": map[string]any{
79 "name": "Public",
80 "ingressClass": "dodo-ingress-public",
81 "certificateIssuer": "id-public",
82 "domain": "bar.ge",
83 },
84 "subdomain": "woof",
85 "auth": map[string]any{
86 "enabled": false,
87 },
88 },
89 }
90 rendered, err := a.Render(d)
91 if err != nil {
92 t.Fatal(err)
93 }
94 for _, r := range rendered.Resources {
95 t.Log(string(r))
96 }
97 }
98}
99
100func TestGroupMemberships(t *testing.T) {
101 r := NewInMemoryAppRepository(CreateAllApps())
102 a, err := r.Find("memberships")
Giorgi Lekveishvili7c427602024-01-04 00:13:55 +0400103 if err != nil {
Giorgi Lekveishvili186eae52024-02-15 14:21:41 +0400104 t.Fatal(err)
Giorgi Lekveishvili7c427602024-01-04 00:13:55 +0400105 }
Giorgi Lekveishvili186eae52024-02-15 14:21:41 +0400106 if a == nil {
107 t.Fatal("returned app is nil")
Giorgi Lekveishvili7c427602024-01-04 00:13:55 +0400108 }
Giorgi Lekveishvili67383962024-03-22 19:27:34 +0400109 d := Derived{
110 Release: Release{
111 Namespace: "foo",
112 },
113 Global: Values{
114 PCloudEnvName: "dodo",
115 Id: "id",
116 ContactEmail: "foo@bar.ge",
117 Domain: "bar.ge",
118 PrivateDomain: "p.bar.ge",
119 PublicIP: "1.2.3.4",
120 NamespacePrefix: "id-",
121 },
122 Values: map[string]any{},
123 }
124 rendered, err := a.Render(d)
125 if err != nil {
126 t.Fatal(err)
127 }
128 for _, r := range rendered.Resources {
129 t.Log(string(r))
130 }
Giorgi Lekveishvili7c427602024-01-04 00:13:55 +0400131}
Giorgi Lekveishviliee15ee22024-03-28 12:35:10 +0400132
133func TestGerrit(t *testing.T) {
134 r := NewInMemoryAppRepository(CreateAllApps())
135 a, err := r.Find("gerrit")
136 if err != nil {
137 t.Fatal(err)
138 }
139 if a == nil {
140 t.Fatal("returned app is nil")
141 }
142 d := Derived{
143 Release: Release{
144 Namespace: "foo",
145 },
146 Global: Values{
147 PCloudEnvName: "dodo",
148 Id: "id",
149 ContactEmail: "foo@bar.ge",
150 Domain: "bar.ge",
151 PrivateDomain: "p.bar.ge",
152 PublicIP: "1.2.3.4",
153 NamespacePrefix: "id-",
154 },
155 Values: map[string]any{
156 "subdomain": "gerrit",
157 "network": map[string]any{
Giorgi Lekveishvilib59b7c22024-04-03 22:17:50 +0400158 "name": "Private",
159 "ingressClass": "id-ingress-private",
160 "domain": "p.bar.ge",
161 "allocatePortAddr": "http://foo.bar/api/allocate",
Giorgi Lekveishviliee15ee22024-03-28 12:35:10 +0400162 },
Giorgi Lekveishvilib6a58062024-04-02 16:49:19 +0400163 "key": map[string]any{
164 "public": "foo",
165 "private": "bar",
166 },
Giorgi Lekveishvilib59b7c22024-04-03 22:17:50 +0400167 "sshPort": 22,
Giorgi Lekveishviliee15ee22024-03-28 12:35:10 +0400168 },
169 }
170 rendered, err := a.Render(d)
171 if err != nil {
172 t.Fatal(err)
173 }
174 for _, r := range rendered.Resources {
175 t.Log(string(r))
176 }
177}