feat: initialize managed portal
This commit is contained in:
88
internal/managed/docker_runtime_test.go
Normal file
88
internal/managed/docker_runtime_test.go
Normal file
@@ -0,0 +1,88 @@
|
||||
package managed
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"os/exec"
|
||||
"strings"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestNormalizeContainerStatus(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
cases := map[string]string{
|
||||
"running": "running",
|
||||
"created": "stopped",
|
||||
" exited \n": "stopped",
|
||||
"paused": "stopped",
|
||||
"dead": "failed",
|
||||
"removing": "failed",
|
||||
"restarting": "failed",
|
||||
"unknown": "unknown",
|
||||
"": "unknown",
|
||||
}
|
||||
|
||||
for input, want := range cases {
|
||||
if got := NormalizeContainerStatus(input); got != want {
|
||||
t.Fatalf("NormalizeContainerStatus(%q) = %q, want %q", input, got, want)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestDockerControllerGetContainerStatus(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
controller := NewDockerControllerWithRunner(func(ctx context.Context, name string, args ...string) ([]byte, error) {
|
||||
if name != "docker" {
|
||||
t.Fatalf("name = %q", name)
|
||||
}
|
||||
return []byte("running\n"), nil
|
||||
})
|
||||
|
||||
status, err := controller.GetContainerStatus("store-dwell-alert")
|
||||
if err != nil {
|
||||
t.Fatalf("GetContainerStatus() error = %v", err)
|
||||
}
|
||||
if status != "running" {
|
||||
t.Fatalf("status = %q", status)
|
||||
}
|
||||
}
|
||||
|
||||
func TestDockerControllerRestartContainer(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
called := false
|
||||
controller := NewDockerControllerWithRunner(func(ctx context.Context, name string, args ...string) ([]byte, error) {
|
||||
called = true
|
||||
return []byte("store-dwell-alert"), nil
|
||||
})
|
||||
|
||||
if err := controller.RestartContainer("store-dwell-alert"); err != nil {
|
||||
t.Fatalf("RestartContainer() error = %v", err)
|
||||
}
|
||||
if !called {
|
||||
t.Fatal("runner was not called")
|
||||
}
|
||||
}
|
||||
|
||||
func TestDockerControllerRestartContainerIncludesOutputOnError(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
controller := NewDockerControllerWithRunner(func(ctx context.Context, name string, args ...string) ([]byte, error) {
|
||||
return []byte("permission denied"), errors.New("exit status 1")
|
||||
})
|
||||
|
||||
err := controller.RestartContainer("store-dwell-alert")
|
||||
if err == nil || !strings.Contains(err.Error(), "permission denied") {
|
||||
t.Fatalf("RestartContainer() error = %v, want output included", err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestIsDockerUnavailable(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
if !IsDockerUnavailable(&exec.Error{Name: "docker", Err: exec.ErrNotFound}) {
|
||||
t.Fatal("IsDockerUnavailable() = false, want true")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user