Files
kubevela/e2e/commonContext.go
2020-08-14 15:51:51 +08:00

159 lines
5.8 KiB
Go

package e2e
import (
"fmt"
"github.com/onsi/ginkgo"
"github.com/onsi/gomega"
)
var (
// System
SystemInitContext = func(context string) bool {
return ginkgo.Context(context, func() {
ginkgo.It("Install OAM runtime and vela builtin capabilities.", func() {
output, err := Exec("vela system:init")
gomega.Expect(err).NotTo(gomega.HaveOccurred())
gomega.Expect(output).To(gomega.ContainSubstring("Install OAM Kubernetes Runtime"))
gomega.Expect(output).To(gomega.ContainSubstring("Apply builtin capabilities"))
gomega.Expect(output).To(gomega.ContainSubstring("Successful applied"))
})
})
}
// Refresh
RefreshContext = func(context string) bool {
return ginkgo.Context(context, func() {
ginkgo.It("Sync commands from your Kubernetes cluster and locally cached them", func() {
output, err := Exec("vela system:update")
gomega.Expect(err).NotTo(gomega.HaveOccurred())
gomega.Expect(output).To(gomega.ContainSubstring("syncing workload definitions from cluster..."))
gomega.Expect(output).To(gomega.ContainSubstring("successfully synced"))
})
})
}
// Env
EnvInitContext = func(context string, envName string) bool {
return ginkgo.Context(context, func() {
ginkgo.It("should print env initiation successful message", func() {
cli := fmt.Sprintf("vela env:init %s --namespace %s", envName, envName)
output, err := Exec(cli)
gomega.Expect(err).NotTo(gomega.HaveOccurred())
expectedOutput := fmt.Sprintf("Create env succeed, current env is %s", envName)
gomega.Expect(output).To(gomega.ContainSubstring(expectedOutput))
})
})
}
EnvShowContext = func(context string, envName string) bool {
return ginkgo.Context(context, func() {
ginkgo.It("should show detailed env message", func() {
cli := fmt.Sprintf("vela env %s", envName)
output, err := Exec(cli)
gomega.Expect(err).NotTo(gomega.HaveOccurred())
expectedOutput := fmt.Sprintf("%s\t%s", envName, envName)
gomega.Expect(output).To(gomega.ContainSubstring("NAME"))
gomega.Expect(output).To(gomega.ContainSubstring("NAMESPACE"))
gomega.Expect(output).To(gomega.ContainSubstring(expectedOutput))
})
})
}
EnvSwitchContext = func(context string, envName string) bool {
return ginkgo.Context(context, func() {
ginkgo.It("should show env switch message", func() {
cli := fmt.Sprintf("vela env:sw %s", envName)
output, err := Exec(cli)
gomega.Expect(err).NotTo(gomega.HaveOccurred())
expectedOutput := fmt.Sprintf("Switch env succeed, current env is %s", envName)
gomega.Expect(output).To(gomega.ContainSubstring(expectedOutput))
})
})
}
EnvDeleteContext = func(context string, envName string) bool {
return ginkgo.Context(context, func() {
ginkgo.It("should delete all envs", func() {
cli := fmt.Sprintf("vela env:delete %s", envName)
output, err := Exec(cli)
gomega.Expect(err).NotTo(gomega.HaveOccurred())
expectedOutput := fmt.Sprintf("%s deleted", envName)
gomega.Expect(output).To(gomega.ContainSubstring(expectedOutput))
})
})
}
EnvDeleteCurrentUsingContext = func(context string, envName string) bool {
return ginkgo.Context(context, func() {
ginkgo.It("should delete all envs", func() {
cli := fmt.Sprintf("vela env:delete %s", envName)
output, err := Exec(cli)
gomega.Expect(err).NotTo(gomega.HaveOccurred())
expectedOutput := fmt.Sprintf("Error: you can't delete current using env %s", envName)
gomega.Expect(output).To(gomega.ContainSubstring(expectedOutput))
})
})
}
//Workload
WorkloadRunContext = func(context string, cli string) bool {
return ginkgo.Context(context, func() {
ginkgo.It("should print successful creation information", func() {
output, err := Exec(cli)
gomega.Expect(err).NotTo(gomega.HaveOccurred())
gomega.Expect(output).To(gomega.ContainSubstring("SUCCEED"))
})
})
}
WorkloadDeleteContext = func(context string, applicationName string) bool {
return ginkgo.Context(context, func() {
ginkgo.It("should print successful deletion information", func() {
cli := fmt.Sprintf("vela app:delete %s", applicationName)
output, err := Exec(cli)
gomega.Expect(err).NotTo(gomega.HaveOccurred())
gomega.Expect(output).To(gomega.ContainSubstring("DELETE SUCCEED"))
})
})
}
// Trait
TraitManualScalerAttachContext = func(context string, traitAlias string, applicationName string) bool {
return ginkgo.Context(context, func() {
ginkgo.It("should print successful attached information", func() {
cli := fmt.Sprintf("vela %s %s", traitAlias, applicationName)
output, err := Exec(cli)
gomega.Expect(err).NotTo(gomega.HaveOccurred())
gomega.Expect(output).To(gomega.ContainSubstring("Adding " + traitAlias + " for app"))
gomega.Expect(output).To(gomega.ContainSubstring("Succeeded"))
})
})
}
// Application
ApplicationListContext = func(context string, applicationName string, traitAlias string) bool {
return ginkgo.Context("ls", func() {
ginkgo.It("should list all applications", func() {
output, err := Exec("vela app:ls")
gomega.Expect(err).NotTo(gomega.HaveOccurred())
gomega.Expect(output).To(gomega.ContainSubstring("NAME"))
gomega.Expect(output).To(gomega.ContainSubstring(applicationName))
if traitAlias != "" {
gomega.Expect(output).To(gomega.ContainSubstring(traitAlias))
}
})
})
}
ApplicationStatusContext = func(context string, applicationName string) bool {
return ginkgo.Context(context, func() {
ginkgo.It("should get status for the application", func() {
cli := fmt.Sprintf("vela app:status %s", applicationName)
output, err := Exec(cli)
gomega.Expect(err).NotTo(gomega.HaveOccurred())
gomega.Expect(output).To(gomega.ContainSubstring(applicationName))
gomega.Expect(output).To(gomega.ContainSubstring("Workload"))
})
})
}
)