Files
sablier/pkg/provider/docker/container_start_test.go
Alexis Couvreur edbf7d9d15 fix(kubernetes): consider workload not ready when scaled to 0 (#543)
* test(kubernetes): use testcontainers for test

* fix(kubernetes): get state properly reports the workload as down when scaled to 0

* refactor(kubernetes): split provider in multiple files

* refactor(provider): use Instance prefix for actions

* test(testcontainers): use provider.PullImage

* squash

* Revert "test(testcontainers): use provider.PullImage"

This reverts commit 6f958c48a5.

* test: add random generator thread safety
2025-03-02 23:30:59 -05:00

65 lines
1.4 KiB
Go

package docker_test
import (
"context"
"fmt"
"github.com/neilotoole/slogt"
"github.com/sablierapp/sablier/pkg/provider/docker"
"gotest.tools/v3/assert"
"testing"
)
func TestDockerClassicProvider_Start(t *testing.T) {
if testing.Short() {
t.Skip("skipping test in short mode.")
}
ctx := context.Background()
type args struct {
do func(dind *dindContainer) (string, error)
}
tests := []struct {
name string
args args
err error
}{
{
name: "non existing container start",
args: args{
do: func(dind *dindContainer) (string, error) {
return "non-existent", nil
},
},
err: fmt.Errorf("cannot start container non-existent: Error response from daemon: No such container: non-existent"),
},
{
name: "container start as expected",
args: args{
do: func(dind *dindContainer) (string, error) {
c, err := dind.CreateMimic(ctx, MimicOptions{})
return c.ID, err
},
},
err: nil,
},
}
c := setupDinD(t, ctx)
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
t.Parallel()
p, err := docker.NewDockerClassicProvider(ctx, c.client, slogt.New(t))
assert.NilError(t, err)
name, err := tt.args.do(c)
assert.NilError(t, err)
err = p.InstanceStart(t.Context(), name)
if tt.err != nil {
assert.Error(t, err, tt.err.Error())
} else {
assert.NilError(t, err)
}
})
}
}