first import
This commit is contained in:
59
charts/common/tests/controller_test.go
Normal file
59
charts/common/tests/controller_test.go
Normal file
@@ -0,0 +1,59 @@
|
||||
package common
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/k8s-at-home/library-charts/test/helmunit"
|
||||
"github.com/stretchr/testify/suite"
|
||||
)
|
||||
|
||||
type ControllerTestSuite struct {
|
||||
suite.Suite
|
||||
Chart helmunit.HelmChart
|
||||
}
|
||||
|
||||
func (suite *ControllerTestSuite) SetupSuite() {
|
||||
suite.Chart = helmunit.New("common-test", "../../../../helper-charts/common-test")
|
||||
suite.Chart.UpdateDependencies()
|
||||
}
|
||||
|
||||
// We need this function to kick off the test suite, otherwise
|
||||
// "go test" won't know about our tests
|
||||
func TestController(t *testing.T) {
|
||||
suite.Run(t, new(ControllerTestSuite))
|
||||
}
|
||||
|
||||
func (suite *ControllerTestSuite) TestTypes() {
|
||||
tests := map[string]struct {
|
||||
values []string
|
||||
expectedRenderFailure bool
|
||||
expectedController string
|
||||
}{
|
||||
"Default": {values: nil, expectedRenderFailure: false, expectedController: "deployment"},
|
||||
"DaemonSet": {values: []string{"controller.type=daemonset"}, expectedRenderFailure: false, expectedController: "daemonset"},
|
||||
"Deployment": {values: []string{"controller.type=deployment"}, expectedRenderFailure: false, expectedController: "deployment"},
|
||||
"StatefulSet": {values: []string{"controller.type=statefulset"}, expectedRenderFailure: false, expectedController: "statefulset"},
|
||||
"Custom": {values: []string{"controller.type=custom"}, expectedRenderFailure: true, expectedController: ""},
|
||||
}
|
||||
for name, tc := range tests {
|
||||
suite.Suite.Run(name, func() {
|
||||
err := suite.Chart.Render(nil, tc.values, nil)
|
||||
if tc.expectedRenderFailure {
|
||||
suite.Assertions.Error(err)
|
||||
return
|
||||
}
|
||||
if err != nil {
|
||||
suite.FailNow(err.Error())
|
||||
}
|
||||
|
||||
manifest := suite.Chart.Manifests.Get(tc.expectedController, "common-test")
|
||||
suite.Assertions.NotEmpty(manifest)
|
||||
|
||||
types := map[string]interface{}{"deployment": nil, "statefulset": nil, "daemonset": nil}
|
||||
delete(types, tc.expectedController)
|
||||
for k := range types {
|
||||
suite.Assertions.Empty(suite.Chart.Manifests.Get(k, "common-test"))
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user