diff --git a/pkg/registry/client_scope_test.go b/pkg/registry/client_scope_test.go index ef65a8288..59b3df941 100644 --- a/pkg/registry/client_scope_test.go +++ b/pkg/registry/client_scope_test.go @@ -17,10 +17,10 @@ limitations under the License. package registry import ( - "context" "fmt" - "log" + "net" "net/http" + "net/http/httptest" "os" "testing" @@ -43,20 +43,17 @@ func (suite *RegistryScopeTestSuite) TearDownSuite() { func (suite *RegistryScopeTestSuite) Test_1_Check_Push_Request_Scope() { - //set simple auth server to check the auth request scope - server := &http.Server{ - Addr: suite.AuthServerHost, - Handler: http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - suite.Equal(string("/auth?scope=repository%3Atestrepo%2Flocal-subchart%3Apull%2Cpush&service=testservice"), r.URL.String()) - w.WriteHeader(http.StatusOK) - }), - } - go func() { - err := server.ListenAndServe() - if err != nil && err != http.ErrServerClosed { - log.Fatalf("http server failed to ListenAndServe:%v", err) - } - }() + handler := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + suite.Equal(string("/auth?scope=repository%3Atestrepo%2Flocal-subchart%3Apull%2Cpush&service=testservice"), r.URL.String()) + w.WriteHeader(http.StatusOK) + }) + listener, err := net.Listen("tcp", suite.AuthServerHost) + suite.Nil(err, "no error creating server listner") + + ts := httptest.NewUnstartedServer(handler) + ts.Listener = listener + ts.Start() + defer ts.Close() // basic push, good ref testingChartCreationTime := "1977-09-02T22:04:05Z" @@ -68,28 +65,21 @@ func (suite *RegistryScopeTestSuite) Test_1_Check_Push_Request_Scope() { _, err = suite.RegistryClient.Push(chartData, ref, PushOptCreationTime(testingChartCreationTime)) suite.NotNil(err, "error pushing good ref because auth server don't give proper token") - //shutdown auth server - err = server.Shutdown(context.Background()) - suite.Nil(err, "shutdown simple auth server") - } func (suite *RegistryScopeTestSuite) Test_2_Check_Pull_Request_Scope() { - //set simple auth server to check the auth request scope - server := &http.Server{ - Addr: suite.AuthServerHost, - Handler: http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - suite.Equal(string("/auth?scope=repository%3Atestrepo%2Flocal-subchart%3Apull&service=testservice"), r.URL.String()) - w.WriteHeader(http.StatusOK) - }), - } - go func() { - err := server.ListenAndServe() - if err != nil && err != http.ErrServerClosed { - log.Fatalf("http server failed to ListenAndServe:%v", err) - } - }() + handler := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + suite.Equal(string("/auth?scope=repository%3Atestrepo%2Flocal-subchart%3Apull&service=testservice"), r.URL.String()) + w.WriteHeader(http.StatusOK) + }) + listener, err := net.Listen("tcp", suite.AuthServerHost) + suite.Nil(err, "no error creating server listner") + + ts := httptest.NewUnstartedServer(handler) + ts.Listener = listener + ts.Start() + defer ts.Close() // Load test chart (to build ref pushed in previous test) // Simple pull, chart only @@ -101,9 +91,6 @@ func (suite *RegistryScopeTestSuite) Test_2_Check_Pull_Request_Scope() { _, err = suite.RegistryClient.Pull(ref) suite.NotNil(err, "error pulling a simple chart because auth server don't give proper token") - //shutdown auth server - err = server.Shutdown(context.Background()) - suite.Nil(err, "shutdown simple auth server") } func TestRegistryScopeTestSuite(t *testing.T) {