Files
k3k/pkg/k3s/client_test.go
T
Hussein GalalandGitHub 3abffae92d External datastore support (#879)
* Adding new k3s function to get the config
* Adding a new way to get the bootstrap data directly from the server Pod
* Gate the bootstrap fetch if external datastore is in use
---------

Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com>
2026-06-26 17:22:00 +03:00

51 lines
1.2 KiB
Go

package k3s
import (
"net/http"
"testing"
"github.com/stretchr/testify/assert"
)
func Test_NewClient(t *testing.T) {
tests := []struct {
name string
clientConfig ClientConfig
expectedHeaders http.Header
}{
{
name: "empty config",
clientConfig: ClientConfig{},
expectedHeaders: nil,
},
{
name: "client config passed",
clientConfig: ClientConfig{
Token: "test_token",
ServerIP: "0.0.0.0:1234",
NodeName: "test_node",
AgentIP: "1.1.1.1",
PodIP: "2.2.2.2",
},
expectedHeaders: map[string][]string{
k3sNodePasswordHeader: {"test_token"},
k3sNodeNameHeader: {"test_node"},
k3sNodeIPHeader: {"1.1.1.1,2.2.2.2"},
},
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
client := New(tt.clientConfig)
assert.Len(t, client.staticHeaders, len(tt.expectedHeaders))
for expectedHeader, expectedValue := range tt.expectedHeaders {
value, ok := client.staticHeaders[http.CanonicalHeaderKey(expectedHeader)]
assert.True(t, ok, "expected header %s is not found", expectedHeader)
assert.Equal(t, expectedValue, value)
}
})
}
}