From dc100b4cfcedcc99215189e1c4d8ab2a3836417d Mon Sep 17 00:00:00 2001 From: Miguel Varela Ramos Date: Tue, 16 Jul 2024 22:03:49 +0100 Subject: [PATCH] test: add test for multiple httproute resources Signed-off-by: Miguel Varela Ramos --- pkg/issuer/acme/http/httproute_test.go | 38 ++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/pkg/issuer/acme/http/httproute_test.go b/pkg/issuer/acme/http/httproute_test.go index 3bf470164..773bf3d7f 100644 --- a/pkg/issuer/acme/http/httproute_test.go +++ b/pkg/issuer/acme/http/httproute_test.go @@ -117,6 +117,44 @@ func TestGetGatewayHTTPRouteForChallenge(t *testing.T) { func TestEnsureGatewayHTTPRoute(t *testing.T) { tests := map[string]solverFixture{ + "should not create another httproute if one exists": { + Challenge: &cmacme.Challenge{ + Spec: cmacme.ChallengeSpec{ + DNSName: "example.com", + Solver: cmacme.ACMEChallengeSolver{ + HTTP01: &cmacme.ACMEChallengeSolverHTTP01{ + GatewayHTTPRoute: &cmacme.ACMEChallengeSolverHTTP01GatewayHTTPRoute{}, + }, + }, + }, + }, + PreFn: func(t *testing.T, s *solverFixture) { + _, err := s.Solver.createGatewayHTTPRoute(context.TODO(), s.Challenge, "fakeservice") + if err != nil { + t.Errorf("error preparing test: %v", err) + } + s.Builder.Sync() + }, + CheckFn: func(t *testing.T, s *solverFixture, args ...interface{}) { + httpRoutes, err := s.Solver.httpRouteLister.List(labels.NewSelector()) + if err != nil { + t.Errorf("error listing HTTPRoutes: %v", err) + t.Fail() + return + } + + if len(httpRoutes) != 1 { + t.Errorf("Expected 1 HTTPRoute, but got: %v", len(httpRoutes)) + } + + gotHTTPRouteSpec := httpRoutes[0].Spec + expectedHTTPRoute := generateHTTPRouteSpec(s.Challenge, "fakeservice") + if !reflect.DeepEqual(gotHTTPRouteSpec, expectedHTTPRoute) { + t.Errorf("Expected HTTPRoute specs to match, but got diff:\n%v", + diff.ObjectDiff(gotHTTPRouteSpec, expectedHTTPRoute)) + } + }, + }, "should update challenge httproute if service changes": { Challenge: &cmacme.Challenge{ Spec: cmacme.ChallengeSpec{