Skip to content
This repository has been archived by the owner on Oct 24, 2023. It is now read-only.

Commit

Permalink
test: ensure static variable is reset after each tests
Browse files Browse the repository at this point in the history
  • Loading branch information
serbrech committed Mar 1, 2019
1 parent e35e77e commit b9c1406
Showing 1 changed file with 23 additions and 9 deletions.
32 changes: 23 additions & 9 deletions cmd/upgrade_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,17 @@ import (
"github.com/spf13/cobra"
)

var validVersionsBackup map[string]bool

func setupValidVersions(validVersions map[string]bool) {
validVersionsBackup = common.AllKubernetesSupportedVersions
common.AllKubernetesSupportedVersions = validVersions
}

func resetValidVersions() {
common.AllKubernetesSupportedVersions = validVersionsBackup
}

func TestUpgradeCommandShouldBeValidated(t *testing.T) {
g := NewGomegaWithT(t)
r := &cobra.Command{}
Expand Down Expand Up @@ -110,11 +121,10 @@ func TestCreateUpgradeCommandSuccesfully(t *testing.T) {
g.Expect(output.Flags().Lookup("upgrade-version")).NotTo(BeNil())
}

//TODO: Should it fail or should it pass without --force? hmm
func TestUpgradeShouldFailForSameVersion(t *testing.T) {
common.AllKubernetesSupportedVersions = map[string]bool{
setupValidVersions(map[string]bool{
"1.10.13": true,
}
})
fakeARMTemplateHandle := strings.NewReader(`{"parameters" : { "nameSuffix" : {"defaultValue" : "test"}}}`)
g := NewGomegaWithT(t)
upgradeCmd := &upgradeCmd{
Expand All @@ -133,13 +143,14 @@ func TestUpgradeShouldFailForSameVersion(t *testing.T) {
err := upgradeCmd.validateCurrentLocalState(fakeARMTemplateHandle)
g.Expect(err).To(HaveOccurred())
g.Expect(err.Error()).To(ContainSubstring("upgrading from Kubernetes version 1.10.13 to version 1.10.13 is not supported"))
resetValidVersions()
}

func TestUpgradeShouldFailForInvalidUpgradePath(t *testing.T) {
common.AllKubernetesSupportedVersions = map[string]bool{
setupValidVersions(map[string]bool{
"1.10.13": false,
"1.10.12": true,
}
})
fakeARMTemplateHandle := strings.NewReader(`{"parameters" : { "nameSuffix" : {"defaultValue" : "test"}}}`)
g := NewGomegaWithT(t)
upgradeCmd := &upgradeCmd{
Expand All @@ -158,12 +169,13 @@ func TestUpgradeShouldFailForInvalidUpgradePath(t *testing.T) {
err := upgradeCmd.validateCurrentLocalState(fakeARMTemplateHandle)
g.Expect(err).To(HaveOccurred())
g.Expect(err.Error()).To(ContainSubstring("upgrading from Kubernetes version 1.10.12 to version 1.10.13 is not supported"))
resetValidVersions()
}
func TestUpgradeShouldSuceedForValidUpgradePath(t *testing.T) {
common.AllKubernetesSupportedVersions = map[string]bool{
setupValidVersions(map[string]bool{
"1.10.13": true,
"1.10.12": true,
}
})
fakeARMTemplateHandle := strings.NewReader(`{"parameters" : { "nameSuffix" : {"defaultValue" : "test"}}}`)
g := NewGomegaWithT(t)
upgradeCmd := &upgradeCmd{
Expand All @@ -181,6 +193,7 @@ func TestUpgradeShouldSuceedForValidUpgradePath(t *testing.T) {
upgradeCmd.containerService = containerServiceMock
err := upgradeCmd.validateCurrentLocalState(fakeARMTemplateHandle)
g.Expect(err).NotTo(HaveOccurred())
resetValidVersions()
}

func TestUpgradeFailWithPathWhenAzureDeployJsonIsInvalid(t *testing.T) {
Expand All @@ -204,9 +217,9 @@ func TestUpgradeFailWithPathWhenAzureDeployJsonIsInvalid(t *testing.T) {
g.Expect(err.Error()).To(ContainSubstring("_output/myspecialtestfolder/azuredeploy.json"))
}
func TestUpgradeForceSameVersionShouldSucceed(t *testing.T) {
common.AllKubernetesSupportedVersions = map[string]bool{
setupValidVersions(map[string]bool{
"1.10.13": false,
}
})
fakeARMTemplateHandle := strings.NewReader(`{"parameters" : { "nameSuffix" : {"defaultValue" : "test"}}}`)
g := NewGomegaWithT(t)
upgradeCmd := &upgradeCmd{
Expand All @@ -225,4 +238,5 @@ func TestUpgradeForceSameVersionShouldSucceed(t *testing.T) {
upgradeCmd.force = true
err := upgradeCmd.validateCurrentLocalState(fakeARMTemplateHandle)
g.Expect(err).NotTo(HaveOccurred())
resetValidVersions()
}

0 comments on commit b9c1406

Please sign in to comment.