Skip to content

Commit

Permalink
Move the resetting logic into framework
Browse files Browse the repository at this point in the history
Stylistic fixes based on feedback
  • Loading branch information
Andrew Louis committed Apr 18, 2018
1 parent 19337f0 commit 444914b
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 47 deletions.
31 changes: 19 additions & 12 deletions test/e2e/framework/framework.go
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,9 @@ type Framework struct {
// should abort, the AfterSuite hook should run all Cleanup actions.
cleanupHandle CleanupActionHandle

// Map to hold the default nginx-configuration configmap data before a test run
DefaultNginxConfigMapData map[string]string

NginxHTTPURL string
NginxHTTPSURL string
}
Expand All @@ -69,7 +72,8 @@ type Framework struct {
// you (you can write additional before/after each functions).
func NewDefaultFramework(baseName string) *Framework {
f := &Framework{
BaseName: baseName,
BaseName: baseName,
DefaultNginxConfigMapData: nil,
}

BeforeEach(f.BeforeEach)
Expand Down Expand Up @@ -101,6 +105,13 @@ func (f *Framework) BeforeEach() {
By("Building NGINX HTTPS URL")
f.NginxHTTPSURL, err = f.GetNginxURL(HTTPS)
Expect(err).NotTo(HaveOccurred())

By("Persist nginx-configuration configMap Data")
if f.DefaultNginxConfigMapData == nil {
f.DefaultNginxConfigMapData, err = f.GetNginxConfigMapData()
Expect(err).NotTo(HaveOccurred())
Expect(f.DefaultNginxConfigMapData).NotTo(BeNil())
}
}

// AfterEach deletes the namespace, after reading its events.
Expand All @@ -114,6 +125,10 @@ func (f *Framework) AfterEach() {
By("Waiting for test namespace to no longer exist")
err = WaitForNoPodsInNamespace(f.KubeClientSet, f.Namespace.Name)
Expect(err).NotTo(HaveOccurred())

By("Reset nginx-configuration configMap to default state")
err = f.SetNginxConfigMapData(f.DefaultNginxConfigMapData)
Expect(err).NotTo(HaveOccurred())
}

// IngressNginxDescribe wrapper function for ginkgo describe. Adds namespacing.
Expand Down Expand Up @@ -259,8 +274,7 @@ func (f *Framework) matchNginxConditions(name string, matcher func(cfg string) b
}
}

// GetNginxConfigMap gets ingress-nginx's nginx-configuration map
func (f *Framework) GetNginxConfigMap() (*v1.ConfigMap, error) {
func (f *Framework) getNginxConfigMap() (*v1.ConfigMap, error) {
if f.KubeClientSet == nil {
return nil, fmt.Errorf("KubeClientSet not initialized")
}
Expand All @@ -270,22 +284,15 @@ func (f *Framework) GetNginxConfigMap() (*v1.ConfigMap, error) {
return nil, err
}

time.Sleep(1 * time.Second)
return config, err
}

// GetNginxConfigMapData gets ingress-nginx's nginx-configuration map's data
func (f *Framework) GetNginxConfigMapData() (map[string]string, error) {
config, err := f.GetNginxConfigMap()

config, err := f.getNginxConfigMap()
if err != nil {
return nil, err
}

if config == nil {
return nil, fmt.Errorf("Unable to get nginx-configuration configMap")
}

if config.Data == nil {
config.Data = map[string]string{}
}
Expand All @@ -297,7 +304,7 @@ func (f *Framework) GetNginxConfigMapData() (map[string]string, error) {
func (f *Framework) SetNginxConfigMapData(cmData map[string]string) error {
// Needs to do a Get and Set, Update will not take just the Data field
// or a configMap that is not the very last revision
config, err := f.GetNginxConfigMap()
config, err := f.getNginxConfigMap()
if err != nil {
return err
}
Expand Down
15 changes: 3 additions & 12 deletions test/e2e/settings/no_auth_locations.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,6 @@ var _ = framework.IngressNginxDescribe("No Auth locations", func() {
secretName := "test-secret"
host := "no-auth-locations"
noAuthPath := "/noauth"
var defaultNginxConfigMapData map[string]string = nil

BeforeEach(func() {
err := f.NewEchoDeployment()
Expand All @@ -52,24 +51,16 @@ var _ = framework.IngressNginxDescribe("No Auth locations", func() {
Expect(s).NotTo(BeNil())
Expect(s.ObjectMeta).NotTo(BeNil())

err = f.UpdateNginxConfigMapData(setting, noAuthPath)
Expect(err).NotTo(HaveOccurred())

bi := buildBasicAuthIngressWithSecondPath(host, f.Namespace.Name, s.Name, noAuthPath)
ing, err := f.EnsureIngress(bi)
Expect(err).NotTo(HaveOccurred())
Expect(ing).NotTo(BeNil())

if defaultNginxConfigMapData == nil {
defaultNginxConfigMapData, err = f.GetNginxConfigMapData()
Expect(err).NotTo(HaveOccurred())
Expect(defaultNginxConfigMapData).NotTo(BeNil())
}

err = f.UpdateNginxConfigMapData(setting, noAuthPath)
Expect(err).NotTo(HaveOccurred())
})

AfterEach(func() {
err := f.SetNginxConfigMapData(defaultNginxConfigMapData)
Expect(err).NotTo(HaveOccurred())
})

It("should return status code 401 when accessing '/' unauthentication", func() {
Expand Down
9 changes: 0 additions & 9 deletions test/e2e/settings/proxy_protocol.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,25 +35,16 @@ var _ = framework.IngressNginxDescribe("Proxy Protocol", func() {
f := framework.NewDefaultFramework("proxy-protocol")

setting := "use-proxy-protocol"
var defaultNginxConfigMapData map[string]string = nil

BeforeEach(func() {
err := f.NewEchoDeployment()
Expect(err).NotTo(HaveOccurred())

if defaultNginxConfigMapData == nil {
defaultNginxConfigMapData, err = f.GetNginxConfigMapData()
Expect(err).NotTo(HaveOccurred())
Expect(defaultNginxConfigMapData).NotTo(BeNil())
}

err = f.UpdateNginxConfigMapData(setting, "false")
Expect(err).NotTo(HaveOccurred())
})

AfterEach(func() {
err := f.SetNginxConfigMapData(defaultNginxConfigMapData)
Expect(err).NotTo(HaveOccurred())
})

It("should respect port passed by the PROXY Protocol", func() {
Expand Down
14 changes: 0 additions & 14 deletions test/e2e/settings/server_tokens.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,32 +31,18 @@ import (
var _ = framework.IngressNginxDescribe("Server Tokens", func() {
f := framework.NewDefaultFramework("server-tokens")
serverTokens := "server-tokens"
var defaultNginxConfigMapData map[string]string = nil

BeforeEach(func() {
err := f.NewEchoDeployment()
Expect(err).NotTo(HaveOccurred())

if defaultNginxConfigMapData == nil {
defaultNginxConfigMapData, err = f.GetNginxConfigMapData()
Expect(err).NotTo(HaveOccurred())
Expect(defaultNginxConfigMapData).NotTo(BeNil())
}
})

AfterEach(func() {
err := f.SetNginxConfigMapData(defaultNginxConfigMapData)
Expect(err).NotTo(HaveOccurred())
})

<<<<<<< HEAD
It("should not exist Server header in the response", func() {
updateConfigmap(serverTokens, "false", f.KubeClientSet)
=======
It("should not exists Server header in the response", func() {
err := f.UpdateNginxConfigMapData(serverTokens, "false")
Expect(err).NotTo(HaveOccurred())
>>>>>>> Introduce ConfigMap updating helpers into e2e/framework and retain default nginx-configuration state between tests

ing, err := f.EnsureIngress(&v1beta1.Ingress{
ObjectMeta: metav1.ObjectMeta{
Expand Down

0 comments on commit 444914b

Please sign in to comment.