databasus--databasus
75f3dd141c
CodeQL / Analyze (go) (push) Has been cancelled
CodeQL / Analyze (actions) (push) Has been cancelled
CodeQL / Analyze (javascript-typescript) (push) Has been cancelled
CI and Release / lint-frontend (push) Has been cancelled
CI and Release / dockerfile-scan (push) Has been cancelled
CI and Release / test-frontend (push) Has been cancelled
CI and Release / lint-verification-agent (push) Has been cancelled
CI and Release / test-verification-agent (push) Has been cancelled
CI and Release / e2e-verification-agent (push) Has been cancelled
CI and Release / test-backend (push) Has been cancelled
CI and Release / build-dev-image (push) Has been cancelled
CI and Release / push-dev-image (push) Has been cancelled
CI and Release / build-image (push) Has been cancelled
CI and Release / build-verification-image (push) Has been cancelled
CI and Release / determine-version (push) Has been cancelled
CI and Release / push-image (push) Has been cancelled
CI and Release / push-verification-image (12) (push) Has been cancelled
CI and Release / lint-backend (push) Has been cancelled
CI and Release / push-verification-image (17) (push) Has been cancelled
CI and Release / push-verification-image (18) (push) Has been cancelled
CI and Release / release (push) Has been cancelled
CI and Release / publish-helm-chart (push) Has been cancelled
CI and Release / push-verification-image (13) (push) Has been cancelled
CI and Release / push-verification-image (14) (push) Has been cancelled
CI and Release / push-verification-image (15) (push) Has been cancelled
CI and Release / push-verification-image (16) (push) Has been cancelled
75 行
2.2 KiB
Go
75 行
2.2 KiB
Go
package container
|
|
|
|
import (
|
|
"errors"
|
|
"testing"
|
|
|
|
"github.com/google/uuid"
|
|
"github.com/stretchr/testify/assert"
|
|
|
|
"databasus-verification-agent/internal/testutil"
|
|
)
|
|
|
|
func Test_PurgeAgentContainers_RemovesEveryContainerAndNetwork(t *testing.T) {
|
|
engine := &fakePurgeEngine{
|
|
managed: []ManagedContainer{
|
|
{ID: "c1", NetworkID: "n1", VerificationID: uuid.New().String()},
|
|
{ID: "c2", NetworkID: "n2", VerificationID: uuid.New().String()},
|
|
},
|
|
}
|
|
|
|
purgeAgentContainers(t.Context(), engine, "agent-1", testutil.DiscardLogger())
|
|
|
|
assert.ElementsMatch(t, []string{"c1", "c2"}, engine.removedContainer)
|
|
assert.ElementsMatch(t, []string{"n1", "n2"}, engine.removedNetwork)
|
|
}
|
|
|
|
func Test_PurgeAgentContainers_WhenNetworkIDEmpty_RemovesContainerOnly(t *testing.T) {
|
|
engine := &fakePurgeEngine{
|
|
managed: []ManagedContainer{{ID: "c1", VerificationID: uuid.New().String()}},
|
|
}
|
|
|
|
purgeAgentContainers(t.Context(), engine, "agent-1", testutil.DiscardLogger())
|
|
|
|
assert.Equal(t, []string{"c1"}, engine.removedContainer)
|
|
assert.Empty(t, engine.removedNetwork)
|
|
}
|
|
|
|
func Test_PurgeAgentContainers_WhenListFails_RemovesNothing(t *testing.T) {
|
|
engine := &fakePurgeEngine{
|
|
managed: []ManagedContainer{{ID: "c1", NetworkID: "n1"}},
|
|
listErr: errors.New("docker unreachable"),
|
|
}
|
|
|
|
purgeAgentContainers(t.Context(), engine, "agent-1", testutil.DiscardLogger())
|
|
|
|
assert.Empty(t, engine.removedContainer)
|
|
assert.Empty(t, engine.removedNetwork)
|
|
}
|
|
|
|
func Test_PurgeAgentContainers_WhenListEmpty_DoesNothing(t *testing.T) {
|
|
engine := &fakePurgeEngine{}
|
|
|
|
purgeAgentContainers(t.Context(), engine, "agent-1", testutil.DiscardLogger())
|
|
|
|
assert.Empty(t, engine.removedContainer)
|
|
assert.Empty(t, engine.removedNetwork)
|
|
}
|
|
|
|
func Test_PurgeAgentContainers_WhenContainerRemovalFails_SkipsNetworkAndContinues(t *testing.T) {
|
|
engine := &fakePurgeEngine{
|
|
managed: []ManagedContainer{
|
|
{ID: "c1", NetworkID: "n1", VerificationID: uuid.New().String()},
|
|
{ID: "c2", NetworkID: "n2", VerificationID: uuid.New().String()},
|
|
},
|
|
removeContainerErr: errors.New("container in use"),
|
|
}
|
|
|
|
assert.NotPanics(t, func() {
|
|
purgeAgentContainers(t.Context(), engine, "agent-1", testutil.DiscardLogger())
|
|
})
|
|
|
|
assert.Empty(t, engine.removedContainer)
|
|
assert.Empty(t, engine.removedNetwork)
|
|
}
|