Files
teleport/lib/cache/proxy_server_test.go
T

66 lines
1.8 KiB
Go

// Teleport
// Copyright (C) 2025 Gravitational, Inc.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
package cache
import (
"context"
"testing"
"github.com/gravitational/teleport/api/types"
"github.com/gravitational/teleport/api/utils/clientutils"
"github.com/gravitational/teleport/lib/itertools/stream"
)
// TestProxies tests proxies cache
func TestProxies(t *testing.T) {
t.Parallel()
p := newTestPack(t, ForProxy)
t.Cleanup(p.Close)
testResources(t, p, testFuncs[types.Server]{
newResource: func(name string) (types.Server, error) {
return &types.ServerV2{
Kind: types.KindProxy,
Version: types.V2,
Metadata: types.Metadata{
Name: name,
},
Spec: types.ServerSpecV2{
Addr: "127.0.0.1:2022",
},
}, nil
},
create: p.presenceS.UpsertProxy,
list: p.presenceS.ListProxyServers,
cacheList: p.cache.ListProxyServers,
update: p.presenceS.UpsertProxy,
deleteAll: func(ctx context.Context) error {
proxies, err := stream.Collect(clientutils.Resources(ctx, p.presenceS.ListProxyServers))
if err != nil {
return err
}
for _, proxy := range proxies {
if err := p.presenceS.DeleteProxy(ctx, proxy.GetName()); err != nil {
return err
}
}
return nil
},
})
}