Skip to content
Merged
Show file tree
Hide file tree
Changes from 6 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
639 changes: 304 additions & 335 deletions e2e/tests/build/build.go

Large diffs are not rendered by default.

8 changes: 0 additions & 8 deletions e2e/tests/build/framework.go

This file was deleted.

53 changes: 31 additions & 22 deletions e2e/tests/context/context.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,33 +9,43 @@ import (
"github.com/skevetter/devpod/e2e/framework"
)

var _ = DevPodDescribe("devpod context test suite", func() {
ginkgo.Context("testing context command", ginkgo.Label("context"), ginkgo.Ordered, func() {
ctx := context.Background()
initialDir, err := os.Getwd()
if err != nil {
panic(err)
}

ginkgo.It("create a new context, switch to it and delete afterwards", func() {
f := framework.NewDefaultFramework(initialDir + "/bin")

err = f.DevPodContextCreate(ctx, "test-context")
var _ = ginkgo.Describe(
"devpod context test suite",
ginkgo.Label("context"),
ginkgo.Ordered,
func() {
var initialDir string

ginkgo.BeforeAll(func() {
var err error
initialDir, err = os.Getwd()
framework.ExpectNoError(err)
})

err = f.DevPodContextUse(context.Background(), "test-context")
framework.ExpectNoError(err)
ginkgo.It(
"create a new context, switch to it and delete afterwards",
func(ctx context.Context) {
f := framework.NewDefaultFramework(initialDir + "/bin")

err = f.DevPodContextDelete(context.Background(), "test-context")
framework.ExpectNoError(err)
})
var err error
err = f.DevPodContextCreate(ctx, "test-context")
framework.ExpectNoError(err)

err = f.DevPodContextUse(ctx, "test-context")
framework.ExpectNoError(err)

err = f.DevPodContextDelete(ctx, "test-context")
framework.ExpectNoError(err)
},
Comment thread
coderabbitai[bot] marked this conversation as resolved.
)

ginkgo.It("should use shared context in IDE commands", func() {
ginkgo.It("should use shared context in IDE commands", func(ctx context.Context) {
f := framework.NewDefaultFramework(initialDir + "/bin")

contextA := "test-ctx-a-ide"
contextB := "test-ctx-b-ide"

var err error
err = f.DevPodContextCreate(ctx, contextA)
framework.ExpectNoError(err)

Expand Down Expand Up @@ -87,8 +97,7 @@ var _ = DevPodDescribe("devpod context test suite", func() {
ginkgo.Fail("IDE was not set in context-b as expected")
}

err = os.Setenv("DEVPOD_CONTEXT", contextB)
framework.ExpectNoError(err)
ginkgo.GinkgoT().Setenv("DEVPOD_CONTEXT", contextB)

output, err = f.DevPodIDEList(ctx, "--output", "json")
framework.ExpectNoError(err)
Expand All @@ -111,5 +120,5 @@ var _ = DevPodDescribe("devpod context test suite", func() {
)
}
})
})
})
},
)
8 changes: 0 additions & 8 deletions e2e/tests/context/framework.go

This file was deleted.

8 changes: 0 additions & 8 deletions e2e/tests/ide/framework.go

This file was deleted.

68 changes: 33 additions & 35 deletions e2e/tests/ide/ide.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,50 +8,48 @@ import (
"github.com/skevetter/devpod/e2e/framework"
)

var _ = DevPodDescribe("devpod ide test suite", func() {
ginkgo.Context("testing ides", ginkgo.Label("ide"), ginkgo.Ordered, func() {
var initialDir string

ginkgo.BeforeEach(func() {
var err error
initialDir, err = os.Getwd()
framework.ExpectNoError(err)
})
var _ = ginkgo.Describe("devpod ide test suite", ginkgo.Label("ide"), ginkgo.Ordered, func() {
var initialDir string

ginkgo.It("start ides", func() {
ctx := context.Background()
ginkgo.BeforeEach(func() {
var err error
initialDir, err = os.Getwd()
framework.ExpectNoError(err)
})

f := framework.NewDefaultFramework(initialDir + "/bin")
tempDir, err := framework.CopyToTempDir("tests/ide/testdata")
framework.ExpectNoError(err)
ginkgo.DeferCleanup(framework.CleanupTempDir, initialDir, tempDir)
ginkgo.It("start ides", func(ctx context.Context) {
f := framework.NewDefaultFramework(initialDir + "/bin")
tempDir, err := framework.CopyToTempDir("tests/ide/testdata")
framework.ExpectNoError(err)
ginkgo.DeferCleanup(framework.CleanupTempDir, initialDir, tempDir)

_ = f.DevPodProviderDelete(ctx, "docker")
err = f.DevPodProviderAdd(ctx, "docker")
framework.ExpectNoError(err)
err = f.DevPodProviderUse(context.Background(), "docker")
framework.ExpectNoError(err)
_ = f.DevPodProviderDelete(ctx, "docker")
err = f.DevPodProviderAdd(ctx, "docker")
framework.ExpectNoError(err)
err = f.DevPodProviderUse(ctx, "docker")
framework.ExpectNoError(err)

ginkgo.DeferCleanup(f.DevPodWorkspaceDelete, context.Background(), tempDir)
ginkgo.DeferCleanup(func(cleanupCtx context.Context) {
_ = f.DevPodWorkspaceDelete(cleanupCtx, tempDir)
})

err = f.DevPodUpWithIDE(ctx, tempDir, "--open-ide=false", "--ide=vscode")
framework.ExpectNoError(err)
err = f.DevPodUpWithIDE(ctx, tempDir, "--open-ide=false", "--ide=vscode")
framework.ExpectNoError(err)

err = f.DevPodUpWithIDE(ctx, tempDir, "--open-ide=false", "--ide=openvscode")
framework.ExpectNoError(err)
err = f.DevPodUpWithIDE(ctx, tempDir, "--open-ide=false", "--ide=openvscode")
framework.ExpectNoError(err)

err = f.DevPodUpWithIDE(ctx, tempDir, "--open-ide=false", "--ide=jupyternotebook")
framework.ExpectNoError(err)
err = f.DevPodUpWithIDE(ctx, tempDir, "--open-ide=false", "--ide=jupyternotebook")
framework.ExpectNoError(err)

// TODO: Fix broken IDE
// err = f.DevPodUpWithIDE(ctx, tempDir, "--open-ide=false", "--ide=fleet")
// framework.ExpectNoError(err)
// TODO: Fix broken IDE
// err = f.DevPodUpWithIDE(ctx, tempDir, "--open-ide=false", "--ide=fleet")
// framework.ExpectNoError(err)

// check if ssh works
err = f.DevPodSSHEchoTestString(ctx, tempDir)
framework.ExpectNoError(err)
// check if ssh works
err = f.DevPodSSHEchoTestString(ctx, tempDir)
framework.ExpectNoError(err)

// TODO: test jetbrains ides
})
// TODO: test jetbrains ides
})
})
8 changes: 0 additions & 8 deletions e2e/tests/integration/framework.go

This file was deleted.

67 changes: 29 additions & 38 deletions e2e/tests/integration/integration.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ package integration

import (
"context"
"fmt"
"os"
"os/exec"
"path/filepath"
Expand All @@ -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)
Expand All @@ -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,
Expand Down Expand Up @@ -82,38 +81,30 @@ var _ = ginkgo.Describe("[integration]: devpod provider ssh test suite", ginkgo.
_, err = f.Write(publicKey)
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")
err = f.DevPodProviderDelete(ctx, "ssh")
if err != nil {
fmt.Println("warning: " + err.Error())
ginkgo.GinkgoWriter.Println("warning: " + err.Error())
}

err = f.DevPodProviderAdd(ctx, "ssh", "-o", "HOST=localhost")
framework.ExpectNoError(err)
})
ginkgo.DeferCleanup(func(cleanupCtx context.Context) {
_ = f.DevPodProviderDelete(cleanupCtx, "ssh")
})

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) {
_ = f.DevPodWorkspaceDelete(cleanupCtx, "testdata")
})
Comment thread
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)
})
},
)
})
},
)
},
)
74 changes: 37 additions & 37 deletions e2e/tests/machine/create.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,42 +9,42 @@ import (
"github.com/skevetter/devpod/e2e/framework"
)

