Skip to content

Commit

Permalink
🌱 Fix tests. (#47)
Browse files Browse the repository at this point in the history
  • Loading branch information
guettli authored Dec 16, 2024
1 parent f353abf commit 2005984
Show file tree
Hide file tree
Showing 7 changed files with 34 additions and 13 deletions.
1 change: 0 additions & 1 deletion hcloud/cloud_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,6 @@ func newTestEnv() testEnv {
hcloud.WithEndpoint(server.URL),
hcloud.WithToken("jr5g7ZHpPptyhJzZyHw2Pqu4g9gTqDvEceYpngPf79jNZXCeTYQ4uArypFM3nh75"),
hcloud.WithBackoffFunc(func(_ int) time.Duration { return 0 }),
hcloud.WithDebugWriter(os.Stdout),
)
robotClient := hrobot.NewBasicAuthClient("", "")
robotClient.SetBaseURL(server.URL + "/robot")
Expand Down
12 changes: 12 additions & 0 deletions hcloud/instances_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,9 @@ func TestInstances_InstanceExists(t *testing.T) {
}, {
name: "existing robot server by id",
node: &corev1.Node{
ObjectMeta: metav1.ObjectMeta{
Name: "bm-server1",
},
Spec: corev1.NodeSpec{ProviderID: "hcloud://bm-321"},
},
expected: true,
Expand All @@ -116,6 +119,9 @@ func TestInstances_InstanceExists(t *testing.T) {
}, {
name: "missing robot server by id",
node: &corev1.Node{
ObjectMeta: metav1.ObjectMeta{
Name: "bm-server2",
},
Spec: corev1.NodeSpec{ProviderID: "hcloud://bm-322"},
},
expected: false,
Expand Down Expand Up @@ -223,6 +229,9 @@ func TestInstances_InstanceShutdown(t *testing.T) {
name: "bm server",
node: &corev1.Node{
Spec: corev1.NodeSpec{ProviderID: "hcloud://bm-321"},
ObjectMeta: metav1.ObjectMeta{
Name: "bm-server1",
},
},
expected: false,
},
Expand Down Expand Up @@ -307,6 +316,9 @@ func TestInstances_InstanceMetadataRobotServer(t *testing.T) {
instances := newInstances(env.Client, env.RobotClient, AddressFamilyIPv4, 0)

metadata, err := instances.InstanceMetadata(context.TODO(), &corev1.Node{
ObjectMeta: metav1.ObjectMeta{
Name: "bm-server1",
},
Spec: corev1.NodeSpec{ProviderID: "hcloud://bm-321"},
})
if err != nil {
Expand Down
10 changes: 8 additions & 2 deletions hcloud/util.go
Original file line number Diff line number Diff line change
Expand Up @@ -82,8 +82,11 @@ func getRobotServerByName(c robotclient.Client, node *corev1.Node) (server *mode
return server, nil
}

func getRobotServerByID(c robotclient.Client, id int, node *corev1.Node) (*models.Server, error) {
func getRobotServerByID(c robotclient.Client, id int, node *corev1.Node) (s *models.Server, e error) {
const op = "robot/getServerByID"
if node.Name == "" {
return nil, fmt.Errorf("%s: node name is empty", op)
}

if c == nil {
return nil, errMissingRobotCredentials
Expand All @@ -95,7 +98,10 @@ func getRobotServerByID(c robotclient.Client, id int, node *corev1.Node) (*model
}

server, err := c.ServerGet(id)
if err != nil && !models.IsError(err, models.ErrorCodeServerNotFound) {
if models.IsError(err, models.ErrorCodeServerNotFound) {
return nil, nil
}
if err != nil {
hcops.HandleRateLimitExceededError(err, node)
return nil, fmt.Errorf("%s: %w", op, err)
}
Expand Down
5 changes: 2 additions & 3 deletions internal/hcops/load_balancer.go
Original file line number Diff line number Diff line change
Expand Up @@ -728,8 +728,7 @@ func (l *LoadBalancerOps) ReconcileHCLBTargets(
if hclbTargetIDs[id] {
continue
}

if maxTargetsReached(numberOfTargets, lb.LoadBalancerType.Name) {
if lb.LoadBalancerType != nil && maxTargetsReached(numberOfTargets, lb.LoadBalancerType.Name) {
l.Recorder.Eventf(
svc,
"Warning",
Expand Down Expand Up @@ -785,7 +784,7 @@ func (l *LoadBalancerOps) ReconcileHCLBTargets(
continue
}

if maxTargetsReached(numberOfTargets, lb.LoadBalancerType.Name) {
if lb.LoadBalancerType != nil && maxTargetsReached(numberOfTargets, lb.LoadBalancerType.Name) {
l.Recorder.Eventf(
svc,
"Warning",
Expand Down
1 change: 1 addition & 0 deletions internal/hcops/ratelimit_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ func TestRateLimitIsExceeded(t *testing.T) {
rateLimitExceeded := rateLimitHandler{
exceeded: true,
lastChecked: now.Add(-3 * time.Minute),
waitTime: 5 * time.Minute,
}

require.Equal(t, true, rateLimitExceeded.isExceeded())
Expand Down
6 changes: 4 additions & 2 deletions tests/e2e/e2e_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,15 +22,17 @@ import (
var testCluster TestCluster

func TestMain(m *testing.M) {
fmt.Printf("the e2e tests seem to require a special setup. They are disabled in our fork.\n")
os.Exit(1)
if err := testCluster.Start(); err != nil {
fmt.Printf("%v\n", err)
fmt.Printf("testCluster.Start failed: %v\n", err)
os.Exit(1)
}

rc := m.Run()

if err := testCluster.Stop(); err != nil {
fmt.Printf("%v\n", err)
fmt.Printf("testCluster.Stop failed: %v\n", err)
os.Exit(1)
}
os.Exit(rc)
Expand Down
12 changes: 7 additions & 5 deletions tests/e2e/testing.go
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ func (tc *TestCluster) Start() error {
if token == "" {
buf, err := os.ReadFile(fmt.Sprintf("../../hack/.token-%s", tc.scope))
if err != nil {
return err
return fmt.Errorf("HCLOUD_TOKEN not set and no token file found: %w", err)
}
token = string(buf)
}
Expand All @@ -67,10 +67,12 @@ func (tc *TestCluster) Start() error {
hcloudClient := hcloud.NewClient(opts...)
tc.hcloud = hcloudClient

err := os.Setenv("KUBECONFIG", "../../hack/.kubeconfig-"+tc.scope)
if err != nil {
return err
}
// Syself: the e2e tests seem to require a special environment.
// I tried it with a kind cluster, but this did not work.
// err := os.Setenv("KUBECONFIG", "../../hack/.kubeconfig-"+tc.scope)
// if err != nil {
// return err
// }

loadingRules := clientcmd.NewDefaultClientConfigLoadingRules()
configOverrides := &clientcmd.ConfigOverrides{}
Expand Down

0 comments on commit 2005984

Please sign in to comment.