101 lines · 2.4 KB · Go
RawDownload
// Copyright 2023 The Gitea Authors. All rights reserved.// SPDX-License-Identifier: MIT package integration import (	"fmt"	"net/http"	"testing" 	auth_model "forgejo.org/models/auth"	api "forgejo.org/modules/structs"	"forgejo.org/tests") func TestAPIUserSecrets(t *testing.T) {	defer tests.PrepareTestEnv(t)() 	session := loginUser(t, "user1")	token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteUser) 	t.Run("Create", func(t *testing.T) {		cases := []struct {			Name           string			ExpectedStatus int		}{			{				Name:           "",				ExpectedStatus: http.StatusNotFound,			},			{				Name:           "-",				ExpectedStatus: http.StatusBadRequest,			},			{				Name:           "_",				ExpectedStatus: http.StatusCreated,			},			{				Name:           "secret",				ExpectedStatus: http.StatusCreated,			},			{				Name:           "2secret",				ExpectedStatus: http.StatusBadRequest,			},			{				Name:           "GITEA_secret",				ExpectedStatus: http.StatusBadRequest,			},			{				Name:           "GITHUB_secret",				ExpectedStatus: http.StatusBadRequest,			},		} 		for _, c := range cases {			req := NewRequestWithJSON(t, "PUT", fmt.Sprintf("/api/v1/user/actions/secrets/%s", c.Name), api.CreateOrUpdateSecretOption{				Data: "data",			}).AddTokenAuth(token)			MakeRequest(t, req, c.ExpectedStatus)		}	}) 	t.Run("Update", func(t *testing.T) {		name := "update_secret"		url := fmt.Sprintf("/api/v1/user/actions/secrets/%s", name) 		req := NewRequestWithJSON(t, "PUT", url, api.CreateOrUpdateSecretOption{			Data: "initial",		}).AddTokenAuth(token)		MakeRequest(t, req, http.StatusCreated) 		req = NewRequestWithJSON(t, "PUT", url, api.CreateOrUpdateSecretOption{			Data: "changed",		}).AddTokenAuth(token)		MakeRequest(t, req, http.StatusNoContent)	}) 	t.Run("Delete", func(t *testing.T) {		name := "delete_secret"		url := fmt.Sprintf("/api/v1/user/actions/secrets/%s", name) 		req := NewRequestWithJSON(t, "PUT", url, api.CreateOrUpdateSecretOption{			Data: "initial",		}).AddTokenAuth(token)		MakeRequest(t, req, http.StatusCreated) 		req = NewRequest(t, "DELETE", url).			AddTokenAuth(token)		MakeRequest(t, req, http.StatusNoContent) 		req = NewRequest(t, "DELETE", url).			AddTokenAuth(token)		MakeRequest(t, req, http.StatusNotFound) 		req = NewRequest(t, "DELETE", "/api/v1/user/actions/secrets/000").			AddTokenAuth(token)		MakeRequest(t, req, http.StatusBadRequest)	})}