e2e

package
v1.9.11 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 22, 2024 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (

	// EnvInitContext used for test Env
	EnvInitContext = func(context string, envName string) bool {
		return ginkgo.It(context+": should print environment initiation successful message", func() {
			cli := fmt.Sprintf("vela env init %s", envName)
			var answer = "default"
			if envName != "env-application" {
				answer = "vela-system"
			}
			output, err := InteractiveExec(cli, func(c *expect.Console) {
				data := []struct {
					q, a string
				}{
					{
						q: "Would you like to choose an existing namespaces as your env?",
						a: answer,
					},
				}
				for _, qa := range data {
					_, err := c.ExpectString(qa.q)
					gomega.Expect(err).NotTo(gomega.HaveOccurred())
					_, err = c.SendLine(qa.a)
					gomega.Expect(err).NotTo(gomega.HaveOccurred())
				}
				c.ExpectEOF()
			})
			gomega.Expect(err).NotTo(gomega.HaveOccurred())
			expectedOutput := fmt.Sprintf("environment %s with namespace %s created", envName, answer)
			gomega.Expect(output).To(gomega.ContainSubstring(expectedOutput))
		})
	}

	EnvInitWithNamespaceOptionContext = func(context string, envName string, namespace string) bool {
		return ginkgo.It(context+": should print environment initiation successful message", func() {
			cli := fmt.Sprintf("vela env init %s --namespace %s", envName, namespace)
			output, err := Exec(cli)
			gomega.Expect(err).NotTo(gomega.HaveOccurred())
			expectedOutput := fmt.Sprintf("environment %s with namespace %s created", envName, namespace)
			gomega.Expect(output).To(gomega.ContainSubstring(expectedOutput))
		})
	}

	JsonAppFileContext = func(context, jsonAppFile string) bool {
		return ginkgo.It(context+": Start the application through the app file in JSON format.", func() {
			writeStatus := os.WriteFile("vela.json", []byte(jsonAppFile), 0644)
			gomega.Expect(writeStatus).NotTo(gomega.HaveOccurred())
			output, err := Exec("vela up -f vela.json")
			gomega.Expect(err).NotTo(gomega.HaveOccurred())
			gomega.Expect(output).NotTo(gomega.ContainSubstring("Error:"))
		})
	}

	JsonAppFileContextWithWait = func(context, jsonAppFile string) bool {
		return ginkgo.It(context+": Start the application through the app file in JSON format.", func() {
			writeStatus := os.WriteFile("vela.json", []byte(jsonAppFile), 0644)
			gomega.Expect(writeStatus).NotTo(gomega.HaveOccurred())
			output, err := Exec("vela up -f vela.json --wait")
			gomega.Expect(err).NotTo(gomega.HaveOccurred())
			gomega.Expect(output).To(gomega.ContainSubstring("Application Deployed Successfully!"))
		})
	}

	JsonAppFileContextWithTimeout = func(context, jsonAppFile, duration string) bool {
		return ginkgo.It(context+": Start the application through the app file in JSON format.", func() {
			writeStatus := os.WriteFile("vela.json", []byte(jsonAppFile), 0644)
			gomega.Expect(writeStatus).NotTo(gomega.HaveOccurred())
			output, err := Exec("vela up -f vela.json --wait --timeout=" + duration)
			gomega.Expect(err).NotTo(gomega.HaveOccurred())
			gomega.Expect(output).To(gomega.ContainSubstring("Timeout waiting Application to be healthy!"))
		})
	}

	DeleteEnvFunc = func(context string, envName string) bool {
		return ginkgo.It(context+": should print env does not exist message", func() {
			cli := fmt.Sprintf("vela env delete %s", envName)
			_, err := Exec(cli)
			gomega.Expect(err).NotTo(gomega.HaveOccurred())
		})
	}

	EnvShowContext = func(context string, envName string) bool {
		return ginkgo.It(context+": should show detailed environment message", func() {
			cli := fmt.Sprintf("vela env ls %s", envName)
			output, err := Exec(cli)
			gomega.Expect(err).NotTo(gomega.HaveOccurred())
			gomega.Expect(output).To(gomega.ContainSubstring("NAME"))
			gomega.Expect(output).To(gomega.ContainSubstring("NAMESPACE"))
			gomega.Expect(output).To(gomega.ContainSubstring(envName))
		})
	}

	EnvSetContext = func(context string, envName string) bool {
		return ginkgo.It(context+": should show environment set message", func() {
			cli := fmt.Sprintf("vela env sw %s", envName)
			output, err := Exec(cli)
			gomega.Expect(err).NotTo(gomega.HaveOccurred())
			gomega.Expect(output).To(gomega.ContainSubstring(envName))
		})
	}

	EnvDeleteContext = func(context string, envName string) bool {
		return ginkgo.It(context+": should delete an environment", 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))
		})
	}

	WorkloadDeleteContext = func(context string, applicationName string) bool {
		return ginkgo.It(context+": should print successful deletion information", func() {
			cli := fmt.Sprintf("vela delete %s -y", applicationName)
			output, err := Exec(cli)
			gomega.Expect(err).NotTo(gomega.HaveOccurred())
			gomega.Expect(output).To(gomega.ContainSubstring("succeeded"))
		})
	}

	WorkloadCapabilityListContext = func() bool {
		return ginkgo.It("list workload capabilities: should sync capabilities from cluster before listing workload capabilities", func() {
			output, err := Exec("vela components")
			gomega.Expect(err).NotTo(gomega.HaveOccurred())
			gomega.Expect(output).To(gomega.ContainSubstring("webservice"))
		})
	}

	TraitCapabilityListContext = func() bool {
		return ginkgo.It("list traits capabilities: should sync capabilities from cluster before listing trait capabilities", func() {
			output, err := Exec("vela traits")
			gomega.Expect(err).NotTo(gomega.HaveOccurred())
			gomega.Expect(output).To(gomega.ContainSubstring("scaler"))
		})
	}

	// ComponentListContext used for test vela svc ls
	ComponentListContext = func(context string, applicationName string, workloadType string, traitAlias string) bool {
		return ginkgo.It(context+": should list all applications", func() {
			output, err := Exec("vela ls")
			gomega.Expect(err).NotTo(gomega.HaveOccurred())
			gomega.Expect(output).To(gomega.ContainSubstring("COMPONENT"))
			gomega.Expect(output).To(gomega.ContainSubstring(applicationName))
			gomega.Expect(output).To(gomega.ContainSubstring(workloadType))
			if traitAlias != "" {
				gomega.Expect(output).To(gomega.ContainSubstring(traitAlias))
			}
		})
	}

	ShowCapabilityReference = func(context string, capabilityName string) bool {
		return ginkgo.It(context+": should show capability reference", func() {
			cli := fmt.Sprintf("vela show %s", capabilityName)
			_, err := Exec(cli)
			gomega.Expect(err).Should(gomega.BeNil())
		})
	}

	ShowCapabilityReferenceMarkdown = func(context string, capabilityName string) bool {
		return ginkgo.It(context+": should show capability reference in markdown", func() {
			cli := fmt.Sprintf("vela show %s --format=markdown", capabilityName)
			_, err := Exec(cli)
			gomega.Expect(err).Should(gomega.BeNil())
		})
	}
)

Functions

func BeforeSuit

func BeforeSuit()

func Exec

func Exec(cli string) (string, error)

Exec executes a command

func ExecAndTerminate added in v0.0.9

func ExecAndTerminate(cli string) (string, error)

ExecAndTerminate executes a long-running command and terminate it after 3s

func GetCliBinary

func GetCliBinary() string

GetCliBinary is to build kubevela binary.

func InteractiveExec added in v0.0.8

func InteractiveExec(cli string, consoleFn func(*expect.Console)) (string, error)

InteractiveExec executes a command with interactive input

func LongTimeExec added in v0.0.8

func LongTimeExec(cli string, timeout time.Duration) (string, error)

LongTimeExec executes a long-running command and wait it exits by itself

func LongTimeExecWithEnv added in v1.2.4

func LongTimeExecWithEnv(cli string, timeout time.Duration, env []string) (string, error)

Types

This section is empty.

Directories

Path Synopsis
addon

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL