mirror of https://github.com/portainer/portainer
99 lines
2.3 KiB
Go
99 lines
2.3 KiB
Go
package datastore
|
|
|
|
import (
|
|
"testing"
|
|
|
|
portainer "github.com/portainer/portainer/api"
|
|
"github.com/portainer/portainer/api/pendingactions/actions"
|
|
"github.com/portainer/portainer/api/pendingactions/handlers"
|
|
)
|
|
|
|
type cleanNAPWithOverridePolicies struct {
|
|
EndpointGroupID portainer.EndpointGroupID
|
|
}
|
|
|
|
func Test_ConvertCleanNAPWithOverridePoliciesPayload(t *testing.T) {
|
|
t.Run("test ConvertCleanNAPWithOverridePoliciesPayload", func(t *testing.T) {
|
|
|
|
_, store := MustNewTestStore(t, true, false)
|
|
defer store.Close()
|
|
|
|
gid := portainer.EndpointGroupID(1)
|
|
|
|
testData := []struct {
|
|
Name string
|
|
PendingAction portainer.PendingAction
|
|
Expected any
|
|
Err bool
|
|
}{
|
|
{
|
|
Name: "test actiondata with EndpointGroupID 1",
|
|
PendingAction: handlers.NewCleanNAPWithOverridePolicies(
|
|
1,
|
|
&gid,
|
|
),
|
|
Expected: portainer.EndpointGroupID(1),
|
|
},
|
|
{
|
|
Name: "test actionData nil",
|
|
PendingAction: handlers.NewCleanNAPWithOverridePolicies(
|
|
2,
|
|
nil,
|
|
),
|
|
Expected: nil,
|
|
},
|
|
{
|
|
Name: "test actionData empty and expected error",
|
|
PendingAction: portainer.PendingAction{
|
|
EndpointID: 2,
|
|
Action: actions.CleanNAPWithOverridePolicies,
|
|
ActionData: "",
|
|
},
|
|
Expected: nil,
|
|
Err: true,
|
|
},
|
|
}
|
|
|
|
for _, d := range testData {
|
|
err := store.PendingActions().Create(&d.PendingAction)
|
|
if err != nil {
|
|
t.Error(err)
|
|
return
|
|
}
|
|
|
|
pendingActions, err := store.PendingActions().ReadAll()
|
|
if err != nil {
|
|
t.Error(err)
|
|
return
|
|
}
|
|
|
|
for _, endpointPendingAction := range pendingActions {
|
|
t.Run(d.Name, func(t *testing.T) {
|
|
if endpointPendingAction.Action == actions.CleanNAPWithOverridePolicies {
|
|
var payload cleanNAPWithOverridePolicies
|
|
|
|
err := endpointPendingAction.UnmarshallActionData(&payload)
|
|
|
|
if d.Err && err == nil {
|
|
t.Error(err)
|
|
}
|
|
|
|
if d.Expected == nil && payload.EndpointGroupID != 0 {
|
|
t.Errorf("expected nil, got %d", payload.EndpointGroupID)
|
|
}
|
|
|
|
if d.Expected != nil {
|
|
expected := d.Expected.(portainer.EndpointGroupID)
|
|
if d.Expected != nil && expected != payload.EndpointGroupID {
|
|
t.Errorf("expected EndpointGroupID %d, got %d", expected, payload.EndpointGroupID)
|
|
}
|
|
}
|
|
}
|
|
})
|
|
}
|
|
|
|
store.PendingActions().Delete(d.PendingAction.ID)
|
|
}
|
|
})
|
|
}
|