Adding API defaults unit test + testfile fixture

Signed-off-by: Jason Costello <jason@jsnc.tl>
This commit is contained in:
Jason Costello 2024-04-08 18:24:00 -04:00
parent b61de55abd
commit a7e5df7182
4 changed files with 68 additions and 0 deletions

View File

@ -0,0 +1,40 @@
package v1alpha1
import (
"encoding/json"
"github.com/cert-manager/cert-manager/pkg/apis/config/cainjector/v1alpha1"
"os"
"reflect"
"testing"
)
func TestCAInjectorConfigurationDefaults(t *testing.T) {
tests := []struct {
name string
config *v1alpha1.CAInjectorConfiguration
}{
{
"cainjection",
&v1alpha1.CAInjectorConfiguration{},
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
SetObjectDefaults_CAInjectorConfiguration(tt.config)
var expected *v1alpha1.CAInjectorConfiguration
expectedData, err := os.ReadFile("./test/defaults.json")
err = json.Unmarshal(expectedData, &expected)
if err != nil {
t.Errorf("testfile not found")
}
if !reflect.DeepEqual(tt.config, expected) {
prettyExpected, _ := json.MarshalIndent(expected, "", "\t")
prettyGot, _ := json.MarshalIndent(tt.config, "", "\t")
t.Errorf("expected defaults\n %v \n but got \n %v", string(prettyExpected), string(prettyGot))
}
})
}
}

View File

@ -0,0 +1,23 @@
package main
import (
"encoding/json"
"fmt"
v1alpha1_pkg "github.com/cert-manager/cert-manager/internal/apis/config/cainjector/v1alpha1"
"github.com/cert-manager/cert-manager/pkg/apis/config/cainjector/v1alpha1"
"os"
)
func main() {
config := &v1alpha1.CAInjectorConfiguration{}
v1alpha1_pkg.SetObjectDefaults_CAInjectorConfiguration(config)
data, err := json.Marshal(config)
if err != nil {
panic(err)
}
err = os.WriteFile("./defaults.json", data, 0644)
if err != nil {
panic(err)
}
fmt.Println("cainjector api defaults updated")
}

View File

@ -0,0 +1 @@
{"leaderElectionConfig":{"enabled":true,"namespace":"kube-system","leaseDuration":60000000000,"renewDeadline":40000000000,"retryPeriod":15000000000},"enableDataSourceConfig":{"certificates":true},"enableInjectableConfig":{"validatingWebhookConfigurations":true,"mutatingWebhookConfigurations":true,"customResourceDefinitions":true,"apiServices":true},"enablePprof":false,"pprofAddress":"localhost:6060","logging":{"format":"text","flushFrequency":"5s","verbosity":0,"options":{"json":{"infoBufferSize":"0"}}}}

View File

@ -87,6 +87,10 @@ unit-test-controller: | $(NEEDS_GOTESTSUM)
unit-test-webhook: | $(NEEDS_GOTESTSUM)
cd cmd/webhook && $(GOTESTSUM) ./...
.PHONY: update-apidefaults-cainjector
update-apidefaults-cainjector:
cd internal/apis/config/cainjector/v1alpha1/test && bash -c "$(GO) run apidefaults.go"
.PHONY: setup-integration-tests
setup-integration-tests: templated-crds