Skip to content

Commit df1ba8a

Browse files
committed
Added test for configmap generation
1 parent a30b8d7 commit df1ba8a

File tree

3 files changed

+47
-11
lines changed

3 files changed

+47
-11
lines changed

internal/controller/configmaps.go

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,18 @@ func mutateConfigMap[R Reconciler, O pdoknlv3.WMSWFS](r R, obj O, configMap *cor
117117
configMap.Immutable = smoothoperatorutils.Pointer(true)
118118
configMap.Data = map[string]string{}
119119

120+
updateConfigMapWithStaticFiles(configMap, obj)
121+
122+
if err := smoothoperatorutils.EnsureSetGVK(reconcilerClient, configMap, configMap); err != nil {
123+
return err
124+
}
125+
if err := ctrl.SetControllerReference(obj, configMap, getReconcilerScheme(r)); err != nil {
126+
return err
127+
}
128+
return smoothoperatorutils.AddHashSuffix(configMap)
129+
}
130+
131+
func updateConfigMapWithStaticFiles[O pdoknlv3.WMSWFS](configMap *corev1.ConfigMap, obj O) {
120132
staticFileName, contents := static.GetStaticFiles()
121133
for _, name := range staticFileName {
122134
content := contents[name]
@@ -132,12 +144,4 @@ func mutateConfigMap[R Reconciler, O pdoknlv3.WMSWFS](r R, obj O, configMap *cor
132144
}
133145
configMap.Data[name] = string(content)
134146
}
135-
136-
if err := smoothoperatorutils.EnsureSetGVK(reconcilerClient, configMap, configMap); err != nil {
137-
return err
138-
}
139-
if err := ctrl.SetControllerReference(obj, configMap, getReconcilerScheme(r)); err != nil {
140-
return err
141-
}
142-
return smoothoperatorutils.AddHashSuffix(configMap)
143147
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package controller
2+
3+
import (
4+
"os"
5+
"testing"
6+
7+
pdoknlv3 "github.com/pdok/mapserver-operator/api/v3"
8+
"github.com/pdok/mapserver-operator/internal/controller/constants"
9+
"github.com/stretchr/testify/assert"
10+
v1 "k8s.io/api/core/v1"
11+
"sigs.k8s.io/yaml"
12+
)
13+
14+
func TestMapserverConfigMaps(t *testing.T) {
15+
wfsBytes, err := os.ReadFile("test_data/wfs/complete/input/wfs.yaml")
16+
assert.NoError(t, err)
17+
o := &pdoknlv3.WFS{}
18+
err = yaml.Unmarshal(wfsBytes, o)
19+
assert.NoError(t, err)
20+
generatedConfigMap := getBareConfigMap(o, constants.MapserverName)
21+
generatedConfigMap.Data = make(map[string]string)
22+
updateConfigMapWithStaticFiles(generatedConfigMap, o)
23+
24+
expectedConfigMap := v1.ConfigMap{}
25+
expectedBytes, err := os.ReadFile("test_data/wfs/complete/expected/configmap-mapserver.yaml")
26+
err = yaml.Unmarshal(expectedBytes, &expectedConfigMap)
27+
assert.NoError(t, err)
28+
29+
assert.Equal(t, expectedConfigMap.Data, generatedConfigMap.Data)
30+
}

internal/controller/test_data/wfs/complete/expected/configmap-mapserver.yaml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ data:
99
MAP "/srv/data/config/mapfile/service.map"
1010
END
1111
END
12-
include.conf: |-
12+
include.conf: |
1313
server.modules += ( "mod_status" )
1414
1515
$HTTP["remoteip"] =~ "^(127\.0\.0\.1|172\.(1[6-9]|2[0-9]|3[01])\.|10\.|192\.168\.)" {
@@ -18,7 +18,9 @@ data:
1818
1919
url.rewrite-once = (
2020
"/datasetOwner/dataset/theme/wfs/v1_0/legend(.*)" => "/legend$1",
21-
"/datasetOwner/dataset/theme/wfs/v1_0(.*)" => "/mapserver$1"
21+
"/datasetOwner/dataset/theme/wfs/v1_0/(.*)" => "/mapserver$1",
22+
"/other/path/legend(.*)" => "/legend$1",
23+
"/other/path/(.*)" => "/mapserver$1"
2224
)
2325
2426
magnet.attract-raw-url-to += ( "/srv/mapserver/config/ogc.lua" )
@@ -110,7 +112,7 @@ data:
110112
end
111113
end
112114
end
113-
scraping-error.xml: |-
115+
scraping-error.xml: |
114116
<?xml version="1.0" encoding="UTF-8"?>
115117
<ows:ExceptionReport xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ows="http://www.opengis.net/ows/1.1" version="2.0.0" xml:lang="en-US" xsi:schemaLocation="http://www.opengis.net/ows/1.1 http://schemas.opengis.net/ows/1.1.0/owsExceptionReport.xsd">
116118
<ows:Exception exceptionCode="InvalidParameterValue" locator="typename">

0 commit comments

Comments
 (0)