Files
pinniped/internal/testutil/actions.go
Joshua Casey 436112252d Lint fixes
2024-08-27 13:26:39 -05:00

40 lines
1.3 KiB
Go

// Copyright 2024 the Pinniped contributors. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0
package testutil
import (
"testing"
"github.com/stretchr/testify/require"
coretesting "k8s.io/client-go/testing"
)
// ScrubListOptionsForActions ignores certain aspects of Watch Actions which changed in K8s 1.31.
// Because of https://github.com/kubernetes/kubernetes/pull/125560 our test code is busted.
func ScrubListOptionsForActions(t *testing.T, actions []coretesting.Action) []coretesting.Action {
t.Helper()
scrubbedActions := make([]coretesting.Action, 0, len(actions))
for _, action := range actions {
switch action.GetVerb() {
case "watch":
watchAction, ok := action.(coretesting.WatchActionImpl)
require.True(t, ok)
watchAction.ListOptions.AllowWatchBookmarks = false
watchAction.ListOptions.TimeoutSeconds = nil
scrubbedActions = append(scrubbedActions, watchAction)
case "list":
listAction, ok := action.(coretesting.ListActionImpl)
require.True(t, ok)
listAction.ListOptions.ResourceVersion = ""
listAction.ListOptions.TimeoutSeconds = nil
listAction.ListOptions.Limit = 0
scrubbedActions = append(scrubbedActions, listAction)
default:
scrubbedActions = append(scrubbedActions, action)
}
}
return scrubbedActions
}