var _ = DevPodDescribe("devpod machine create", func() {
ginkgo.Context("testing machine", ginkgo.Label("machine"), ginkgo.Ordered, func() {
ctx := context.Background()
initialDir, err := os.Getwd()
if err != nil {
panic(err)
}

ginkgo.It("should add simple machine and then delete it", func() {
tempDir, err := framework.CopyToTempDir("tests/machine/testdata")
framework.ExpectNoError(err)
ginkgo.DeferCleanup(framework.CleanupTempDir, initialDir, tempDir)

f := framework.NewDefaultFramework(initialDir + "/bin")

// Ensure that mock-provider is deleted
_ = f.DevPodProviderDelete(ctx, "mock-provider")

ginkgo.By("Add mock provider")
err = f.DevPodProviderAdd(ctx, tempDir+"/mock-provider.yaml")
framework.ExpectNoError(err)

ginkgo.By("Use mock provier")
err = f.DevPodProviderUse(context.Background(), "mock-provider")
framework.ExpectNoError(err)

machineUUID, _ := uuid.NewRandom()
machineName := machineUUID.String()

ginkgo.By("Create test machine with mock provider")
err = f.DevPodMachineCreate([]string{machineName})
framework.ExpectNoError(err)

ginkgo.By("Remove test machine")
err = f.DevPodMachineDelete([]string{machineName})
framework.ExpectNoError(err)
})
var _ = ginkgo.Describe("devpod testing machine", ginkgo.Label("machine"), ginkgo.Ordered, func() {
var initialDir string

ginkgo.BeforeEach(func() {
var err error
initialDir, err = os.Getwd()
framework.ExpectNoError(err)
})

ginkgo.It("should add simple machine and then delete it", func(ctx context.Context) {
tempDir, err := framework.CopyToTempDir("tests/machine/testdata")
framework.ExpectNoError(err)
ginkgo.DeferCleanup(framework.CleanupTempDir, initialDir, tempDir)

f := framework.NewDefaultFramework(initialDir + "/bin")

// Ensure that mock-provider is deleted
_ = f.DevPodProviderDelete(ctx, "mock-provider")

ginkgo.By("Add mock provider")
err = f.DevPodProviderAdd(ctx, tempDir+"/mock-provider.yaml")
framework.ExpectNoError(err)

ginkgo.By("Use mock provider")
err = f.DevPodProviderUse(context.Background(), "mock-provider")
framework.ExpectNoError(err)

machineUUID, _ := uuid.NewRandom()
machineName := machineUUID.String()

ginkgo.By("Create test machine with mock provider")
err = f.DevPodMachineCreate([]string{machineName})
framework.ExpectNoError(err)

ginkgo.By("Remove test machine")
err = f.DevPodMachineDelete([]string{machineName})
framework.ExpectNoError(err)
})
})
Loading
Loading