Files
sablier/pkg/provider/podman/events_test.go
2025-07-26 00:46:11 -04:00

45 lines
1017 B
Go

package podman_test
import (
"context"
"github.com/containers/podman/v5/pkg/bindings/containers"
"github.com/neilotoole/slogt"
"github.com/sablierapp/sablier/pkg/provider/podman"
"gotest.tools/v3/assert"
"testing"
"time"
)
func TestPodmanProvider_NotifyInstanceStopped(t *testing.T) {
if testing.Short() {
t.Skip("skipping test in short mode.")
}
ctx, cancel := context.WithTimeout(t.Context(), 30*time.Second)
defer cancel()
pind := setupPinD(t)
p, err := podman.New(pind.connText, slogt.New(t))
assert.NilError(t, err)
c, err := pind.CreateMimic(ctx, MimicOptions{})
assert.NilError(t, err)
inspected, err := containers.Inspect(pind.connText, c.ID, nil)
assert.NilError(t, err)
err = containers.Start(pind.connText, c.ID, nil)
assert.NilError(t, err)
<-time.After(1 * time.Second)
waitC := make(chan string)
go p.NotifyInstanceStopped(ctx, waitC)
err = containers.Stop(pind.connText, c.ID, nil)
assert.NilError(t, err)
name := <-waitC
assert.Equal(t, name, inspected.Name)
}