-
Notifications
You must be signed in to change notification settings - Fork 20
refactor(e2e): test suite to use ginkgo.Describe #569
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 9 commits
d78fcec
8f96e7b
92e6374
6ab30ea
dc8f20e
c258ba6
ac3f892
2b4b7f8
2b3d309
d1c0444
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Large diffs are not rendered by default.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -2,7 +2,6 @@ package integration | |
|
|
||
| import ( | ||
| "context" | ||
| "fmt" | ||
| "os" | ||
| "os/exec" | ||
| "path/filepath" | ||
|
|
@@ -11,21 +10,21 @@ import ( | |
| "github.com/skevetter/devpod/e2e/framework" | ||
| ) | ||
|
|
||
| var _ = ginkgo.Describe("[integration]: devpod provider ssh test suite", ginkgo.Ordered, func() { | ||
| ginkgo.Context( | ||
| "testing provider integration", | ||
| ginkgo.Label("integration"), | ||
| ginkgo.Ordered, | ||
| func() { | ||
| var initialDir string | ||
|
|
||
| ginkgo.BeforeEach(func() { | ||
| var err error | ||
| initialDir, err = os.Getwd() | ||
| framework.ExpectNoError(err) | ||
| }) | ||
|
|
||
| ginkgo.It("should generate ssh keypairs", func(ctx context.Context) { | ||
| var _ = ginkgo.Describe( | ||
| "devpod provider ssh test suite", | ||
| ginkgo.Label("integration"), | ||
| func() { | ||
| var initialDir string | ||
|
|
||
| ginkgo.BeforeEach(func() { | ||
| var err error | ||
| initialDir, err = os.Getwd() | ||
| framework.ExpectNoError(err) | ||
| }) | ||
|
|
||
| ginkgo.It( | ||
| "should setup ssh, add provider, run workspace, test ssh, and cleanup", | ||
| func(ctx context.Context) { | ||
| sshDir := os.Getenv("HOME") + "/.ssh" | ||
| if _, err := os.Stat(sshDir); os.IsNotExist(err) { | ||
| err = os.MkdirAll(sshDir, 0o700) | ||
|
|
@@ -38,7 +37,7 @@ var _ = ginkgo.Describe("[integration]: devpod provider ssh test suite", ginkgo. | |
|
|
||
| _, err := os.Stat(sshKeyPath) | ||
| if err != nil { | ||
| fmt.Println("generating ssh keys") | ||
| ginkgo.GinkgoWriter.Println("generating ssh keys") | ||
| // #nosec G204 -- ssh-keygen with fixed arguments for test setup | ||
| cmd := exec.CommandContext( | ||
| ctx, | ||
|
|
@@ -69,51 +68,33 @@ var _ = ginkgo.Describe("[integration]: devpod provider ssh test suite", ginkgo. | |
| framework.ExpectNoError(err) | ||
|
|
||
| authorizedKeysPath := filepath.Join(homeDir, ".ssh", "authorized_keys") | ||
| _, err = os.Stat(authorizedKeysPath) | ||
| if err != nil { | ||
| err = os.WriteFile(authorizedKeysPath, publicKey, 0o600) | ||
| framework.ExpectNoError(err) | ||
| } else { | ||
| f, err := os.OpenFile(os.Getenv("HOME")+"/.ssh/authorized_keys", | ||
| os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0o600) | ||
| framework.ExpectNoError(err) | ||
|
|
||
| defer func() { _ = f.Close() }() | ||
| _, err = f.Write(publicKey) | ||
| framework.ExpectNoError(err) | ||
| } | ||
| }) | ||
| err = os.WriteFile(authorizedKeysPath, publicKey, 0o600) | ||
| framework.ExpectNoError(err) | ||
|
|
||
| ginkgo.It("should add provider to devpod", func(ctx context.Context) { | ||
| f := framework.NewDefaultFramework(initialDir + "/bin") | ||
| // ensure we don't have the ssh provider present | ||
| err := f.DevPodProviderDelete(ctx, "ssh") | ||
| if err != nil { | ||
| fmt.Println("warning: " + err.Error()) | ||
| if err := f.DevPodProviderDelete(ctx, "ssh"); err != nil { | ||
| ginkgo.GinkgoWriter.Println("warning: " + err.Error()) | ||
| } | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Fail on unexpected provider-delete errors during setup. If 🤖 Prompt for AI Agents |
||
|
|
||
| err = f.DevPodProviderAdd(ctx, "ssh", "-o", "HOST=localhost") | ||
| framework.ExpectNoError(err) | ||
| }) | ||
| ginkgo.DeferCleanup(func(cleanupCtx context.Context) { | ||
| err = f.DevPodProviderDelete(cleanupCtx, "ssh") | ||
| framework.ExpectNoError(err) | ||
| }) | ||
|
|
||
| ginkgo.It("should run devpod up", func(ctx context.Context) { | ||
| f := framework.NewDefaultFramework(initialDir + "/bin") | ||
| err := f.DevPodUp(ctx, "tests/integration/testdata/") | ||
| err = f.DevPodUp(ctx, "tests/integration/testdata/") | ||
| framework.ExpectNoError(err) | ||
| }) | ||
| ginkgo.DeferCleanup(func(cleanupCtx context.Context) { | ||
| err = f.DevPodWorkspaceDelete(cleanupCtx, "testdata") | ||
| framework.ExpectNoError(err) | ||
| }) | ||
|
coderabbitai[bot] marked this conversation as resolved.
|
||
|
|
||
| ginkgo.It("should run commands to workspace via ssh", func(ctx context.Context) { | ||
| f := framework.NewDefaultFramework(initialDir + "/bin") | ||
| out, err := f.DevPodSSH(ctx, "testdata", "echo test") | ||
| framework.ExpectNoError(err) | ||
| framework.ExpectEqual(out, "test\n") | ||
| }) | ||
|
|
||
| ginkgo.It("should cleanup devpod workspace", func(ctx context.Context) { | ||
| f := framework.NewDefaultFramework(initialDir + "/bin") | ||
| err := f.DevPodWorkspaceDelete(ctx, "testdata") | ||
| framework.ExpectNoError(err) | ||
| }) | ||
| }, | ||
| ) | ||
| }) | ||
| }, | ||
| ) | ||
| }, | ||
| ) | ||
This file was deleted.
Uh oh!
There was an error while loading. Please reload this page.