From 8fc344f6ccb12af85c1270ee7039374d80128781 Mon Sep 17 00:00:00 2001 From: Valentin Maerten Date: Sun, 23 Aug 2026 12:25:36 +0200 Subject: [PATCH] test(remote): drop the RemoteExists status tests --- taskfile/taskfile_test.go | 84 --------------------------------------- 1 file changed, 84 deletions(-) delete mode 100644 taskfile/taskfile_test.go diff --git a/taskfile/taskfile_test.go b/taskfile/taskfile_test.go deleted file mode 100644 index 79eb2cdd..00000000 --- a/taskfile/taskfile_test.go +++ /dev/null @@ -1,84 +0,0 @@ -package taskfile - -import ( - "net/http" - "net/http/httptest" - "net/url" - "testing" - - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - - "github.com/go-task/task/v3/errors" -) - -// alwaysStatus answers every request with the given status. -func alwaysStatus(t *testing.T, status int) (*url.URL, *int) { - t.Helper() - var requests int - srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - requests++ - w.WriteHeader(status) - })) - t.Cleanup(srv.Close) - return mustParse(t, srv.URL), &requests -} - -func TestRemoteExistsUnauthorized(t *testing.T) { - t.Parallel() - - u, requests := alwaysStatus(t, http.StatusUnauthorized) - _, err := RemoteExists(t.Context(), *u, http.DefaultClient) - - var fetchErr errors.TaskfileFetchFailedError - require.ErrorAs(t, err, &fetchErr) - assert.Equal(t, http.StatusUnauthorized, fetchErr.HTTPStatusCode) - assert.Equal(t, 1, *requests) -} - -// A 403 is ambiguous, so it keeps the existing behaviour. -func TestRemoteExistsForbiddenEverywhere(t *testing.T) { - t.Parallel() - - u, requests := alwaysStatus(t, http.StatusForbidden) - _, err := RemoteExists(t.Context(), *u, http.DefaultClient) - - var notFoundErr errors.TaskfileNotFoundError - assert.ErrorAs(t, err, ¬FoundErr) - assert.Greater(t, *requests, 1) -} - -func TestRemoteExistsForbiddenDirectoryWithReadableTaskfile(t *testing.T) { - t.Parallel() - - srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - if r.URL.Path != "/Taskfile.yml" { - w.WriteHeader(http.StatusForbidden) - return - } - w.Header().Set("Content-Type", "text/yaml") - w.WriteHeader(http.StatusOK) - })) - defer srv.Close() - - found, err := RemoteExists(t.Context(), *mustParse(t, srv.URL), http.DefaultClient) - require.NoError(t, err) - assert.Equal(t, "/Taskfile.yml", found.Path) -} - -func TestRemoteExistsNotFound(t *testing.T) { - t.Parallel() - - u, _ := alwaysStatus(t, http.StatusNotFound) - _, err := RemoteExists(t.Context(), *u, http.DefaultClient) - - var notFoundErr errors.TaskfileNotFoundError - assert.ErrorAs(t, err, ¬FoundErr) -} - -func mustParse(t *testing.T, rawURL string) *url.URL { - t.Helper() - parsed, err := url.Parse(rawURL) - require.NoError(t, err) - return parsed -}