Refactor integration test DecodeJSON calls to use generic return value (#37432)

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: wxiaoguang <2114189+wxiaoguang@users.noreply.github.com>
Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
This commit is contained in:
Copilot
2026-04-26 14:57:07 +00:00
committed by GitHub
parent 99cd4f6b22
commit 2671b997f2
105 changed files with 569 additions and 930 deletions

View File

@@ -70,8 +70,7 @@ jobs:
Name: new("approve-all-runs-fork"), Name: new("approve-all-runs-fork"),
}).AddTokenAuth(user4Token) }).AddTokenAuth(user4Token)
resp := MakeRequest(t, req, http.StatusAccepted) resp := MakeRequest(t, req, http.StatusAccepted)
var apiForkRepo api.Repository apiForkRepo := DecodeJSON(t, resp, &api.Repository{})
DecodeJSON(t, resp, &apiForkRepo)
forkRepo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: apiForkRepo.ID}) forkRepo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: apiForkRepo.ID})
user4APICtx := NewAPITestContext(t, user4.Name, forkRepo.Name, auth_model.AccessTokenScopeWriteRepository) user4APICtx := NewAPITestContext(t, user4.Name, forkRepo.Name, auth_model.AccessTokenScopeWriteRepository)
defer doAPIDeleteRepository(user4APICtx)(t) defer doAPIDeleteRepository(user4APICtx)(t)

View File

@@ -425,8 +425,7 @@ jobs:
Name: new("actions-concurrency-fork"), Name: new("actions-concurrency-fork"),
}).AddTokenAuth(user4Token) }).AddTokenAuth(user4Token)
resp := MakeRequest(t, req, http.StatusAccepted) resp := MakeRequest(t, req, http.StatusAccepted)
var apiForkRepo api.Repository apiForkRepo := DecodeJSON(t, resp, &api.Repository{})
DecodeJSON(t, resp, &apiForkRepo)
forkRepo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: apiForkRepo.ID}) forkRepo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: apiForkRepo.ID})
user4APICtx := NewAPITestContext(t, user4.Name, forkRepo.Name, auth_model.AccessTokenScopeWriteRepository) user4APICtx := NewAPITestContext(t, user4.Name, forkRepo.Name, auth_model.AccessTokenScopeWriteRepository)
defer doAPIDeleteRepository(user4APICtx)(t) defer doAPIDeleteRepository(user4APICtx)(t)

View File

@@ -159,8 +159,7 @@ jobs:
req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/actions/tasks", user2.Name, apiRepo.Name)). req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/actions/tasks", user2.Name, apiRepo.Name)).
AddTokenAuth(token) AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var actionTaskRespAfter api.ActionTaskResponse actionTaskRespAfter := DecodeJSON(t, resp, &api.ActionTaskResponse{})
DecodeJSON(t, resp, &actionTaskRespAfter)
for _, apiTask := range actionTaskRespAfter.Entries { for _, apiTask := range actionTaskRespAfter.Entries {
if apiTask.HeadSHA != fileResp.Commit.SHA { if apiTask.HeadSHA != fileResp.Commit.SHA {
continue continue
@@ -462,8 +461,7 @@ func getRepoRunnerID(t *testing.T, authToken, ownerName, repoName string) int64
t.Helper() t.Helper()
req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/actions/runners", ownerName, repoName)).AddTokenAuth(authToken) req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/actions/runners", ownerName, repoName)).AddTokenAuth(authToken)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
runnerList := api.ActionRunnersResponse{} runnerList := DecodeJSON(t, resp, &api.ActionRunnersResponse{})
DecodeJSON(t, resp, &runnerList)
require.Len(t, runnerList.Entries, 1) require.Len(t, runnerList.Entries, 1)
return runnerList.Entries[0].ID return runnerList.Entries[0].ID
} }
@@ -709,9 +707,8 @@ func createActionsTestRepo(t *testing.T, authToken, repoName string, isPrivate b
DefaultBranch: "main", DefaultBranch: "main",
}).AddTokenAuth(authToken) }).AddTokenAuth(authToken)
resp := MakeRequest(t, req, http.StatusCreated) resp := MakeRequest(t, req, http.StatusCreated)
var apiRepo api.Repository apiRepo := DecodeJSON(t, resp, &api.Repository{})
DecodeJSON(t, resp, &apiRepo) return apiRepo
return &apiRepo
} }
func getWorkflowCreateFileOptions(u *user_model.User, branch, msg, content string) *api.CreateFileOptions { func getWorkflowCreateFileOptions(u *user_model.User, branch, msg, content string) *api.CreateFileOptions {
@@ -740,9 +737,8 @@ func createWorkflowFile(t *testing.T, authToken, ownerName, repoName, treePath s
req := NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s", ownerName, repoName, treePath), opts). req := NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s", ownerName, repoName, treePath), opts).
AddTokenAuth(authToken) AddTokenAuth(authToken)
resp := MakeRequest(t, req, http.StatusCreated) resp := MakeRequest(t, req, http.StatusCreated)
var fileResponse api.FileResponse fileResponse := DecodeJSON(t, resp, &api.FileResponse{})
DecodeJSON(t, resp, &fileResponse) return fileResponse
return &fileResponse
} }
// getTaskJobNameByTaskID get the job name of the task by task ID // getTaskJobNameByTaskID get the job name of the task by task ID
@@ -752,8 +748,7 @@ func getTaskJobNameByTaskID(t *testing.T, authToken, ownerName, repoName string,
req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/actions/tasks", ownerName, repoName)). req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/actions/tasks", ownerName, repoName)).
AddTokenAuth(authToken) AddTokenAuth(authToken)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var taskRespBefore api.ActionTaskResponse taskRespBefore := DecodeJSON(t, resp, &api.ActionTaskResponse{})
DecodeJSON(t, resp, &taskRespBefore)
for _, apiTask := range taskRespBefore.Entries { for _, apiTask := range taskRespBefore.Entries {
if apiTask.ID == taskID { if apiTask.ID == taskID {
return apiTask.Name return apiTask.Name

View File

@@ -208,8 +208,7 @@ func TestActionsCrossRepoAccess(t *testing.T) {
AutoInit: true, AutoInit: true,
}).AddTokenAuth(token) }).AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusCreated) resp := MakeRequest(t, req, http.StatusCreated)
var repo structs.Repository repo := DecodeJSON(t, resp, &structs.Repository{})
DecodeJSON(t, resp, &repo)
return repo.ID return repo.ID
} }

View File

@@ -72,8 +72,7 @@ jobs:
// run1 and job1 belong to repo1, success // run1 and job1 belong to repo1, success
req = NewRequest(t, "POST", fmt.Sprintf("/%s/%s/actions/runs/%d/jobs/%d", user2.Name, repo1.Name, run1.ID, job1.ID)) req = NewRequest(t, "POST", fmt.Sprintf("/%s/%s/actions/runs/%d/jobs/%d", user2.Name, repo1.Name, run1.ID, job1.ID))
resp := user2Session.MakeRequest(t, req, http.StatusOK) resp := user2Session.MakeRequest(t, req, http.StatusOK)
var viewResp actions_web.ViewResponse viewResp := DecodeJSON(t, resp, &actions_web.ViewResponse{})
DecodeJSON(t, resp, &viewResp)
assert.Len(t, viewResp.State.Run.Jobs, 1) assert.Len(t, viewResp.State.Run.Jobs, 1)
assert.Equal(t, job1.ID, viewResp.State.Run.Jobs[0].ID) assert.Equal(t, job1.ID, viewResp.State.Run.Jobs[0].ID)

View File

@@ -86,10 +86,9 @@ func (r *mockRunner) registerAsRepoRunner(t *testing.T, ownerName, repoName, run
token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteRepository) token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteRepository)
req := NewRequest(t, http.MethodPost, fmt.Sprintf("/api/v1/repos/%s/%s/actions/runners/registration-token", ownerName, repoName)).AddTokenAuth(token) req := NewRequest(t, http.MethodPost, fmt.Sprintf("/api/v1/repos/%s/%s/actions/runners/registration-token", ownerName, repoName)).AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var registrationToken struct { registrationToken := DecodeJSON(t, resp, &struct {
Token string `json:"token"` Token string `json:"token"`
} }{})
DecodeJSON(t, resp, &registrationToken)
r.doRegister(t, runnerName, registrationToken.Token, labels, ephemeral) r.doRegister(t, runnerName, registrationToken.Token, labels, ephemeral)
} }

View File

@@ -1568,8 +1568,7 @@ jobs:
Name: new("close-pull-request-with-path-fork"), Name: new("close-pull-request-with-path-fork"),
}).AddTokenAuth(user4Token) }).AddTokenAuth(user4Token)
resp := MakeRequest(t, req, http.StatusAccepted) resp := MakeRequest(t, req, http.StatusAccepted)
var apiForkRepo api.Repository apiForkRepo := DecodeJSON(t, resp, &api.Repository{})
DecodeJSON(t, resp, &apiForkRepo)
forkRepo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: apiForkRepo.ID}) forkRepo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: apiForkRepo.ID})
user4APICtx := NewAPITestContext(t, user4.Name, forkRepo.Name, auth_model.AccessTokenScopeWriteRepository) user4APICtx := NewAPITestContext(t, user4.Name, forkRepo.Name, auth_model.AccessTokenScopeWriteRepository)

View File

@@ -53,8 +53,7 @@ func TestActionsArtifactUploadSingleFile(t *testing.T) {
Name: "artifact", Name: "artifact",
}).AddTokenAuth("8061e833a55f6fc0157c98b883e91fcfeeb1a71a") }).AddTokenAuth("8061e833a55f6fc0157c98b883e91fcfeeb1a71a")
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var uploadResp uploadArtifactResponse uploadResp := DecodeJSON(t, resp, &uploadArtifactResponse{})
DecodeJSON(t, resp, &uploadResp)
assert.Contains(t, uploadResp.FileContainerResourceURL, "/api/actions_pipeline/_apis/pipelines/workflows/791/artifacts") assert.Contains(t, uploadResp.FileContainerResourceURL, "/api/actions_pipeline/_apis/pipelines/workflows/791/artifacts")
// get upload url // get upload url
@@ -134,8 +133,7 @@ func TestActionsArtifactDownload(t *testing.T) {
req := NewRequest(t, "GET", "/api/actions_pipeline/_apis/pipelines/workflows/791/artifacts"). req := NewRequest(t, "GET", "/api/actions_pipeline/_apis/pipelines/workflows/791/artifacts").
AddTokenAuth("8061e833a55f6fc0157c98b883e91fcfeeb1a71a") AddTokenAuth("8061e833a55f6fc0157c98b883e91fcfeeb1a71a")
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var listResp listArtifactsResponse listResp := DecodeJSON(t, resp, &listArtifactsResponse{})
DecodeJSON(t, resp, &listResp)
assert.Equal(t, int64(2), listResp.Count) assert.Equal(t, int64(2), listResp.Count)
// Return list might be in any order. Get one file. // Return list might be in any order. Get one file.
@@ -155,8 +153,7 @@ func TestActionsArtifactDownload(t *testing.T) {
req = NewRequest(t, "GET", url). req = NewRequest(t, "GET", url).
AddTokenAuth("8061e833a55f6fc0157c98b883e91fcfeeb1a71a") AddTokenAuth("8061e833a55f6fc0157c98b883e91fcfeeb1a71a")
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
var downloadResp downloadArtifactResponse downloadResp := DecodeJSON(t, resp, &downloadArtifactResponse{})
DecodeJSON(t, resp, &downloadResp)
assert.Len(t, downloadResp.Value, 1) assert.Len(t, downloadResp.Value, 1)
assert.Equal(t, "artifact-download/abc.txt", downloadResp.Value[0].Path) assert.Equal(t, "artifact-download/abc.txt", downloadResp.Value[0].Path)
assert.Equal(t, "file", downloadResp.Value[0].ItemType) assert.Equal(t, "file", downloadResp.Value[0].ItemType)
@@ -183,8 +180,7 @@ func TestActionsArtifactUploadMultipleFile(t *testing.T) {
Name: testArtifactName, Name: testArtifactName,
}).AddTokenAuth("8061e833a55f6fc0157c98b883e91fcfeeb1a71a") }).AddTokenAuth("8061e833a55f6fc0157c98b883e91fcfeeb1a71a")
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var uploadResp uploadArtifactResponse uploadResp := DecodeJSON(t, resp, &uploadArtifactResponse{})
DecodeJSON(t, resp, &uploadResp)
assert.Contains(t, uploadResp.FileContainerResourceURL, "/api/actions_pipeline/_apis/pipelines/workflows/791/artifacts") assert.Contains(t, uploadResp.FileContainerResourceURL, "/api/actions_pipeline/_apis/pipelines/workflows/791/artifacts")
type uploadingFile struct { type uploadingFile struct {
@@ -236,8 +232,7 @@ func TestActionsArtifactDownloadMultiFiles(t *testing.T) {
req := NewRequest(t, "GET", "/api/actions_pipeline/_apis/pipelines/workflows/791/artifacts"). req := NewRequest(t, "GET", "/api/actions_pipeline/_apis/pipelines/workflows/791/artifacts").
AddTokenAuth("8061e833a55f6fc0157c98b883e91fcfeeb1a71a") AddTokenAuth("8061e833a55f6fc0157c98b883e91fcfeeb1a71a")
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var listResp listArtifactsResponse listResp := DecodeJSON(t, resp, &listArtifactsResponse{})
DecodeJSON(t, resp, &listResp)
assert.Equal(t, int64(2), listResp.Count) assert.Equal(t, int64(2), listResp.Count)
var fileContainerResourceURL string var fileContainerResourceURL string
@@ -254,8 +249,7 @@ func TestActionsArtifactDownloadMultiFiles(t *testing.T) {
req = NewRequest(t, "GET", url). req = NewRequest(t, "GET", url).
AddTokenAuth("8061e833a55f6fc0157c98b883e91fcfeeb1a71a") AddTokenAuth("8061e833a55f6fc0157c98b883e91fcfeeb1a71a")
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
var downloadResp downloadArtifactResponse downloadResp := DecodeJSON(t, resp, &downloadArtifactResponse{})
DecodeJSON(t, resp, &downloadResp)
assert.Len(t, downloadResp.Value, 2) assert.Len(t, downloadResp.Value, 2)
downloads := [][]string{{"multi-file-download/abc.txt", "B"}, {"multi-file-download/xyz/def.txt", "C"}} downloads := [][]string{{"multi-file-download/abc.txt", "B"}, {"multi-file-download/xyz/def.txt", "C"}}
@@ -293,8 +287,7 @@ func TestActionsArtifactUploadWithRetentionDays(t *testing.T) {
RetentionDays: 9, RetentionDays: 9,
}).AddTokenAuth("8061e833a55f6fc0157c98b883e91fcfeeb1a71a") }).AddTokenAuth("8061e833a55f6fc0157c98b883e91fcfeeb1a71a")
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var uploadResp uploadArtifactResponse uploadResp := DecodeJSON(t, resp, &uploadArtifactResponse{})
DecodeJSON(t, resp, &uploadResp)
assert.Contains(t, uploadResp.FileContainerResourceURL, "/api/actions_pipeline/_apis/pipelines/workflows/791/artifacts") assert.Contains(t, uploadResp.FileContainerResourceURL, "/api/actions_pipeline/_apis/pipelines/workflows/791/artifacts")
assert.Contains(t, uploadResp.FileContainerResourceURL, "?retentionDays=9") assert.Contains(t, uploadResp.FileContainerResourceURL, "?retentionDays=9")
@@ -327,16 +320,14 @@ func TestActionsArtifactOverwrite(t *testing.T) {
req := NewRequest(t, "GET", "/api/actions_pipeline/_apis/pipelines/workflows/791/artifacts"). req := NewRequest(t, "GET", "/api/actions_pipeline/_apis/pipelines/workflows/791/artifacts").
AddTokenAuth("8061e833a55f6fc0157c98b883e91fcfeeb1a71a") AddTokenAuth("8061e833a55f6fc0157c98b883e91fcfeeb1a71a")
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var listResp listArtifactsResponse listResp := DecodeJSON(t, resp, &listArtifactsResponse{})
DecodeJSON(t, resp, &listResp)
idx := strings.Index(listResp.Value[0].FileContainerResourceURL, "/api/actions_pipeline/_apis/pipelines/") idx := strings.Index(listResp.Value[0].FileContainerResourceURL, "/api/actions_pipeline/_apis/pipelines/")
url := listResp.Value[0].FileContainerResourceURL[idx+1:] + "?itemPath=artifact-download" url := listResp.Value[0].FileContainerResourceURL[idx+1:] + "?itemPath=artifact-download"
req = NewRequest(t, "GET", url). req = NewRequest(t, "GET", url).
AddTokenAuth("8061e833a55f6fc0157c98b883e91fcfeeb1a71a") AddTokenAuth("8061e833a55f6fc0157c98b883e91fcfeeb1a71a")
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
var downloadResp downloadArtifactResponse downloadResp := DecodeJSON(t, resp, &downloadArtifactResponse{})
DecodeJSON(t, resp, &downloadResp)
idx = strings.Index(downloadResp.Value[0].ContentLocation, "/api/actions_pipeline/_apis/pipelines/") idx = strings.Index(downloadResp.Value[0].ContentLocation, "/api/actions_pipeline/_apis/pipelines/")
url = downloadResp.Value[0].ContentLocation[idx:] url = downloadResp.Value[0].ContentLocation[idx:]
@@ -354,8 +345,7 @@ func TestActionsArtifactOverwrite(t *testing.T) {
Name: "artifact-download", Name: "artifact-download",
}).AddTokenAuth("8061e833a55f6fc0157c98b883e91fcfeeb1a71a") }).AddTokenAuth("8061e833a55f6fc0157c98b883e91fcfeeb1a71a")
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var uploadResp uploadArtifactResponse uploadResp := DecodeJSON(t, resp, &uploadArtifactResponse{})
DecodeJSON(t, resp, &uploadResp)
idx := strings.Index(uploadResp.FileContainerResourceURL, "/api/actions_pipeline/_apis/pipelines/") idx := strings.Index(uploadResp.FileContainerResourceURL, "/api/actions_pipeline/_apis/pipelines/")
url := uploadResp.FileContainerResourceURL[idx:] + "?itemPath=artifact-download/abc.txt" url := uploadResp.FileContainerResourceURL[idx:] + "?itemPath=artifact-download/abc.txt"
@@ -378,8 +368,7 @@ func TestActionsArtifactOverwrite(t *testing.T) {
req := NewRequest(t, "GET", "/api/actions_pipeline/_apis/pipelines/workflows/791/artifacts"). req := NewRequest(t, "GET", "/api/actions_pipeline/_apis/pipelines/workflows/791/artifacts").
AddTokenAuth("8061e833a55f6fc0157c98b883e91fcfeeb1a71a") AddTokenAuth("8061e833a55f6fc0157c98b883e91fcfeeb1a71a")
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var listResp listArtifactsResponse listResp := DecodeJSON(t, resp, &listArtifactsResponse{})
DecodeJSON(t, resp, &listResp)
var uploadedItem listArtifactsResponseItem var uploadedItem listArtifactsResponseItem
for _, item := range listResp.Value { for _, item := range listResp.Value {
@@ -395,8 +384,7 @@ func TestActionsArtifactOverwrite(t *testing.T) {
req = NewRequest(t, "GET", url). req = NewRequest(t, "GET", url).
AddTokenAuth("8061e833a55f6fc0157c98b883e91fcfeeb1a71a") AddTokenAuth("8061e833a55f6fc0157c98b883e91fcfeeb1a71a")
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
var downloadResp downloadArtifactResponse downloadResp := DecodeJSON(t, resp, &downloadArtifactResponse{})
DecodeJSON(t, resp, &downloadResp)
idx = strings.Index(downloadResp.Value[0].ContentLocation, "/api/actions_pipeline/_apis/pipelines/") idx = strings.Index(downloadResp.Value[0].ContentLocation, "/api/actions_pipeline/_apis/pipelines/")
url = downloadResp.Value[0].ContentLocation[idx:] url = downloadResp.Value[0].ContentLocation[idx:]
@@ -502,8 +490,7 @@ func uploadTestArtifactFile(t *testing.T, runID int64, authToken, artifactName,
Name: artifactName, Name: artifactName,
}).AddTokenAuth(authToken) }).AddTokenAuth(authToken)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var uploadResp uploadArtifactResponse uploadResp := DecodeJSON(t, resp, &uploadArtifactResponse{})
DecodeJSON(t, resp, &uploadResp)
idx := strings.Index(uploadResp.FileContainerResourceURL, "/api/actions_pipeline/_apis/pipelines/") idx := strings.Index(uploadResp.FileContainerResourceURL, "/api/actions_pipeline/_apis/pipelines/")
uploadURL := uploadResp.FileContainerResourceURL[idx:] + "?itemPath=" + artifactName + "/" + fileName uploadURL := uploadResp.FileContainerResourceURL[idx:] + "?itemPath=" + artifactName + "/" + fileName
@@ -527,8 +514,7 @@ func listArtifactNamesForRun(t *testing.T, runID int64, taskToken string) []stri
req := NewRequest(t, "GET", fmt.Sprintf("/api/actions_pipeline/_apis/pipelines/workflows/%d/artifacts", runID)). req := NewRequest(t, "GET", fmt.Sprintf("/api/actions_pipeline/_apis/pipelines/workflows/%d/artifacts", runID)).
AddTokenAuth(taskToken) AddTokenAuth(taskToken)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var listResp listArtifactsResponse listResp := DecodeJSON(t, resp, &listArtifactsResponse{})
DecodeJSON(t, resp, &listResp)
names := make([]string, 0, len(listResp.Value)) names := make([]string, 0, len(listResp.Value))
for _, item := range listResp.Value { for _, item := range listResp.Value {

View File

@@ -20,8 +20,7 @@ func testActionUserSignIn(t *testing.T) {
AddTokenAuth("8061e833a55f6fc0157c98b883e91fcfeeb1a71a") AddTokenAuth("8061e833a55f6fc0157c98b883e91fcfeeb1a71a")
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var u api.User u := DecodeJSON(t, resp, &api.User{})
DecodeJSON(t, resp, &u)
assert.Equal(t, "gitea-actions", u.UserName) assert.Equal(t, "gitea-actions", u.UserName)
} }

View File

@@ -36,16 +36,14 @@ func testActionsRunnerAdmin(t *testing.T) {
token := getUserToken(t, adminUsername, auth_model.AccessTokenScopeWriteAdmin) token := getUserToken(t, adminUsername, auth_model.AccessTokenScopeWriteAdmin)
req := NewRequest(t, "POST", "/api/v1/admin/actions/runners/registration-token").AddTokenAuth(token) req := NewRequest(t, "POST", "/api/v1/admin/actions/runners/registration-token").AddTokenAuth(token)
tokenResp := MakeRequest(t, req, http.StatusOK) tokenResp := MakeRequest(t, req, http.StatusOK)
var registrationToken struct { registrationToken := DecodeJSON(t, tokenResp, &struct {
Token string `json:"token"` Token string `json:"token"`
} }{})
DecodeJSON(t, tokenResp, &registrationToken)
assert.NotEmpty(t, registrationToken.Token) assert.NotEmpty(t, registrationToken.Token)
req = NewRequest(t, "GET", "/api/v1/admin/actions/runners").AddTokenAuth(token) req = NewRequest(t, "GET", "/api/v1/admin/actions/runners").AddTokenAuth(token)
runnerListResp := MakeRequest(t, req, http.StatusOK) runnerListResp := MakeRequest(t, req, http.StatusOK)
runnerList := api.ActionRunnersResponse{} runnerList := DecodeJSON(t, runnerListResp, &api.ActionRunnersResponse{})
DecodeJSON(t, runnerListResp, &runnerList)
idx := slices.IndexFunc(runnerList.Entries, func(e *api.ActionRunner) bool { return e.ID == 34349 }) idx := slices.IndexFunc(runnerList.Entries, func(e *api.ActionRunner) bool { return e.ID == 34349 })
require.NotEqual(t, -1, idx) require.NotEqual(t, -1, idx)
@@ -63,8 +61,7 @@ func testActionsRunnerAdmin(t *testing.T) {
MakeRequest(t, req, http.StatusOK) MakeRequest(t, req, http.StatusOK)
req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/admin/actions/runners/%d", expectedRunner.ID)).AddTokenAuth(token) req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/admin/actions/runners/%d", expectedRunner.ID)).AddTokenAuth(token)
runnerResp := MakeRequest(t, req, http.StatusOK) runnerResp := MakeRequest(t, req, http.StatusOK)
disabledRunner := api.ActionRunner{} disabledRunner := DecodeJSON(t, runnerResp, &api.ActionRunner{})
DecodeJSON(t, runnerResp, &disabledRunner)
assert.True(t, disabledRunner.Disabled) assert.True(t, disabledRunner.Disabled)
req = newRunnerUpdateRequest(t, fmt.Sprintf("/api/v1/admin/actions/runners/%d", expectedRunner.ID), false).AddTokenAuth(token) req = newRunnerUpdateRequest(t, fmt.Sprintf("/api/v1/admin/actions/runners/%d", expectedRunner.ID), false).AddTokenAuth(token)
@@ -78,8 +75,7 @@ func testActionsRunnerAdmin(t *testing.T) {
req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/admin/actions/runners/%d", runnerEntry.ID)).AddTokenAuth(token) req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/admin/actions/runners/%d", runnerEntry.ID)).AddTokenAuth(token)
runnerResp = MakeRequest(t, req, http.StatusOK) runnerResp = MakeRequest(t, req, http.StatusOK)
runner := api.ActionRunner{} runner := DecodeJSON(t, runnerResp, &api.ActionRunner{})
DecodeJSON(t, runnerResp, &runner)
assert.Equal(t, runnerEntry.Name, runner.Name) assert.Equal(t, runnerEntry.Name, runner.Name)
assert.Equal(t, runnerEntry.ID, runner.ID) assert.Equal(t, runnerEntry.ID, runner.ID)
@@ -102,16 +98,14 @@ func testActionsRunnerUser(t *testing.T) {
token := getUserToken(t, userUsername, auth_model.AccessTokenScopeWriteUser) token := getUserToken(t, userUsername, auth_model.AccessTokenScopeWriteUser)
req := NewRequest(t, "POST", "/api/v1/user/actions/runners/registration-token").AddTokenAuth(token) req := NewRequest(t, "POST", "/api/v1/user/actions/runners/registration-token").AddTokenAuth(token)
tokenResp := MakeRequest(t, req, http.StatusOK) tokenResp := MakeRequest(t, req, http.StatusOK)
var registrationToken struct { registrationToken := DecodeJSON(t, tokenResp, &struct {
Token string `json:"token"` Token string `json:"token"`
} }{})
DecodeJSON(t, tokenResp, &registrationToken)
assert.NotEmpty(t, registrationToken.Token) assert.NotEmpty(t, registrationToken.Token)
req = NewRequest(t, "GET", "/api/v1/user/actions/runners").AddTokenAuth(token) req = NewRequest(t, "GET", "/api/v1/user/actions/runners").AddTokenAuth(token)
runnerListResp := MakeRequest(t, req, http.StatusOK) runnerListResp := MakeRequest(t, req, http.StatusOK)
runnerList := api.ActionRunnersResponse{} runnerList := DecodeJSON(t, runnerListResp, &api.ActionRunnersResponse{})
DecodeJSON(t, runnerListResp, &runnerList)
assert.Len(t, runnerList.Entries, 1) assert.Len(t, runnerList.Entries, 1)
assert.Equal(t, "runner_to_be_deleted-user", runnerList.Entries[0].Name) assert.Equal(t, "runner_to_be_deleted-user", runnerList.Entries[0].Name)
@@ -126,8 +120,7 @@ func testActionsRunnerUser(t *testing.T) {
req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/user/actions/runners/%d", runnerList.Entries[0].ID)).AddTokenAuth(token) req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/user/actions/runners/%d", runnerList.Entries[0].ID)).AddTokenAuth(token)
runnerResp := MakeRequest(t, req, http.StatusOK) runnerResp := MakeRequest(t, req, http.StatusOK)
runner := api.ActionRunner{} runner := DecodeJSON(t, runnerResp, &api.ActionRunner{})
DecodeJSON(t, runnerResp, &runner)
assert.Equal(t, "runner_to_be_deleted-user", runner.Name) assert.Equal(t, "runner_to_be_deleted-user", runner.Name)
assert.Equal(t, int64(34346), runner.ID) assert.Equal(t, int64(34346), runner.ID)
@@ -143,7 +136,7 @@ func testActionsRunnerUser(t *testing.T) {
MakeRequest(t, req, http.StatusOK) MakeRequest(t, req, http.StatusOK)
req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/user/actions/runners/%d", runnerList.Entries[0].ID)).AddTokenAuth(token) req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/user/actions/runners/%d", runnerList.Entries[0].ID)).AddTokenAuth(token)
runnerResp = MakeRequest(t, req, http.StatusOK) runnerResp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, runnerResp, &runner) runner = DecodeJSON(t, runnerResp, &api.ActionRunner{})
assert.True(t, runner.Disabled) assert.True(t, runner.Disabled)
req = newRunnerUpdateRequest(t, fmt.Sprintf("/api/v1/user/actions/runners/%d", runnerList.Entries[0].ID), false).AddTokenAuth(token) req = newRunnerUpdateRequest(t, fmt.Sprintf("/api/v1/user/actions/runners/%d", runnerList.Entries[0].ID), false).AddTokenAuth(token)
@@ -170,8 +163,7 @@ func testActionsRunnerOwner(t *testing.T) {
req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/orgs/org3/actions/runners/%d", 34347)).AddTokenAuth(token) req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/orgs/org3/actions/runners/%d", 34347)).AddTokenAuth(token)
runnerResp := MakeRequest(t, req, http.StatusOK) runnerResp := MakeRequest(t, req, http.StatusOK)
runner := api.ActionRunner{} runner := DecodeJSON(t, runnerResp, &api.ActionRunner{})
DecodeJSON(t, runnerResp, &runner)
assert.Equal(t, "runner_to_be_deleted-org", runner.Name) assert.Equal(t, "runner_to_be_deleted-org", runner.Name)
assert.Equal(t, int64(34347), runner.ID) assert.Equal(t, int64(34347), runner.ID)
@@ -187,16 +179,14 @@ func testActionsRunnerOwner(t *testing.T) {
token := getUserToken(t, userUsername, auth_model.AccessTokenScopeWriteOrganization) token := getUserToken(t, userUsername, auth_model.AccessTokenScopeWriteOrganization)
req := NewRequest(t, "POST", "/api/v1/orgs/org3/actions/runners/registration-token").AddTokenAuth(token) req := NewRequest(t, "POST", "/api/v1/orgs/org3/actions/runners/registration-token").AddTokenAuth(token)
tokenResp := MakeRequest(t, req, http.StatusOK) tokenResp := MakeRequest(t, req, http.StatusOK)
var registrationToken struct { registrationToken := DecodeJSON(t, tokenResp, &struct {
Token string `json:"token"` Token string `json:"token"`
} }{})
DecodeJSON(t, tokenResp, &registrationToken)
assert.NotEmpty(t, registrationToken.Token) assert.NotEmpty(t, registrationToken.Token)
req = NewRequest(t, "GET", "/api/v1/orgs/org3/actions/runners").AddTokenAuth(token) req = NewRequest(t, "GET", "/api/v1/orgs/org3/actions/runners").AddTokenAuth(token)
runnerListResp := MakeRequest(t, req, http.StatusOK) runnerListResp := MakeRequest(t, req, http.StatusOK)
runnerList := api.ActionRunnersResponse{} runnerList := DecodeJSON(t, runnerListResp, &api.ActionRunnersResponse{})
DecodeJSON(t, runnerListResp, &runnerList)
idx := slices.IndexFunc(runnerList.Entries, func(e *api.ActionRunner) bool { return e.ID == 34347 }) idx := slices.IndexFunc(runnerList.Entries, func(e *api.ActionRunner) bool { return e.ID == 34347 })
require.NotEqual(t, -1, idx) require.NotEqual(t, -1, idx)
@@ -215,8 +205,7 @@ func testActionsRunnerOwner(t *testing.T) {
req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/orgs/org3/actions/runners/%d", expectedRunner.ID)).AddTokenAuth(token) req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/orgs/org3/actions/runners/%d", expectedRunner.ID)).AddTokenAuth(token)
runnerResp := MakeRequest(t, req, http.StatusOK) runnerResp := MakeRequest(t, req, http.StatusOK)
runner := api.ActionRunner{} runner := DecodeJSON(t, runnerResp, &api.ActionRunner{})
DecodeJSON(t, runnerResp, &runner)
assert.Equal(t, "runner_to_be_deleted-org", runner.Name) assert.Equal(t, "runner_to_be_deleted-org", runner.Name)
assert.Equal(t, int64(34347), runner.ID) assert.Equal(t, int64(34347), runner.ID)
@@ -232,7 +221,7 @@ func testActionsRunnerOwner(t *testing.T) {
MakeRequest(t, req, http.StatusOK) MakeRequest(t, req, http.StatusOK)
req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/orgs/org3/actions/runners/%d", expectedRunner.ID)).AddTokenAuth(token) req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/orgs/org3/actions/runners/%d", expectedRunner.ID)).AddTokenAuth(token)
runnerResp = MakeRequest(t, req, http.StatusOK) runnerResp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, runnerResp, &runner) runner = DecodeJSON(t, runnerResp, &api.ActionRunner{})
assert.True(t, runner.Disabled) assert.True(t, runner.Disabled)
req = newRunnerUpdateRequest(t, fmt.Sprintf("/api/v1/orgs/org3/actions/runners/%d", expectedRunner.ID), false).AddTokenAuth(token) req = newRunnerUpdateRequest(t, fmt.Sprintf("/api/v1/orgs/org3/actions/runners/%d", expectedRunner.ID), false).AddTokenAuth(token)
@@ -311,8 +300,7 @@ func testActionsRunnerRepo(t *testing.T) {
req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/user2/repo1/actions/runners/%d", 34348)).AddTokenAuth(token) req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/user2/repo1/actions/runners/%d", 34348)).AddTokenAuth(token)
runnerResp := MakeRequest(t, req, http.StatusOK) runnerResp := MakeRequest(t, req, http.StatusOK)
runner := api.ActionRunner{} runner := DecodeJSON(t, runnerResp, &api.ActionRunner{})
DecodeJSON(t, runnerResp, &runner)
assert.Equal(t, "runner_to_be_deleted-repo1", runner.Name) assert.Equal(t, "runner_to_be_deleted-repo1", runner.Name)
assert.Equal(t, int64(34348), runner.ID) assert.Equal(t, int64(34348), runner.ID)
@@ -328,16 +316,14 @@ func testActionsRunnerRepo(t *testing.T) {
token := getUserToken(t, userUsername, auth_model.AccessTokenScopeWriteRepository) token := getUserToken(t, userUsername, auth_model.AccessTokenScopeWriteRepository)
req := NewRequest(t, "POST", "/api/v1/repos/user2/repo1/actions/runners/registration-token").AddTokenAuth(token) req := NewRequest(t, "POST", "/api/v1/repos/user2/repo1/actions/runners/registration-token").AddTokenAuth(token)
tokenResp := MakeRequest(t, req, http.StatusOK) tokenResp := MakeRequest(t, req, http.StatusOK)
var registrationToken struct { registrationToken := DecodeJSON(t, tokenResp, &struct {
Token string `json:"token"` Token string `json:"token"`
} }{})
DecodeJSON(t, tokenResp, &registrationToken)
assert.NotEmpty(t, registrationToken.Token) assert.NotEmpty(t, registrationToken.Token)
req = NewRequest(t, "GET", "/api/v1/repos/user2/repo1/actions/runners").AddTokenAuth(token) req = NewRequest(t, "GET", "/api/v1/repos/user2/repo1/actions/runners").AddTokenAuth(token)
runnerListResp := MakeRequest(t, req, http.StatusOK) runnerListResp := MakeRequest(t, req, http.StatusOK)
runnerList := api.ActionRunnersResponse{} runnerList := DecodeJSON(t, runnerListResp, &api.ActionRunnersResponse{})
DecodeJSON(t, runnerListResp, &runnerList)
assert.Len(t, runnerList.Entries, 1) assert.Len(t, runnerList.Entries, 1)
assert.Equal(t, "runner_to_be_deleted-repo1", runnerList.Entries[0].Name) assert.Equal(t, "runner_to_be_deleted-repo1", runnerList.Entries[0].Name)
@@ -352,8 +338,7 @@ func testActionsRunnerRepo(t *testing.T) {
req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/user2/repo1/actions/runners/%d", runnerList.Entries[0].ID)).AddTokenAuth(token) req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/user2/repo1/actions/runners/%d", runnerList.Entries[0].ID)).AddTokenAuth(token)
runnerResp := MakeRequest(t, req, http.StatusOK) runnerResp := MakeRequest(t, req, http.StatusOK)
runner := api.ActionRunner{} runner := DecodeJSON(t, runnerResp, &api.ActionRunner{})
DecodeJSON(t, runnerResp, &runner)
assert.Equal(t, "runner_to_be_deleted-repo1", runner.Name) assert.Equal(t, "runner_to_be_deleted-repo1", runner.Name)
assert.Equal(t, int64(34348), runner.ID) assert.Equal(t, int64(34348), runner.ID)
@@ -369,7 +354,7 @@ func testActionsRunnerRepo(t *testing.T) {
MakeRequest(t, req, http.StatusOK) MakeRequest(t, req, http.StatusOK)
req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/user2/repo1/actions/runners/%d", runnerList.Entries[0].ID)).AddTokenAuth(token) req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/user2/repo1/actions/runners/%d", runnerList.Entries[0].ID)).AddTokenAuth(token)
runnerResp = MakeRequest(t, req, http.StatusOK) runnerResp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, runnerResp, &runner) runner = DecodeJSON(t, runnerResp, &api.ActionRunner{})
assert.True(t, runner.Disabled) assert.True(t, runner.Disabled)
req = newRunnerUpdateRequest(t, fmt.Sprintf("/api/v1/repos/user2/repo1/actions/runners/%d", runnerList.Entries[0].ID), false).AddTokenAuth(token) req = newRunnerUpdateRequest(t, fmt.Sprintf("/api/v1/repos/user2/repo1/actions/runners/%d", runnerList.Entries[0].ID), false).AddTokenAuth(token)

View File

@@ -36,8 +36,7 @@ func TestAPIAdminOrgCreate(t *testing.T) {
AddTokenAuth(token) AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusCreated) resp := MakeRequest(t, req, http.StatusCreated)
var apiOrg api.Organization apiOrg := DecodeJSON(t, resp, &api.Organization{})
DecodeJSON(t, resp, &apiOrg)
assert.Equal(t, org.UserName, apiOrg.Name) assert.Equal(t, org.UserName, apiOrg.Name)
assert.Equal(t, org.FullName, apiOrg.FullName) assert.Equal(t, org.FullName, apiOrg.FullName)

View File

@@ -36,8 +36,7 @@ func TestAPIAdminCreateAndDeleteSSHKey(t *testing.T) {
}).AddTokenAuth(token) }).AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusCreated) resp := MakeRequest(t, req, http.StatusCreated)
var newPublicKey api.PublicKey newPublicKey := DecodeJSON(t, resp, &api.PublicKey{})
DecodeJSON(t, resp, &newPublicKey)
unittest.AssertExistsAndLoadBean(t, &asymkey_model.PublicKey{ unittest.AssertExistsAndLoadBean(t, &asymkey_model.PublicKey{
ID: newPublicKey.ID, ID: newPublicKey.ID,
Name: newPublicKey.Title, Name: newPublicKey.Title,
@@ -73,8 +72,7 @@ func TestAPIAdminDeleteUnauthorizedKey(t *testing.T) {
"title": "test-key", "title": "test-key",
}).AddTokenAuth(token) }).AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusCreated) resp := MakeRequest(t, req, http.StatusCreated)
var newPublicKey api.PublicKey newPublicKey := DecodeJSON(t, resp, &api.PublicKey{})
DecodeJSON(t, resp, &newPublicKey)
token = getUserToken(t, normalUsername, auth_model.AccessTokenScopeAll) token = getUserToken(t, normalUsername, auth_model.AccessTokenScopeAll)
req = NewRequestf(t, "DELETE", "/api/v1/admin/users/%s/keys/%d", adminUsername, newPublicKey.ID). req = NewRequestf(t, "DELETE", "/api/v1/admin/users/%s/keys/%d", adminUsername, newPublicKey.ID).
@@ -91,8 +89,7 @@ func TestAPISudoUser(t *testing.T) {
req := NewRequest(t, "GET", "/api/v1/user?sudo="+normalUsername). req := NewRequest(t, "GET", "/api/v1/user?sudo="+normalUsername).
AddTokenAuth(token) AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var user api.User user := DecodeJSON(t, resp, &api.User{})
DecodeJSON(t, resp, &user)
assert.Equal(t, normalUsername, user.UserName) assert.Equal(t, normalUsername, user.UserName)
} }
@@ -116,8 +113,7 @@ func TestAPIListUsers(t *testing.T) {
req := NewRequest(t, "GET", "/api/v1/admin/users"). req := NewRequest(t, "GET", "/api/v1/admin/users").
AddTokenAuth(token) AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var users []api.User users := DecodeJSON(t, resp, []api.User{})
DecodeJSON(t, resp, &users)
found := false found := false
for _, user := range users { for _, user := range users {
@@ -306,8 +302,7 @@ func TestAPICron(t *testing.T) {
assert.Equal(t, "29", resp.Header().Get("X-Total-Count")) assert.Equal(t, "29", resp.Header().Get("X-Total-Count"))
var crons []api.Cron crons := DecodeJSON(t, resp, []api.Cron{})
DecodeJSON(t, resp, &crons)
assert.Len(t, crons, 29) assert.Len(t, crons, 29)
}) })
@@ -328,8 +323,7 @@ func TestAPICron(t *testing.T) {
AddTokenAuth(token) AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var crons []api.Cron crons := DecodeJSON(t, resp, []api.Cron{})
DecodeJSON(t, resp, &crons)
for _, cron := range crons { for _, cron := range crons {
if cron.Name == "archive_cleanup" { if cron.Name == "archive_cleanup" {

View File

@@ -30,8 +30,7 @@ func testAPIGetBranch(t *testing.T, branchName string, exists bool) {
return return
} }
assert.Equal(t, http.StatusOK, resp.Code) assert.Equal(t, http.StatusOK, resp.Code)
var branch api.Branch branch := DecodeJSON(t, resp, &api.Branch{})
DecodeJSON(t, resp, &branch)
assert.Equal(t, branchName, branch.Name) assert.Equal(t, branchName, branch.Name)
assert.True(t, branch.UserCanPush) assert.True(t, branch.UserCanPush)
assert.True(t, branch.UserCanMerge) assert.True(t, branch.UserCanMerge)
@@ -44,10 +43,9 @@ func testAPIGetBranchProtection(t *testing.T, branchName string, expectedHTTPSta
resp := MakeRequest(t, req, expectedHTTPStatus) resp := MakeRequest(t, req, expectedHTTPStatus)
if resp.Code == http.StatusOK { if resp.Code == http.StatusOK {
var branchProtection api.BranchProtection branchProtection := DecodeJSON(t, resp, &api.BranchProtection{})
DecodeJSON(t, resp, &branchProtection)
assert.Equal(t, branchName, branchProtection.RuleName) assert.Equal(t, branchName, branchProtection.RuleName)
return &branchProtection return branchProtection
} }
return nil return nil
} }
@@ -60,8 +58,7 @@ func testAPICreateBranchProtection(t *testing.T, branchName string, expectedPrio
resp := MakeRequest(t, req, expectedHTTPStatus) resp := MakeRequest(t, req, expectedHTTPStatus)
if resp.Code == http.StatusCreated { if resp.Code == http.StatusCreated {
var branchProtection api.BranchProtection branchProtection := DecodeJSON(t, resp, &api.BranchProtection{})
DecodeJSON(t, resp, &branchProtection)
assert.Equal(t, branchName, branchProtection.RuleName) assert.Equal(t, branchName, branchProtection.RuleName)
assert.EqualValues(t, expectedPriority, branchProtection.Priority) assert.EqualValues(t, expectedPriority, branchProtection.Priority)
} }
@@ -74,8 +71,7 @@ func testAPIEditBranchProtection(t *testing.T, branchName string, body *api.Bran
resp := MakeRequest(t, req, expectedHTTPStatus) resp := MakeRequest(t, req, expectedHTTPStatus)
if resp.Code == http.StatusOK { if resp.Code == http.StatusOK {
var branchProtection api.BranchProtection branchProtection := DecodeJSON(t, resp, &api.BranchProtection{})
DecodeJSON(t, resp, &branchProtection)
assert.Equal(t, branchName, branchProtection.RuleName) assert.Equal(t, branchName, branchProtection.RuleName)
} }
} }
@@ -179,8 +175,7 @@ func testAPICreateBranch(t testing.TB, session *TestSession, user, repo, oldBran
}).AddTokenAuth(token) }).AddTokenAuth(token)
resp := MakeRequest(t, req, status) resp := MakeRequest(t, req, status)
var branch api.Branch branch := DecodeJSON(t, resp, &api.Branch{})
DecodeJSON(t, resp, &branch)
if resp.Result().StatusCode == http.StatusCreated { if resp.Result().StatusCode == http.StatusCreated {
assert.Equal(t, newBranch, branch.Name) assert.Equal(t, newBranch, branch.Name)

View File

@@ -50,8 +50,7 @@ func TestAPIGetCommentAttachment(t *testing.T) {
AddTokenAuth(token) AddTokenAuth(token)
resp := session.MakeRequest(t, req, http.StatusOK) resp := session.MakeRequest(t, req, http.StatusOK)
var apiAttachment api.Attachment apiAttachment := DecodeJSON(t, resp, &api.Attachment{})
DecodeJSON(t, resp, &apiAttachment)
expect := convert.ToAPIAttachment(repo, attachment) expect := convert.ToAPIAttachment(repo, attachment)
assert.Equal(t, expect.ID, apiAttachment.ID) assert.Equal(t, expect.ID, apiAttachment.ID)
@@ -75,8 +74,7 @@ func TestAPIListCommentAttachments(t *testing.T) {
AddTokenAuth(token) AddTokenAuth(token)
resp := session.MakeRequest(t, req, http.StatusOK) resp := session.MakeRequest(t, req, http.StatusOK)
var apiAttachments []*api.Attachment apiAttachments := DecodeJSON(t, resp, []*api.Attachment{})
DecodeJSON(t, resp, &apiAttachments)
expectedCount := unittest.GetCount(t, &repo_model.Attachment{CommentID: comment.ID}) expectedCount := unittest.GetCount(t, &repo_model.Attachment{CommentID: comment.ID})
assert.Len(t, apiAttachments, expectedCount) assert.Len(t, apiAttachments, expectedCount)
@@ -110,9 +108,7 @@ func TestAPICreateCommentAttachment(t *testing.T) {
SetHeader("Content-Type", writer.FormDataContentType()) SetHeader("Content-Type", writer.FormDataContentType())
resp := session.MakeRequest(t, req, http.StatusCreated) resp := session.MakeRequest(t, req, http.StatusCreated)
apiAttachment := new(api.Attachment) apiAttachment := DecodeJSON(t, resp, &api.Attachment{})
DecodeJSON(t, resp, &apiAttachment)
unittest.AssertExistsAndLoadBean(t, &repo_model.Attachment{ID: apiAttachment.ID, CommentID: comment.ID}) unittest.AssertExistsAndLoadBean(t, &repo_model.Attachment{ID: apiAttachment.ID, CommentID: comment.ID})
} }
@@ -163,9 +159,7 @@ func TestAPIEditCommentAttachment(t *testing.T) {
"name": newAttachmentName, "name": newAttachmentName,
}).AddTokenAuth(token) }).AddTokenAuth(token)
resp := session.MakeRequest(t, req, http.StatusCreated) resp := session.MakeRequest(t, req, http.StatusCreated)
apiAttachment := new(api.Attachment) apiAttachment := DecodeJSON(t, resp, &api.Attachment{})
DecodeJSON(t, resp, &apiAttachment)
unittest.AssertExistsAndLoadBean(t, &repo_model.Attachment{ID: apiAttachment.ID, CommentID: comment.ID, Name: apiAttachment.Name}) unittest.AssertExistsAndLoadBean(t, &repo_model.Attachment{ID: apiAttachment.ID, CommentID: comment.ID, Name: apiAttachment.Name})
} }

View File

@@ -34,8 +34,7 @@ func TestAPIListRepoComments(t *testing.T) {
req := NewRequest(t, "GET", link.String()) req := NewRequest(t, "GET", link.String())
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var apiComments []*api.Comment apiComments := DecodeJSON(t, resp, []*api.Comment{})
DecodeJSON(t, resp, &apiComments)
assert.Len(t, apiComments, 2) assert.Len(t, apiComments, 2)
for _, apiComment := range apiComments { for _, apiComment := range apiComments {
c := &issues_model.Comment{ID: apiComment.ID} c := &issues_model.Comment{ID: apiComment.ID}
@@ -52,7 +51,7 @@ func TestAPIListRepoComments(t *testing.T) {
link.RawQuery = query.Encode() link.RawQuery = query.Encode()
req = NewRequest(t, "GET", link.String()) req = NewRequest(t, "GET", link.String())
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &apiComments) apiComments = DecodeJSON(t, resp, []*api.Comment{})
assert.Len(t, apiComments, 1) assert.Len(t, apiComments, 1)
assert.EqualValues(t, 2, apiComments[0].ID) assert.EqualValues(t, 2, apiComments[0].ID)
@@ -61,7 +60,7 @@ func TestAPIListRepoComments(t *testing.T) {
link.RawQuery = query.Encode() link.RawQuery = query.Encode()
req = NewRequest(t, "GET", link.String()) req = NewRequest(t, "GET", link.String())
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &apiComments) apiComments = DecodeJSON(t, resp, []*api.Comment{})
assert.Len(t, apiComments, 1) assert.Len(t, apiComments, 1)
assert.EqualValues(t, 3, apiComments[0].ID) assert.EqualValues(t, 3, apiComments[0].ID)
} }
@@ -80,8 +79,7 @@ func TestAPIListIssueComments(t *testing.T) {
AddTokenAuth(token) AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var comments []*api.Comment comments := DecodeJSON(t, resp, []*api.Comment{})
DecodeJSON(t, resp, &comments)
expectedCount := unittest.GetCount(t, &issues_model.Comment{IssueID: issue.ID}, expectedCount := unittest.GetCount(t, &issues_model.Comment{IssueID: issue.ID},
unittest.Cond("type = ?", issues_model.CommentTypeComment)) unittest.Cond("type = ?", issues_model.CommentTypeComment))
assert.Len(t, comments, expectedCount) assert.Len(t, comments, expectedCount)
@@ -103,8 +101,7 @@ func TestAPICreateComment(t *testing.T) {
}).AddTokenAuth(token) }).AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusCreated) resp := MakeRequest(t, req, http.StatusCreated)
var updatedComment api.Comment updatedComment := DecodeJSON(t, resp, &api.Comment{})
DecodeJSON(t, resp, &updatedComment)
assert.Equal(t, commentBody, updatedComment.Body) assert.Equal(t, commentBody, updatedComment.Body)
unittest.AssertExistsAndLoadBean(t, &issues_model.Comment{ID: updatedComment.ID, IssueID: issue.ID, Content: commentBody}) unittest.AssertExistsAndLoadBean(t, &issues_model.Comment{ID: updatedComment.ID, IssueID: issue.ID, Content: commentBody})
@@ -150,8 +147,7 @@ func TestAPIGetComment(t *testing.T) {
AddTokenAuth(token) AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var apiComment api.Comment apiComment := DecodeJSON(t, resp, &api.Comment{})
DecodeJSON(t, resp, &apiComment)
assert.NoError(t, comment.LoadPoster(t.Context())) assert.NoError(t, comment.LoadPoster(t.Context()))
expect := convert.ToAPIComment(t.Context(), repo, comment) expect := convert.ToAPIComment(t.Context(), repo, comment)
@@ -186,8 +182,7 @@ func TestAPIGetSystemUserComment(t *testing.T) {
req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/issues/comments/%d", repoOwner.Name, repo.Name, comment.ID) req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/issues/comments/%d", repoOwner.Name, repo.Name, comment.ID)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var apiComment api.Comment apiComment := DecodeJSON(t, resp, &api.Comment{})
DecodeJSON(t, resp, &apiComment)
if assert.NotNil(t, apiComment.Poster) { if assert.NotNil(t, apiComment.Poster) {
if assert.Equal(t, systemUser.ID, apiComment.Poster.ID) { if assert.Equal(t, systemUser.ID, apiComment.Poster.ID) {
@@ -230,8 +225,7 @@ func TestAPIEditComment(t *testing.T) {
}).AddTokenAuth(token) }).AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var updatedComment api.Comment updatedComment := DecodeJSON(t, resp, &api.Comment{})
DecodeJSON(t, resp, &updatedComment)
assert.Equal(t, comment.ID, updatedComment.ID) assert.Equal(t, comment.ID, updatedComment.ID)
assert.Equal(t, newCommentBody, updatedComment.Body) assert.Equal(t, newCommentBody, updatedComment.Body)
unittest.AssertExistsAndLoadBean(t, &issues_model.Comment{ID: comment.ID, IssueID: issue.ID, Content: newCommentBody}) unittest.AssertExistsAndLoadBean(t, &issues_model.Comment{ID: comment.ID, IssueID: issue.ID, Content: newCommentBody})
@@ -278,8 +272,7 @@ func TestAPIListIssueTimeline(t *testing.T) {
// check if lens of list returned by API and // check if lens of list returned by API and
// lists extracted directly from DB are the same // lists extracted directly from DB are the same
var comments []*api.TimelineComment comments := DecodeJSON(t, resp, []*api.TimelineComment{})
DecodeJSON(t, resp, &comments)
expectedCount := unittest.GetCount(t, &issues_model.Comment{IssueID: issue.ID}) expectedCount := unittest.GetCount(t, &issues_model.Comment{IssueID: issue.ID})
assert.Len(t, comments, expectedCount) assert.Len(t, comments, expectedCount)
} }

View File

@@ -22,8 +22,7 @@ func TestAPIListGitignoresTemplates(t *testing.T) {
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
// This tests if the API returns a list of strings // This tests if the API returns a list of strings
var gitignoreList []string DecodeJSON(t, resp, []string{})
DecodeJSON(t, resp, &gitignoreList)
} }
func TestAPIGetGitignoreTemplateInfo(t *testing.T) { func TestAPIGetGitignoreTemplateInfo(t *testing.T) {
@@ -41,8 +40,7 @@ func TestAPIGetGitignoreTemplateInfo(t *testing.T) {
req := NewRequest(t, "GET", urlStr) req := NewRequest(t, "GET", urlStr)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var templateInfo api.GitignoreTemplateInfo templateInfo := DecodeJSON(t, resp, &api.GitignoreTemplateInfo{})
DecodeJSON(t, resp, &templateInfo)
// We get the text of the template here // We get the text of the template here
text, _ := options.Gitignore(templateName) text, _ := options.Gitignore(templateName)

View File

@@ -77,12 +77,10 @@ func TestGPGKeys(t *testing.T) {
// Check state after basic add // Check state after basic add
t.Run("CheckState", func(t *testing.T) { t.Run("CheckState", func(t *testing.T) {
var keys []*api.GPGKey
req := NewRequest(t, "GET", "/api/v1/user/gpg_keys"). // GET all keys req := NewRequest(t, "GET", "/api/v1/user/gpg_keys"). // GET all keys
AddTokenAuth(tokenWithGPGKeyScope) AddTokenAuth(tokenWithGPGKeyScope)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &keys) keys := DecodeJSON(t, resp, []*api.GPGKey{})
assert.Len(t, keys, 1) assert.Len(t, keys, 1)
primaryKey1 := keys[0] // Primary key 1 primaryKey1 := keys[0] // Primary key 1
@@ -95,11 +93,10 @@ func TestGPGKeys(t *testing.T) {
assert.Equal(t, "70D7C694D17D03AD", subKey.KeyID) assert.Equal(t, "70D7C694D17D03AD", subKey.KeyID)
assert.Empty(t, subKey.Emails) assert.Empty(t, subKey.Emails)
var key api.GPGKey
req = NewRequest(t, "GET", "/api/v1/user/gpg_keys/"+strconv.FormatInt(primaryKey1.ID, 10)). // Primary key 1 req = NewRequest(t, "GET", "/api/v1/user/gpg_keys/"+strconv.FormatInt(primaryKey1.ID, 10)). // Primary key 1
AddTokenAuth(tokenWithGPGKeyScope) AddTokenAuth(tokenWithGPGKeyScope)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &key) key := DecodeJSON(t, resp, &api.GPGKey{})
assert.Equal(t, "38EA3BCED732982C", key.KeyID) assert.Equal(t, "38EA3BCED732982C", key.KeyID)
assert.Len(t, key.Emails, 1) assert.Len(t, key.Emails, 1)
assert.Equal(t, "user2@example.com", key.Emails[0].Email) assert.Equal(t, "user2@example.com", key.Emails[0].Email)
@@ -108,7 +105,7 @@ func TestGPGKeys(t *testing.T) {
req = NewRequest(t, "GET", "/api/v1/user/gpg_keys/"+strconv.FormatInt(subKey.ID, 10)). // Subkey of 38EA3BCED732982C req = NewRequest(t, "GET", "/api/v1/user/gpg_keys/"+strconv.FormatInt(subKey.ID, 10)). // Subkey of 38EA3BCED732982C
AddTokenAuth(tokenWithGPGKeyScope) AddTokenAuth(tokenWithGPGKeyScope)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &key) key = DecodeJSON(t, resp, &api.GPGKey{})
assert.Equal(t, "70D7C694D17D03AD", key.KeyID) assert.Equal(t, "70D7C694D17D03AD", key.KeyID)
assert.Empty(t, key.Emails) assert.Empty(t, key.Emails)
}) })
@@ -116,29 +113,26 @@ func TestGPGKeys(t *testing.T) {
// Check state after basic add // Check state after basic add
t.Run("CheckCommits", func(t *testing.T) { t.Run("CheckCommits", func(t *testing.T) {
t.Run("NotSigned", func(t *testing.T) { t.Run("NotSigned", func(t *testing.T) {
var branch api.Branch
req := NewRequest(t, "GET", "/api/v1/repos/user2/repo16/branches/not-signed"). req := NewRequest(t, "GET", "/api/v1/repos/user2/repo16/branches/not-signed").
AddTokenAuth(token) AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &branch) branch := DecodeJSON(t, resp, &api.Branch{})
assert.False(t, branch.Commit.Verification.Verified) assert.False(t, branch.Commit.Verification.Verified)
}) })
t.Run("SignedWithNotValidatedEmail", func(t *testing.T) { t.Run("SignedWithNotValidatedEmail", func(t *testing.T) {
var branch api.Branch
req := NewRequest(t, "GET", "/api/v1/repos/user2/repo16/branches/good-sign-not-yet-validated"). req := NewRequest(t, "GET", "/api/v1/repos/user2/repo16/branches/good-sign-not-yet-validated").
AddTokenAuth(token) AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &branch) branch := DecodeJSON(t, resp, &api.Branch{})
assert.False(t, branch.Commit.Verification.Verified) assert.False(t, branch.Commit.Verification.Verified)
}) })
t.Run("SignedWithValidEmail", func(t *testing.T) { t.Run("SignedWithValidEmail", func(t *testing.T) {
var branch api.Branch
req := NewRequest(t, "GET", "/api/v1/repos/user2/repo16/branches/good-sign"). req := NewRequest(t, "GET", "/api/v1/repos/user2/repo16/branches/good-sign").
AddTokenAuth(token) AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &branch) branch := DecodeJSON(t, resp, &api.Branch{})
assert.True(t, branch.Commit.Verification.Verified) assert.True(t, branch.Commit.Verification.Verified)
}) })
}) })

View File

@@ -70,10 +70,9 @@ func doAPICreateRepository(ctx APITestContext, empty bool, callback ...func(*tes
} }
resp := ctx.Session.MakeRequest(t, req, http.StatusCreated) resp := ctx.Session.MakeRequest(t, req, http.StatusCreated)
var repository api.Repository repository := DecodeJSON(t, resp, &api.Repository{})
DecodeJSON(t, resp, &repository)
if len(callback) > 0 { if len(callback) > 0 {
callback[0](t, repository) callback[0](t, *repository)
} }
} }
} }
@@ -88,10 +87,9 @@ func doAPIEditRepository(ctx APITestContext, editRepoOption *api.EditRepoOption,
} }
resp := ctx.Session.MakeRequest(t, req, http.StatusOK) resp := ctx.Session.MakeRequest(t, req, http.StatusOK)
var repository api.Repository repository := DecodeJSON(t, resp, &api.Repository{})
DecodeJSON(t, resp, &repository)
if len(callback) > 0 { if len(callback) > 0 {
callback[0](t, repository) callback[0](t, *repository)
} }
} }
} }
@@ -128,10 +126,9 @@ func doAPIForkRepository(ctx APITestContext, username string, callback ...func(*
return return
} }
resp := ctx.Session.MakeRequest(t, req, http.StatusAccepted) resp := ctx.Session.MakeRequest(t, req, http.StatusAccepted)
var repository api.Repository repository := DecodeJSON(t, resp, &api.Repository{})
DecodeJSON(t, resp, &repository)
if len(callback) > 0 { if len(callback) > 0 {
callback[0](t, repository) callback[0](t, *repository)
} }
} }
} }
@@ -146,10 +143,9 @@ func doAPIGetRepository(ctx APITestContext, callback ...func(*testing.T, api.Rep
} }
resp := ctx.Session.MakeRequest(t, req, http.StatusOK) resp := ctx.Session.MakeRequest(t, req, http.StatusOK)
var repository api.Repository repository := DecodeJSON(t, resp, &api.Repository{})
DecodeJSON(t, resp, &repository)
if len(callback) > 0 { if len(callback) > 0 {
callback[0](t, repository) callback[0](t, *repository)
} }
} }
} }
@@ -179,10 +175,9 @@ func doAPICreateUserKey(ctx APITestContext, keyname, keyFile string, callback ..
return return
} }
resp := ctx.Session.MakeRequest(t, req, http.StatusCreated) resp := ctx.Session.MakeRequest(t, req, http.StatusCreated)
var publicKey api.PublicKey publicKey := DecodeJSON(t, resp, &api.PublicKey{})
DecodeJSON(t, resp, &publicKey)
if len(callback) > 0 { if len(callback) > 0 {
callback[0](t, publicKey) callback[0](t, *publicKey)
} }
} }
} }
@@ -274,8 +269,7 @@ func doAPIMergePullRequest(ctx APITestContext, owner, repo string, index int64)
if resp.Code != http.StatusMethodNotAllowed { if resp.Code != http.StatusMethodNotAllowed {
break break
} }
err := api.APIError{} err := DecodeJSON(t, resp, &api.APIError{})
DecodeJSON(t, resp, &err)
assert.Equal(t, "Please try again later", err.Message) assert.Equal(t, "Please try again later", err.Message)
queue.GetManager().FlushAll(t.Context(), 5*time.Second) queue.GetManager().FlushAll(t.Context(), 5*time.Second)
<-time.After(1 * time.Second) <-time.After(1 * time.Second)
@@ -348,10 +342,9 @@ func doAPIGetBranch(ctx APITestContext, branch string, callback ...func(*testing
} }
resp := ctx.Session.MakeRequest(t, req, http.StatusOK) resp := ctx.Session.MakeRequest(t, req, http.StatusOK)
var branch api.Branch branch := DecodeJSON(t, resp, &api.Branch{})
DecodeJSON(t, resp, &branch)
if len(callback) > 0 { if len(callback) > 0 {
callback[0](t, branch) callback[0](t, *branch)
} }
} }
} }
@@ -366,10 +359,9 @@ func doAPICreateFile(ctx APITestContext, treepath string, options *api.CreateFil
} }
resp := ctx.Session.MakeRequest(t, req, http.StatusCreated) resp := ctx.Session.MakeRequest(t, req, http.StatusCreated)
var contents api.FileResponse contents := DecodeJSON(t, resp, &api.FileResponse{})
DecodeJSON(t, resp, &contents)
if len(callback) > 0 { if len(callback) > 0 {
callback[0](t, contents) callback[0](t, *contents)
} }
} }
} }
@@ -384,10 +376,9 @@ func doAPICreateOrganization(ctx APITestContext, options *api.CreateOrgOption, c
} }
resp := ctx.Session.MakeRequest(t, req, http.StatusCreated) resp := ctx.Session.MakeRequest(t, req, http.StatusCreated)
var contents api.Organization contents := DecodeJSON(t, resp, &api.Organization{})
DecodeJSON(t, resp, &contents)
if len(callback) > 0 { if len(callback) > 0 {
callback[0](t, contents) callback[0](t, *contents)
} }
} }
} }
@@ -402,10 +393,9 @@ func doAPICreateOrganizationRepository(ctx APITestContext, orgName string, optio
} }
resp := ctx.Session.MakeRequest(t, req, http.StatusCreated) resp := ctx.Session.MakeRequest(t, req, http.StatusCreated)
var contents api.Repository contents := DecodeJSON(t, resp, &api.Repository{})
DecodeJSON(t, resp, &contents)
if len(callback) > 0 { if len(callback) > 0 {
callback[0](t, contents) callback[0](t, *contents)
} }
} }
} }
@@ -420,10 +410,9 @@ func doAPICreateOrganizationTeam(ctx APITestContext, orgName string, options *ap
} }
resp := ctx.Session.MakeRequest(t, req, http.StatusCreated) resp := ctx.Session.MakeRequest(t, req, http.StatusCreated)
var contents api.Team contents := DecodeJSON(t, resp, &api.Team{})
DecodeJSON(t, resp, &contents)
if len(callback) > 0 { if len(callback) > 0 {
callback[0](t, contents) callback[0](t, *contents)
} }
} }
} }

View File

@@ -35,8 +35,7 @@ func TestAPIGetIssueAttachment(t *testing.T) {
req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d/assets/%d", repoOwner.Name, repo.Name, issue.Index, attachment.ID)). req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d/assets/%d", repoOwner.Name, repo.Name, issue.Index, attachment.ID)).
AddTokenAuth(token) AddTokenAuth(token)
resp := session.MakeRequest(t, req, http.StatusOK) resp := session.MakeRequest(t, req, http.StatusOK)
apiAttachment := new(api.Attachment) apiAttachment := DecodeJSON(t, resp, &api.Attachment{})
DecodeJSON(t, resp, &apiAttachment)
unittest.AssertExistsAndLoadBean(t, &repo_model.Attachment{ID: apiAttachment.ID, IssueID: issue.ID}) unittest.AssertExistsAndLoadBean(t, &repo_model.Attachment{ID: apiAttachment.ID, IssueID: issue.ID})
} }
@@ -55,10 +54,9 @@ func TestAPIListIssueAttachments(t *testing.T) {
req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d/assets", repoOwner.Name, repo.Name, issue.Index)). req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d/assets", repoOwner.Name, repo.Name, issue.Index)).
AddTokenAuth(token) AddTokenAuth(token)
resp := session.MakeRequest(t, req, http.StatusOK) resp := session.MakeRequest(t, req, http.StatusOK)
apiAttachment := new([]api.Attachment) apiAttachment := DecodeJSON(t, resp, []api.Attachment{})
DecodeJSON(t, resp, &apiAttachment)
unittest.AssertExistsAndLoadBean(t, &repo_model.Attachment{ID: (*apiAttachment)[0].ID, IssueID: issue.ID}) unittest.AssertExistsAndLoadBean(t, &repo_model.Attachment{ID: apiAttachment[0].ID, IssueID: issue.ID})
} }
func TestAPICreateIssueAttachment(t *testing.T) { func TestAPICreateIssueAttachment(t *testing.T) {
@@ -87,8 +85,7 @@ func TestAPICreateIssueAttachment(t *testing.T) {
req.Header.Add("Content-Type", writer.FormDataContentType()) req.Header.Add("Content-Type", writer.FormDataContentType())
resp := session.MakeRequest(t, req, http.StatusCreated) resp := session.MakeRequest(t, req, http.StatusCreated)
apiAttachment := new(api.Attachment) apiAttachment := DecodeJSON(t, resp, &api.Attachment{})
DecodeJSON(t, resp, &apiAttachment)
unittest.AssertExistsAndLoadBean(t, &repo_model.Attachment{ID: apiAttachment.ID, IssueID: issue.ID}) unittest.AssertExistsAndLoadBean(t, &repo_model.Attachment{ID: apiAttachment.ID, IssueID: issue.ID})
} }
@@ -138,8 +135,7 @@ func TestAPIEditIssueAttachment(t *testing.T) {
"name": newAttachmentName, "name": newAttachmentName,
}).AddTokenAuth(token) }).AddTokenAuth(token)
resp := session.MakeRequest(t, req, http.StatusCreated) resp := session.MakeRequest(t, req, http.StatusCreated)
apiAttachment := new(api.Attachment) apiAttachment := DecodeJSON(t, resp, &api.Attachment{})
DecodeJSON(t, resp, &apiAttachment)
unittest.AssertExistsAndLoadBean(t, &repo_model.Attachment{ID: apiAttachment.ID, IssueID: issue.ID, Name: apiAttachment.Name}) unittest.AssertExistsAndLoadBean(t, &repo_model.Attachment{ID: apiAttachment.ID, IssueID: issue.ID, Name: apiAttachment.Name})
} }

View File

@@ -31,10 +31,9 @@ func getIssueConfig(t *testing.T, owner, repo string) api.IssueConfig {
req := NewRequest(t, "GET", urlStr) req := NewRequest(t, "GET", urlStr)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var issueConfig api.IssueConfig issueConfig := DecodeJSON(t, resp, &api.IssueConfig{})
DecodeJSON(t, resp, &issueConfig)
return issueConfig return *issueConfig
} }
func TestAPIRepoGetIssueConfig(t *testing.T) { func TestAPIRepoGetIssueConfig(t *testing.T) {
@@ -156,8 +155,7 @@ func TestAPIRepoValidateIssueConfig(t *testing.T) {
req := NewRequest(t, "GET", urlStr) req := NewRequest(t, "GET", urlStr)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var issueConfigValidation api.IssueConfigValidation issueConfigValidation := DecodeJSON(t, resp, &api.IssueConfigValidation{})
DecodeJSON(t, resp, &issueConfigValidation)
assert.True(t, issueConfigValidation.Valid) assert.True(t, issueConfigValidation.Valid)
assert.Empty(t, issueConfigValidation.Message) assert.Empty(t, issueConfigValidation.Message)
@@ -172,8 +170,7 @@ func TestAPIRepoValidateIssueConfig(t *testing.T) {
req := NewRequest(t, "GET", urlStr) req := NewRequest(t, "GET", urlStr)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var issueConfigValidation api.IssueConfigValidation issueConfigValidation := DecodeJSON(t, resp, &api.IssueConfigValidation{})
DecodeJSON(t, resp, &issueConfigValidation)
assert.False(t, issueConfigValidation.Valid) assert.False(t, issueConfigValidation.Valid)
assert.NotEmpty(t, issueConfigValidation.Message) assert.NotEmpty(t, issueConfigValidation.Message)

View File

@@ -35,8 +35,7 @@ func TestAPIModifyLabels(t *testing.T) {
Description: "test label", Description: "test label",
}).AddTokenAuth(token) }).AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusCreated) resp := MakeRequest(t, req, http.StatusCreated)
apiLabel := new(api.Label) apiLabel := DecodeJSON(t, resp, &api.Label{})
DecodeJSON(t, resp, &apiLabel)
dbLabel := unittest.AssertExistsAndLoadBean(t, &issues_model.Label{ID: apiLabel.ID, RepoID: repo.ID}) dbLabel := unittest.AssertExistsAndLoadBean(t, &issues_model.Label{ID: apiLabel.ID, RepoID: repo.ID})
assert.Equal(t, dbLabel.Name, apiLabel.Name) assert.Equal(t, dbLabel.Name, apiLabel.Name)
assert.Equal(t, strings.TrimLeft(dbLabel.Color, "#"), apiLabel.Color) assert.Equal(t, strings.TrimLeft(dbLabel.Color, "#"), apiLabel.Color)
@@ -57,8 +56,7 @@ func TestAPIModifyLabels(t *testing.T) {
req = NewRequest(t, "GET", urlStr). req = NewRequest(t, "GET", urlStr).
AddTokenAuth(token) AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
var apiLabels []*api.Label apiLabels := DecodeJSON(t, resp, []*api.Label{})
DecodeJSON(t, resp, &apiLabels)
assert.Len(t, apiLabels, 2) assert.Len(t, apiLabels, 2)
// GetLabel // GetLabel
@@ -66,7 +64,7 @@ func TestAPIModifyLabels(t *testing.T) {
req = NewRequest(t, "GET", singleURLStr). req = NewRequest(t, "GET", singleURLStr).
AddTokenAuth(token) AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &apiLabel) apiLabel = DecodeJSON(t, resp, &api.Label{})
assert.Equal(t, strings.TrimLeft(dbLabel.Color, "#"), apiLabel.Color) assert.Equal(t, strings.TrimLeft(dbLabel.Color, "#"), apiLabel.Color)
// EditLabel // EditLabel
@@ -78,7 +76,7 @@ func TestAPIModifyLabels(t *testing.T) {
Color: &newColor, Color: &newColor,
}).AddTokenAuth(token) }).AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &apiLabel) apiLabel = DecodeJSON(t, resp, &api.Label{})
assert.Equal(t, newColor, apiLabel.Color) assert.Equal(t, newColor, apiLabel.Color)
req = NewRequestWithJSON(t, "PATCH", singleURLStr, &api.EditLabelOption{ req = NewRequestWithJSON(t, "PATCH", singleURLStr, &api.EditLabelOption{
Color: &newColorWrong, Color: &newColorWrong,
@@ -107,8 +105,7 @@ func TestAPIAddIssueLabels(t *testing.T) {
Labels: []any{1, 2}, Labels: []any{1, 2},
}).AddTokenAuth(token) }).AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var apiLabels []*api.Label apiLabels := DecodeJSON(t, resp, []*api.Label{})
DecodeJSON(t, resp, &apiLabels)
assert.Len(t, apiLabels, unittest.GetCount(t, &issues_model.IssueLabel{IssueID: issue.ID})) assert.Len(t, apiLabels, unittest.GetCount(t, &issues_model.IssueLabel{IssueID: issue.ID}))
unittest.AssertExistsAndLoadBean(t, &issues_model.IssueLabel{IssueID: issue.ID, LabelID: 2}) unittest.AssertExistsAndLoadBean(t, &issues_model.IssueLabel{IssueID: issue.ID, LabelID: 2})
@@ -132,8 +129,7 @@ func TestAPIAddIssueLabelsWithLabelNames(t *testing.T) {
Labels: []any{repoLabel.Name, orgLabel.Name}, Labels: []any{repoLabel.Name, orgLabel.Name},
}).AddTokenAuth(token) }).AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var apiLabels []*api.Label apiLabels := DecodeJSON(t, resp, []*api.Label{})
DecodeJSON(t, resp, &apiLabels)
assert.Len(t, apiLabels, unittest.GetCount(t, &issues_model.IssueLabel{IssueID: issue.ID})) assert.Len(t, apiLabels, unittest.GetCount(t, &issues_model.IssueLabel{IssueID: issue.ID}))
var apiLabelNames []string var apiLabelNames []string
for _, label := range apiLabels { for _, label := range apiLabels {
@@ -162,8 +158,7 @@ func TestAPIReplaceIssueLabels(t *testing.T) {
Labels: []any{label.ID}, Labels: []any{label.ID},
}).AddTokenAuth(token) }).AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var apiLabels []*api.Label apiLabels := DecodeJSON(t, resp, []*api.Label{})
DecodeJSON(t, resp, &apiLabels)
if assert.Len(t, apiLabels, 1) { if assert.Len(t, apiLabels, 1) {
assert.Equal(t, label.ID, apiLabels[0].ID) assert.Equal(t, label.ID, apiLabels[0].ID)
} }
@@ -188,8 +183,7 @@ func TestAPIReplaceIssueLabelsWithLabelNames(t *testing.T) {
Labels: []any{label.Name}, Labels: []any{label.Name},
}).AddTokenAuth(token) }).AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var apiLabels []*api.Label apiLabels := DecodeJSON(t, resp, []*api.Label{})
DecodeJSON(t, resp, &apiLabels)
if assert.Len(t, apiLabels, 1) { if assert.Len(t, apiLabels, 1) {
assert.Equal(t, label.Name, apiLabels[0].Name) assert.Equal(t, label.Name, apiLabels[0].Name)
} }
@@ -212,8 +206,7 @@ func TestAPIModifyOrgLabels(t *testing.T) {
Description: "test label", Description: "test label",
}).AddTokenAuth(token) }).AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusCreated) resp := MakeRequest(t, req, http.StatusCreated)
apiLabel := new(api.Label) apiLabel := DecodeJSON(t, resp, &api.Label{})
DecodeJSON(t, resp, &apiLabel)
dbLabel := unittest.AssertExistsAndLoadBean(t, &issues_model.Label{ID: apiLabel.ID, OrgID: owner.ID}) dbLabel := unittest.AssertExistsAndLoadBean(t, &issues_model.Label{ID: apiLabel.ID, OrgID: owner.ID})
assert.Equal(t, dbLabel.Name, apiLabel.Name) assert.Equal(t, dbLabel.Name, apiLabel.Name)
assert.Equal(t, strings.TrimLeft(dbLabel.Color, "#"), apiLabel.Color) assert.Equal(t, strings.TrimLeft(dbLabel.Color, "#"), apiLabel.Color)
@@ -234,8 +227,7 @@ func TestAPIModifyOrgLabels(t *testing.T) {
req = NewRequest(t, "GET", urlStr). req = NewRequest(t, "GET", urlStr).
AddTokenAuth(token) AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
var apiLabels []*api.Label apiLabels := DecodeJSON(t, resp, []*api.Label{})
DecodeJSON(t, resp, &apiLabels)
assert.Len(t, apiLabels, 4) assert.Len(t, apiLabels, 4)
// GetLabel // GetLabel
@@ -243,7 +235,7 @@ func TestAPIModifyOrgLabels(t *testing.T) {
req = NewRequest(t, "GET", singleURLStr). req = NewRequest(t, "GET", singleURLStr).
AddTokenAuth(token) AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &apiLabel) apiLabel = DecodeJSON(t, resp, &api.Label{})
assert.Equal(t, strings.TrimLeft(dbLabel.Color, "#"), apiLabel.Color) assert.Equal(t, strings.TrimLeft(dbLabel.Color, "#"), apiLabel.Color)
// EditLabel // EditLabel
@@ -255,7 +247,7 @@ func TestAPIModifyOrgLabels(t *testing.T) {
Color: &newColor, Color: &newColor,
}).AddTokenAuth(token) }).AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &apiLabel) apiLabel = DecodeJSON(t, resp, &api.Label{})
assert.Equal(t, newColor, apiLabel.Color) assert.Equal(t, newColor, apiLabel.Color)
req = NewRequestWithJSON(t, "PATCH", singleURLStr, &api.EditLabelOption{ req = NewRequestWithJSON(t, "PATCH", singleURLStr, &api.EditLabelOption{
Color: &newColorWrong, Color: &newColorWrong,

View File

@@ -39,15 +39,13 @@ func TestAPIIssuesMilestone(t *testing.T) {
State: &milestoneState, State: &milestoneState,
}).AddTokenAuth(token) }).AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var apiMilestone structs.Milestone apiMilestone := DecodeJSON(t, resp, &structs.Milestone{})
DecodeJSON(t, resp, &apiMilestone)
assert.EqualValues(t, "closed", apiMilestone.State) assert.EqualValues(t, "closed", apiMilestone.State)
req = NewRequest(t, "GET", urlStr). req = NewRequest(t, "GET", urlStr).
AddTokenAuth(token) AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
var apiMilestone2 structs.Milestone apiMilestone2 := DecodeJSON(t, resp, &structs.Milestone{})
DecodeJSON(t, resp, &apiMilestone2)
assert.EqualValues(t, "closed", apiMilestone2.State) assert.EqualValues(t, "closed", apiMilestone2.State)
req = NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/milestones", owner.Name, repo.Name), structs.CreateMilestoneOption{ req = NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/milestones", owner.Name, repo.Name), structs.CreateMilestoneOption{
@@ -56,29 +54,28 @@ func TestAPIIssuesMilestone(t *testing.T) {
State: "closed", State: "closed",
}).AddTokenAuth(token) }).AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusCreated) resp = MakeRequest(t, req, http.StatusCreated)
DecodeJSON(t, resp, &apiMilestone) apiMilestone = DecodeJSON(t, resp, &structs.Milestone{})
assert.Equal(t, "wow", apiMilestone.Title) assert.Equal(t, "wow", apiMilestone.Title)
assert.Equal(t, structs.StateClosed, apiMilestone.State) assert.Equal(t, structs.StateClosed, apiMilestone.State)
assert.Nil(t, apiMilestone.Deadline) assert.Nil(t, apiMilestone.Deadline)
var apiMilestones []structs.Milestone
req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/milestones?state=%s", owner.Name, repo.Name, "all")). req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/milestones?state=%s", owner.Name, repo.Name, "all")).
AddTokenAuth(token) AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &apiMilestones) apiMilestones := DecodeJSON(t, resp, []structs.Milestone{})
assert.Len(t, apiMilestones, 4) assert.Len(t, apiMilestones, 4)
assert.Nil(t, apiMilestones[0].Deadline) assert.Nil(t, apiMilestones[0].Deadline)
req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/milestones/%s", owner.Name, repo.Name, apiMilestones[2].Title)). req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/milestones/%s", owner.Name, repo.Name, apiMilestones[2].Title)).
AddTokenAuth(token) AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &apiMilestone) apiMilestone = DecodeJSON(t, resp, &structs.Milestone{})
assert.Equal(t, apiMilestones[2], apiMilestone) assert.Equal(t, apiMilestones[2], *apiMilestone)
req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/milestones?state=%s&name=%s", owner.Name, repo.Name, "all", "milestone2")). req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/milestones?state=%s&name=%s", owner.Name, repo.Name, "all", "milestone2")).
AddTokenAuth(token) AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &apiMilestones) apiMilestones = DecodeJSON(t, resp, []structs.Milestone{})
assert.Len(t, apiMilestones, 1) assert.Len(t, apiMilestones, 1)
assert.Equal(t, int64(2), apiMilestones[0].ID) assert.Equal(t, int64(2), apiMilestones[0].ID)

View File

@@ -39,8 +39,7 @@ func TestAPIPinIssue(t *testing.T) {
// Check if the Issue is pinned // Check if the Issue is pinned
req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d", repo.OwnerName, repo.Name, issue.Index)) req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d", repo.OwnerName, repo.Name, issue.Index))
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var issueAPI api.Issue issueAPI := DecodeJSON(t, resp, &api.Issue{})
DecodeJSON(t, resp, &issueAPI)
assert.Equal(t, 1, issueAPI.PinOrder) assert.Equal(t, 1, issueAPI.PinOrder)
} }
@@ -64,8 +63,7 @@ func TestAPIUnpinIssue(t *testing.T) {
// Check if the Issue is pinned // Check if the Issue is pinned
req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d", repo.OwnerName, repo.Name, issue.Index)) req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d", repo.OwnerName, repo.Name, issue.Index))
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var issueAPI api.Issue issueAPI := DecodeJSON(t, resp, &api.Issue{})
DecodeJSON(t, resp, &issueAPI)
assert.Equal(t, 1, issueAPI.PinOrder) assert.Equal(t, 1, issueAPI.PinOrder)
// Unpin the Issue // Unpin the Issue
@@ -76,7 +74,7 @@ func TestAPIUnpinIssue(t *testing.T) {
// Check if the Issue is no longer pinned // Check if the Issue is no longer pinned
req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d", repo.OwnerName, repo.Name, issue.Index)) req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d", repo.OwnerName, repo.Name, issue.Index))
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &issueAPI) issueAPI = DecodeJSON(t, resp, &api.Issue{})
assert.Equal(t, 0, issueAPI.PinOrder) assert.Equal(t, 0, issueAPI.PinOrder)
} }
@@ -101,8 +99,7 @@ func TestAPIMoveIssuePin(t *testing.T) {
// Check if the first Issue is pinned at position 1 // Check if the first Issue is pinned at position 1
req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d", repo.OwnerName, repo.Name, issue.Index)) req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d", repo.OwnerName, repo.Name, issue.Index))
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var issueAPI api.Issue issueAPI := DecodeJSON(t, resp, &api.Issue{})
DecodeJSON(t, resp, &issueAPI)
assert.Equal(t, 1, issueAPI.PinOrder) assert.Equal(t, 1, issueAPI.PinOrder)
// Pin the second Issue // Pin the second Issue
@@ -118,15 +115,13 @@ func TestAPIMoveIssuePin(t *testing.T) {
// Check if the first Issue is pinned at position 2 // Check if the first Issue is pinned at position 2
req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d", repo.OwnerName, repo.Name, issue.Index)) req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d", repo.OwnerName, repo.Name, issue.Index))
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
var issueAPI3 api.Issue issueAPI3 := DecodeJSON(t, resp, &api.Issue{})
DecodeJSON(t, resp, &issueAPI3)
assert.Equal(t, 2, issueAPI3.PinOrder) assert.Equal(t, 2, issueAPI3.PinOrder)
// Check if the second Issue is pinned at position 1 // Check if the second Issue is pinned at position 1
req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d", repo.OwnerName, repo.Name, issue2.Index)) req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d", repo.OwnerName, repo.Name, issue2.Index))
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
var issueAPI4 api.Issue issueAPI4 := DecodeJSON(t, resp, &api.Issue{})
DecodeJSON(t, resp, &issueAPI4)
assert.Equal(t, 1, issueAPI4.PinOrder) assert.Equal(t, 1, issueAPI4.PinOrder)
} }
@@ -150,8 +145,7 @@ func TestAPIListPinnedIssues(t *testing.T) {
// Check if the Issue is in the List // Check if the Issue is in the List
req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/issues/pinned", repo.OwnerName, repo.Name)) req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/issues/pinned", repo.OwnerName, repo.Name))
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var issueList []api.Issue issueList := DecodeJSON(t, resp, []api.Issue{})
DecodeJSON(t, resp, &issueList)
assert.Len(t, issueList, 1) assert.Len(t, issueList, 1)
assert.Equal(t, issue.ID, issueList[0].ID) assert.Equal(t, issue.ID, issueList[0].ID)
@@ -166,8 +160,7 @@ func TestAPIListPinnedPullrequests(t *testing.T) {
req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/pulls/pinned", repo.OwnerName, repo.Name)) req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/pulls/pinned", repo.OwnerName, repo.Name))
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var prList []api.PullRequest prList := DecodeJSON(t, resp, []api.PullRequest{})
DecodeJSON(t, resp, &prList)
assert.Empty(t, prList) assert.Empty(t, prList)
} }
@@ -181,8 +174,7 @@ func TestAPINewPinAllowed(t *testing.T) {
req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/new_pin_allowed", owner.Name, repo.Name)) req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/new_pin_allowed", owner.Name, repo.Name))
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var newPinsAllowed api.NewIssuePinsAllowed newPinsAllowed := DecodeJSON(t, resp, &api.NewIssuePinsAllowed{})
DecodeJSON(t, resp, &newPinsAllowed)
assert.True(t, newPinsAllowed.Issues) assert.True(t, newPinsAllowed.Issues)
assert.True(t, newPinsAllowed.PullRequests) assert.True(t, newPinsAllowed.PullRequests)

View File

@@ -51,8 +51,7 @@ func TestAPIIssuesReactions(t *testing.T) {
Reaction: "rocket", Reaction: "rocket",
}).AddTokenAuth(token) }).AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusCreated) resp := MakeRequest(t, req, http.StatusCreated)
var apiNewReaction api.Reaction apiNewReaction := DecodeJSON(t, resp, &api.Reaction{})
DecodeJSON(t, resp, &apiNewReaction)
// Add existing reaction // Add existing reaction
req = NewRequestWithJSON(t, "POST", urlStr, &api.EditReactionOption{ req = NewRequestWithJSON(t, "POST", urlStr, &api.EditReactionOption{
@@ -71,15 +70,14 @@ func TestAPIIssuesReactions(t *testing.T) {
req = NewRequest(t, "GET", urlStr). req = NewRequest(t, "GET", urlStr).
AddTokenAuth(token) AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
var apiReactions []*api.Reaction apiReactions := DecodeJSON(t, resp, []*api.Reaction{})
DecodeJSON(t, resp, &apiReactions)
expectResponse := make(map[int]api.Reaction) expectResponse := make(map[int]api.Reaction)
expectResponse[0] = api.Reaction{ expectResponse[0] = api.Reaction{
User: convert.ToUser(t.Context(), user2, user2), User: convert.ToUser(t.Context(), user2, user2),
Reaction: "eyes", Reaction: "eyes",
Created: time.Unix(1573248003, 0), Created: time.Unix(1573248003, 0),
} }
expectResponse[1] = apiNewReaction expectResponse[1] = *apiNewReaction
assert.Len(t, apiReactions, 2) assert.Len(t, apiReactions, 2)
for i, r := range apiReactions { for i, r := range apiReactions {
assert.Equal(t, expectResponse[i].Reaction, r.Reaction) assert.Equal(t, expectResponse[i].Reaction, r.Reaction)
@@ -141,8 +139,7 @@ func TestAPICommentReactions(t *testing.T) {
Reaction: "+1", Reaction: "+1",
}).AddTokenAuth(token) }).AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusCreated) resp := MakeRequest(t, req, http.StatusCreated)
var apiNewReaction api.Reaction apiNewReaction := DecodeJSON(t, resp, &api.Reaction{})
DecodeJSON(t, resp, &apiNewReaction)
// Add existing reaction // Add existing reaction
req = NewRequestWithJSON(t, "POST", urlStr, &api.EditReactionOption{ req = NewRequestWithJSON(t, "POST", urlStr, &api.EditReactionOption{
@@ -154,8 +151,7 @@ func TestAPICommentReactions(t *testing.T) {
req = NewRequest(t, "GET", urlStr). req = NewRequest(t, "GET", urlStr).
AddTokenAuth(token) AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
var apiReactions []*api.Reaction apiReactions := DecodeJSON(t, resp, []*api.Reaction{})
DecodeJSON(t, resp, &apiReactions)
expectResponse := make(map[int]api.Reaction) expectResponse := make(map[int]api.Reaction)
expectResponse[0] = api.Reaction{ expectResponse[0] = api.Reaction{
User: convert.ToUser(t.Context(), user2, user2), User: convert.ToUser(t.Context(), user2, user2),
@@ -167,7 +163,7 @@ func TestAPICommentReactions(t *testing.T) {
Reaction: "laugh", Reaction: "laugh",
Created: time.Unix(1573248005, 0), Created: time.Unix(1573248005, 0),
} }
expectResponse[2] = apiNewReaction expectResponse[2] = *apiNewReaction
assert.Len(t, apiReactions, 3) assert.Len(t, apiReactions, 3)
for i, r := range apiReactions { for i, r := range apiReactions {
assert.Equal(t, expectResponse[i].Reaction, r.Reaction) assert.Equal(t, expectResponse[i].Reaction, r.Reaction)

View File

@@ -29,8 +29,7 @@ func TestAPIListStopWatches(t *testing.T) {
req := NewRequest(t, "GET", "/api/v1/user/stopwatches"). req := NewRequest(t, "GET", "/api/v1/user/stopwatches").
AddTokenAuth(token) AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var apiWatches []*api.StopWatch apiWatches := DecodeJSON(t, resp, []*api.StopWatch{})
DecodeJSON(t, resp, &apiWatches)
stopwatch := unittest.AssertExistsAndLoadBean(t, &issues_model.Stopwatch{UserID: owner.ID}) stopwatch := unittest.AssertExistsAndLoadBean(t, &issues_model.Stopwatch{UserID: owner.ID})
issue := unittest.AssertExistsAndLoadBean(t, &issues_model.Issue{ID: stopwatch.IssueID}) issue := unittest.AssertExistsAndLoadBean(t, &issues_model.Issue{ID: stopwatch.IssueID})
if assert.Len(t, apiWatches, 1) { if assert.Len(t, apiWatches, 1) {

View File

@@ -18,16 +18,13 @@ import (
func TestAPIIssueTemplateList(t *testing.T) { func TestAPIIssueTemplateList(t *testing.T) {
onGiteaRun(t, func(*testing.T, *url.URL) { onGiteaRun(t, func(*testing.T, *url.URL) {
var issueTemplates []*api.IssueTemplate
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{Name: "user2"}) user := unittest.AssertExistsAndLoadBean(t, &user_model.User{Name: "user2"})
repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{OwnerName: "user2", Name: "repo1"}) repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{OwnerName: "user2", Name: "repo1"})
// no issue template // no issue template
req := NewRequest(t, "GET", "/api/v1/repos/user2/repo1/issue_templates") req := NewRequest(t, "GET", "/api/v1/repos/user2/repo1/issue_templates")
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
issueTemplates = nil issueTemplates := DecodeJSON(t, resp, []*api.IssueTemplate{})
DecodeJSON(t, resp, &issueTemplates)
assert.Empty(t, issueTemplates) assert.Empty(t, issueTemplates)
// one correct issue template and some incorrect issue templates // one correct issue template and some incorrect issue templates
@@ -46,8 +43,7 @@ about: bar
req = NewRequest(t, "GET", "/api/v1/repos/user2/repo1/issue_templates") req = NewRequest(t, "GET", "/api/v1/repos/user2/repo1/issue_templates")
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
issueTemplates = nil issueTemplates = DecodeJSON(t, resp, []*api.IssueTemplate{})
DecodeJSON(t, resp, &issueTemplates)
assert.Len(t, issueTemplates, 1) assert.Len(t, issueTemplates, 1)
assert.Equal(t, "foo", issueTemplates[0].Name) assert.Equal(t, "foo", issueTemplates[0].Name)
assert.Equal(t, "error occurs when parsing issue template: count=2", resp.Header().Get("X-Gitea-Warning")) assert.Equal(t, "error occurs when parsing issue template: count=2", resp.Header().Get("X-Gitea-Warning"))

View File

@@ -47,8 +47,7 @@ func testAPIListIssues(t *testing.T) {
link.RawQuery = url.Values{"token": {token}, "state": {"all"}}.Encode() link.RawQuery = url.Values{"token": {token}, "state": {"all"}}.Encode()
resp := MakeRequest(t, NewRequest(t, "GET", link.String()), http.StatusOK) resp := MakeRequest(t, NewRequest(t, "GET", link.String()), http.StatusOK)
var apiIssues []*api.Issue apiIssues := DecodeJSON(t, resp, []*api.Issue{})
DecodeJSON(t, resp, &apiIssues)
assert.Len(t, apiIssues, unittest.GetCount(t, &issues_model.Issue{RepoID: repo.ID})) assert.Len(t, apiIssues, unittest.GetCount(t, &issues_model.Issue{RepoID: repo.ID}))
for _, apiIssue := range apiIssues { for _, apiIssue := range apiIssues {
unittest.AssertExistsAndLoadBean(t, &issues_model.Issue{ID: apiIssue.ID, RepoID: repo.ID}) unittest.AssertExistsAndLoadBean(t, &issues_model.Issue{ID: apiIssue.ID, RepoID: repo.ID})
@@ -57,7 +56,7 @@ func testAPIListIssues(t *testing.T) {
// test milestone filter // test milestone filter
link.RawQuery = url.Values{"token": {token}, "state": {"all"}, "type": {"all"}, "milestones": {"ignore,milestone1,3,4"}}.Encode() link.RawQuery = url.Values{"token": {token}, "state": {"all"}, "type": {"all"}, "milestones": {"ignore,milestone1,3,4"}}.Encode()
resp = MakeRequest(t, NewRequest(t, "GET", link.String()), http.StatusOK) resp = MakeRequest(t, NewRequest(t, "GET", link.String()), http.StatusOK)
DecodeJSON(t, resp, &apiIssues) apiIssues = DecodeJSON(t, resp, []*api.Issue{})
if assert.Len(t, apiIssues, 2) { if assert.Len(t, apiIssues, 2) {
assert.EqualValues(t, 3, apiIssues[0].Milestone.ID) assert.EqualValues(t, 3, apiIssues[0].Milestone.ID)
assert.EqualValues(t, 1, apiIssues[1].Milestone.ID) assert.EqualValues(t, 1, apiIssues[1].Milestone.ID)
@@ -65,21 +64,21 @@ func testAPIListIssues(t *testing.T) {
link.RawQuery = url.Values{"token": {token}, "state": {"all"}, "created_by": {"user2"}}.Encode() link.RawQuery = url.Values{"token": {token}, "state": {"all"}, "created_by": {"user2"}}.Encode()
resp = MakeRequest(t, NewRequest(t, "GET", link.String()), http.StatusOK) resp = MakeRequest(t, NewRequest(t, "GET", link.String()), http.StatusOK)
DecodeJSON(t, resp, &apiIssues) apiIssues = DecodeJSON(t, resp, []*api.Issue{})
if assert.Len(t, apiIssues, 1) { if assert.Len(t, apiIssues, 1) {
assert.EqualValues(t, 5, apiIssues[0].ID) assert.EqualValues(t, 5, apiIssues[0].ID)
} }
link.RawQuery = url.Values{"token": {token}, "state": {"all"}, "assigned_by": {"user1"}}.Encode() link.RawQuery = url.Values{"token": {token}, "state": {"all"}, "assigned_by": {"user1"}}.Encode()
resp = MakeRequest(t, NewRequest(t, "GET", link.String()), http.StatusOK) resp = MakeRequest(t, NewRequest(t, "GET", link.String()), http.StatusOK)
DecodeJSON(t, resp, &apiIssues) apiIssues = DecodeJSON(t, resp, []*api.Issue{})
if assert.Len(t, apiIssues, 1) { if assert.Len(t, apiIssues, 1) {
assert.EqualValues(t, 1, apiIssues[0].ID) assert.EqualValues(t, 1, apiIssues[0].ID)
} }
link.RawQuery = url.Values{"token": {token}, "state": {"all"}, "mentioned_by": {"user4"}}.Encode() link.RawQuery = url.Values{"token": {token}, "state": {"all"}, "mentioned_by": {"user4"}}.Encode()
resp = MakeRequest(t, NewRequest(t, "GET", link.String()), http.StatusOK) resp = MakeRequest(t, NewRequest(t, "GET", link.String()), http.StatusOK)
DecodeJSON(t, resp, &apiIssues) apiIssues = DecodeJSON(t, resp, []*api.Issue{})
if assert.Len(t, apiIssues, 1) { if assert.Len(t, apiIssues, 1) {
assert.EqualValues(t, 1, apiIssues[0].ID) assert.EqualValues(t, 1, apiIssues[0].ID)
} }
@@ -126,8 +125,7 @@ func testAPICreateIssue(t *testing.T) {
Assignee: owner.Name, Assignee: owner.Name,
}).AddTokenAuth(token) }).AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusCreated) resp := MakeRequest(t, req, http.StatusCreated)
var apiIssue api.Issue apiIssue := DecodeJSON(t, resp, &api.Issue{})
DecodeJSON(t, resp, &apiIssue)
assert.Equal(t, body, apiIssue.Body) assert.Equal(t, body, apiIssue.Body)
assert.Equal(t, title, apiIssue.Title) assert.Equal(t, title, apiIssue.Title)
@@ -183,8 +181,7 @@ func testAPICreateIssueParallel(t *testing.T) {
Assignee: owner.Name, Assignee: owner.Name,
}).AddTokenAuth(token) }).AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusCreated) resp := MakeRequest(t, req, http.StatusCreated)
var apiIssue api.Issue apiIssue := DecodeJSON(t, resp, &api.Issue{})
DecodeJSON(t, resp, &apiIssue)
assert.Equal(t, newBody, apiIssue.Body) assert.Equal(t, newBody, apiIssue.Body)
assert.Equal(t, newTitle, apiIssue.Title) assert.Equal(t, newTitle, apiIssue.Title)
@@ -231,8 +228,7 @@ func testAPIEditIssue(t *testing.T) {
// ToDo change more // ToDo change more
}).AddTokenAuth(token) }).AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusCreated) resp := MakeRequest(t, req, http.StatusCreated)
var apiIssue api.Issue apiIssue := DecodeJSON(t, resp, &api.Issue{})
DecodeJSON(t, resp, &apiIssue)
issueAfter := unittest.AssertExistsAndLoadBean(t, &issues_model.Issue{ID: 10}) issueAfter := unittest.AssertExistsAndLoadBean(t, &issues_model.Issue{ID: 10})
repoAfter := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: issueBefore.RepoID}) repoAfter := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: issueBefore.RepoID})
@@ -278,13 +274,13 @@ func testAPISearchIssues(t *testing.T) {
link.RawQuery = query.Encode() link.RawQuery = query.Encode()
req := NewRequest(t, "GET", link.String()).AddTokenAuth(token) req := NewRequest(t, "GET", link.String()).AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &apiIssues) apiIssues = DecodeJSON(t, resp, []*api.Issue{})
assert.Len(t, apiIssues, expectedIssueCount) assert.Len(t, apiIssues, expectedIssueCount)
publicOnlyToken := getUserToken(t, "user1", auth_model.AccessTokenScopeReadIssue, auth_model.AccessTokenScopePublicOnly) publicOnlyToken := getUserToken(t, "user1", auth_model.AccessTokenScopeReadIssue, auth_model.AccessTokenScopePublicOnly)
req = NewRequest(t, "GET", link.String()).AddTokenAuth(publicOnlyToken) req = NewRequest(t, "GET", link.String()).AddTokenAuth(publicOnlyToken)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &apiIssues) apiIssues = DecodeJSON(t, resp, []*api.Issue{})
assert.Len(t, apiIssues, 15) // 15 public issues assert.Len(t, apiIssues, 15) // 15 public issues
since := "2000-01-01T00:50:01+00:00" // 946687801 since := "2000-01-01T00:50:01+00:00" // 946687801
@@ -294,7 +290,7 @@ func testAPISearchIssues(t *testing.T) {
link.RawQuery = query.Encode() link.RawQuery = query.Encode()
req = NewRequest(t, "GET", link.String()).AddTokenAuth(token) req = NewRequest(t, "GET", link.String()).AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &apiIssues) apiIssues = DecodeJSON(t, resp, []*api.Issue{})
assert.Len(t, apiIssues, 11) assert.Len(t, apiIssues, 11)
query.Del("since") query.Del("since")
query.Del("before") query.Del("before")
@@ -303,14 +299,14 @@ func testAPISearchIssues(t *testing.T) {
link.RawQuery = query.Encode() link.RawQuery = query.Encode()
req = NewRequest(t, "GET", link.String()).AddTokenAuth(token) req = NewRequest(t, "GET", link.String()).AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &apiIssues) apiIssues = DecodeJSON(t, resp, []*api.Issue{})
assert.Len(t, apiIssues, 2) assert.Len(t, apiIssues, 2)
query.Set("state", "all") query.Set("state", "all")
link.RawQuery = query.Encode() link.RawQuery = query.Encode()
req = NewRequest(t, "GET", link.String()).AddTokenAuth(token) req = NewRequest(t, "GET", link.String()).AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &apiIssues) apiIssues = DecodeJSON(t, resp, []*api.Issue{})
assert.Equal(t, "22", resp.Header().Get("X-Total-Count")) assert.Equal(t, "22", resp.Header().Get("X-Total-Count"))
assert.Len(t, apiIssues, 20) assert.Len(t, apiIssues, 20)
@@ -318,7 +314,7 @@ func testAPISearchIssues(t *testing.T) {
link.RawQuery = query.Encode() link.RawQuery = query.Encode()
req = NewRequest(t, "GET", link.String()).AddTokenAuth(token) req = NewRequest(t, "GET", link.String()).AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &apiIssues) apiIssues = DecodeJSON(t, resp, []*api.Issue{})
assert.Equal(t, "22", resp.Header().Get("X-Total-Count")) assert.Equal(t, "22", resp.Header().Get("X-Total-Count"))
assert.Len(t, apiIssues, 10) assert.Len(t, apiIssues, 10)
@@ -326,70 +322,70 @@ func testAPISearchIssues(t *testing.T) {
link.RawQuery = query.Encode() link.RawQuery = query.Encode()
req = NewRequest(t, "GET", link.String()).AddTokenAuth(token) req = NewRequest(t, "GET", link.String()).AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &apiIssues) apiIssues = DecodeJSON(t, resp, []*api.Issue{})
assert.Len(t, apiIssues, 2) assert.Len(t, apiIssues, 2)
query = url.Values{"milestones": {"milestone1"}, "state": {"all"}} query = url.Values{"milestones": {"milestone1"}, "state": {"all"}}
link.RawQuery = query.Encode() link.RawQuery = query.Encode()
req = NewRequest(t, "GET", link.String()).AddTokenAuth(token) req = NewRequest(t, "GET", link.String()).AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &apiIssues) apiIssues = DecodeJSON(t, resp, []*api.Issue{})
assert.Len(t, apiIssues, 1) assert.Len(t, apiIssues, 1)
query = url.Values{"milestones": {"milestone1,milestone3"}, "state": {"all"}} query = url.Values{"milestones": {"milestone1,milestone3"}, "state": {"all"}}
link.RawQuery = query.Encode() link.RawQuery = query.Encode()
req = NewRequest(t, "GET", link.String()).AddTokenAuth(token) req = NewRequest(t, "GET", link.String()).AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &apiIssues) apiIssues = DecodeJSON(t, resp, []*api.Issue{})
assert.Len(t, apiIssues, 2) assert.Len(t, apiIssues, 2)
query = url.Values{"owner": {"user2"}} // user query = url.Values{"owner": {"user2"}} // user
link.RawQuery = query.Encode() link.RawQuery = query.Encode()
req = NewRequest(t, "GET", link.String()).AddTokenAuth(token) req = NewRequest(t, "GET", link.String()).AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &apiIssues) apiIssues = DecodeJSON(t, resp, []*api.Issue{})
assert.Len(t, apiIssues, 8) assert.Len(t, apiIssues, 8)
query = url.Values{"owner": {"org3"}} // organization query = url.Values{"owner": {"org3"}} // organization
link.RawQuery = query.Encode() link.RawQuery = query.Encode()
req = NewRequest(t, "GET", link.String()).AddTokenAuth(token) req = NewRequest(t, "GET", link.String()).AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &apiIssues) apiIssues = DecodeJSON(t, resp, []*api.Issue{})
assert.Len(t, apiIssues, 5) assert.Len(t, apiIssues, 5)
query = url.Values{"owner": {"org3"}, "team": {"team1"}} // organization + team query = url.Values{"owner": {"org3"}, "team": {"team1"}} // organization + team
link.RawQuery = query.Encode() link.RawQuery = query.Encode()
req = NewRequest(t, "GET", link.String()).AddTokenAuth(token) req = NewRequest(t, "GET", link.String()).AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &apiIssues) apiIssues = DecodeJSON(t, resp, []*api.Issue{})
assert.Len(t, apiIssues, 2) assert.Len(t, apiIssues, 2)
query = url.Values{"created": {"1"}} // issues created by the auth user query = url.Values{"created": {"1"}} // issues created by the auth user
link.RawQuery = query.Encode() link.RawQuery = query.Encode()
req = NewRequest(t, "GET", link.String()).AddTokenAuth(token) req = NewRequest(t, "GET", link.String()).AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &apiIssues) apiIssues = DecodeJSON(t, resp, []*api.Issue{})
assert.Len(t, apiIssues, 5) assert.Len(t, apiIssues, 5)
query = url.Values{"created": {"1"}, "type": {"pulls"}} // prs created by the auth user query = url.Values{"created": {"1"}, "type": {"pulls"}} // prs created by the auth user
link.RawQuery = query.Encode() link.RawQuery = query.Encode()
req = NewRequest(t, "GET", link.String()).AddTokenAuth(token) req = NewRequest(t, "GET", link.String()).AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &apiIssues) apiIssues = DecodeJSON(t, resp, []*api.Issue{})
assert.Len(t, apiIssues, 3) assert.Len(t, apiIssues, 3)
query = url.Values{"created_by": {"user2"}} // issues created by the user2 query = url.Values{"created_by": {"user2"}} // issues created by the user2
link.RawQuery = query.Encode() link.RawQuery = query.Encode()
req = NewRequest(t, "GET", link.String()).AddTokenAuth(token) req = NewRequest(t, "GET", link.String()).AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &apiIssues) apiIssues = DecodeJSON(t, resp, []*api.Issue{})
assert.Len(t, apiIssues, 9) assert.Len(t, apiIssues, 9)
query = url.Values{"created_by": {"user2"}, "type": {"pulls"}} // prs created by user2 query = url.Values{"created_by": {"user2"}, "type": {"pulls"}} // prs created by user2
link.RawQuery = query.Encode() link.RawQuery = query.Encode()
req = NewRequest(t, "GET", link.String()).AddTokenAuth(token) req = NewRequest(t, "GET", link.String()).AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &apiIssues) apiIssues = DecodeJSON(t, resp, []*api.Issue{})
assert.Len(t, apiIssues, 3) assert.Len(t, apiIssues, 3)
} }
@@ -405,14 +401,14 @@ func testAPISearchIssuesWithLabels(t *testing.T) {
link.RawQuery = query.Encode() link.RawQuery = query.Encode()
req := NewRequest(t, "GET", link.String()).AddTokenAuth(token) req := NewRequest(t, "GET", link.String()).AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &apiIssues) apiIssues = DecodeJSON(t, resp, []*api.Issue{})
assert.Len(t, apiIssues, expectedIssueCount) assert.Len(t, apiIssues, expectedIssueCount)
query.Add("labels", "label1") query.Add("labels", "label1")
link.RawQuery = query.Encode() link.RawQuery = query.Encode()
req = NewRequest(t, "GET", link.String()).AddTokenAuth(token) req = NewRequest(t, "GET", link.String()).AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &apiIssues) apiIssues = DecodeJSON(t, resp, []*api.Issue{})
assert.Len(t, apiIssues, 2) assert.Len(t, apiIssues, 2)
// multiple labels // multiple labels
@@ -420,7 +416,7 @@ func testAPISearchIssuesWithLabels(t *testing.T) {
link.RawQuery = query.Encode() link.RawQuery = query.Encode()
req = NewRequest(t, "GET", link.String()).AddTokenAuth(token) req = NewRequest(t, "GET", link.String()).AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &apiIssues) apiIssues = DecodeJSON(t, resp, []*api.Issue{})
assert.Len(t, apiIssues, 2) assert.Len(t, apiIssues, 2)
// an org label // an org label
@@ -428,7 +424,7 @@ func testAPISearchIssuesWithLabels(t *testing.T) {
link.RawQuery = query.Encode() link.RawQuery = query.Encode()
req = NewRequest(t, "GET", link.String()).AddTokenAuth(token) req = NewRequest(t, "GET", link.String()).AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &apiIssues) apiIssues = DecodeJSON(t, resp, []*api.Issue{})
assert.Len(t, apiIssues, 1) assert.Len(t, apiIssues, 1)
// org and repo label // org and repo label
@@ -437,7 +433,7 @@ func testAPISearchIssuesWithLabels(t *testing.T) {
link.RawQuery = query.Encode() link.RawQuery = query.Encode()
req = NewRequest(t, "GET", link.String()).AddTokenAuth(token) req = NewRequest(t, "GET", link.String()).AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &apiIssues) apiIssues = DecodeJSON(t, resp, []*api.Issue{})
assert.Len(t, apiIssues, 2) assert.Len(t, apiIssues, 2)
// org and repo label which share the same issue // org and repo label which share the same issue
@@ -445,7 +441,7 @@ func testAPISearchIssuesWithLabels(t *testing.T) {
link.RawQuery = query.Encode() link.RawQuery = query.Encode()
req = NewRequest(t, "GET", link.String()).AddTokenAuth(token) req = NewRequest(t, "GET", link.String()).AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &apiIssues) apiIssues = DecodeJSON(t, resp, []*api.Issue{})
assert.Len(t, apiIssues, 2) assert.Len(t, apiIssues, 2)
} }

View File

@@ -32,8 +32,7 @@ func TestAPIGetTrackedTimes(t *testing.T) {
req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/issues/%d/times", user2.Name, issue2.Repo.Name, issue2.Index). req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/issues/%d/times", user2.Name, issue2.Repo.Name, issue2.Index).
AddTokenAuth(token) AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var apiTimes api.TrackedTimeList apiTimes := DecodeJSON(t, resp, api.TrackedTimeList{})
DecodeJSON(t, resp, &apiTimes)
expect, err := issues_model.GetTrackedTimes(t.Context(), &issues_model.FindTrackedTimesOptions{IssueID: issue2.ID}) expect, err := issues_model.GetTrackedTimes(t.Context(), &issues_model.FindTrackedTimesOptions{IssueID: issue2.ID})
assert.NoError(t, err) assert.NoError(t, err)
assert.Len(t, apiTimes, 3) assert.Len(t, apiTimes, 3)
@@ -56,8 +55,7 @@ func TestAPIGetTrackedTimes(t *testing.T) {
req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/issues/%d/times?since=%s&before=%s", user2.Name, issue2.Repo.Name, issue2.Index, since, before). req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/issues/%d/times?since=%s&before=%s", user2.Name, issue2.Repo.Name, issue2.Index, since, before).
AddTokenAuth(token) AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
var filterAPITimes api.TrackedTimeList filterAPITimes := DecodeJSON(t, resp, api.TrackedTimeList{})
DecodeJSON(t, resp, &filterAPITimes)
assert.Len(t, filterAPITimes, 2) assert.Len(t, filterAPITimes, 2)
assert.Equal(t, int64(3), filterAPITimes[0].ID) assert.Equal(t, int64(3), filterAPITimes[0].ID)
assert.Equal(t, int64(6), filterAPITimes[1].ID) assert.Equal(t, int64(6), filterAPITimes[1].ID)
@@ -126,8 +124,7 @@ func TestAPIAddTrackedTimes(t *testing.T) {
Created: time.Unix(947688818, 0), Created: time.Unix(947688818, 0),
}).AddTokenAuth(token) }).AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var apiNewTime api.TrackedTime apiNewTime := DecodeJSON(t, resp, &api.TrackedTime{})
DecodeJSON(t, resp, &apiNewTime)
assert.EqualValues(t, 33, apiNewTime.Time) assert.EqualValues(t, 33, apiNewTime.Time)
assert.Equal(t, user2.ID, apiNewTime.UserID) assert.Equal(t, user2.ID, apiNewTime.UserID)

View File

@@ -65,8 +65,7 @@ func TestCreateReadOnlyDeployKey(t *testing.T) {
AddTokenAuth(token) AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusCreated) resp := MakeRequest(t, req, http.StatusCreated)
var newDeployKey api.DeployKey newDeployKey := DecodeJSON(t, resp, &api.DeployKey{})
DecodeJSON(t, resp, &newDeployKey)
unittest.AssertExistsAndLoadBean(t, &asymkey_model.DeployKey{ unittest.AssertExistsAndLoadBean(t, &asymkey_model.DeployKey{
ID: newDeployKey.ID, ID: newDeployKey.ID,
Name: rawKeyBody.Title, Name: rawKeyBody.Title,
@@ -104,8 +103,7 @@ func TestCreateReadWriteDeployKey(t *testing.T) {
AddTokenAuth(token) AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusCreated) resp := MakeRequest(t, req, http.StatusCreated)
var newDeployKey api.DeployKey newDeployKey := DecodeJSON(t, resp, &api.DeployKey{})
DecodeJSON(t, resp, &newDeployKey)
unittest.AssertExistsAndLoadBean(t, &asymkey_model.DeployKey{ unittest.AssertExistsAndLoadBean(t, &asymkey_model.DeployKey{
ID: newDeployKey.ID, ID: newDeployKey.ID,
Name: rawKeyBody.Title, Name: rawKeyBody.Title,
@@ -130,8 +128,7 @@ func TestCreateUserKey(t *testing.T) {
AddTokenAuth(token) AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusCreated) resp := MakeRequest(t, req, http.StatusCreated)
var newPublicKey api.PublicKey newPublicKey := DecodeJSON(t, resp, &api.PublicKey{})
DecodeJSON(t, resp, &newPublicKey)
fingerprint, err := asymkey_model.CalcFingerprint(rawKeyBody.Key) fingerprint, err := asymkey_model.CalcFingerprint(rawKeyBody.Key)
assert.NoError(t, err) assert.NoError(t, err)
unittest.AssertExistsAndLoadBean(t, &asymkey_model.PublicKey{ unittest.AssertExistsAndLoadBean(t, &asymkey_model.PublicKey{
@@ -147,8 +144,7 @@ func TestCreateUserKey(t *testing.T) {
AddTokenAuth(token) AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
var fingerprintPublicKeys []api.PublicKey fingerprintPublicKeys := DecodeJSON(t, resp, []api.PublicKey{})
DecodeJSON(t, resp, &fingerprintPublicKeys)
assert.Equal(t, newPublicKey.Fingerprint, fingerprintPublicKeys[0].Fingerprint) assert.Equal(t, newPublicKey.Fingerprint, fingerprintPublicKeys[0].Fingerprint)
assert.Equal(t, newPublicKey.ID, fingerprintPublicKeys[0].ID) assert.Equal(t, newPublicKey.ID, fingerprintPublicKeys[0].ID)
assert.Equal(t, user.ID, fingerprintPublicKeys[0].Owner.ID) assert.Equal(t, user.ID, fingerprintPublicKeys[0].Owner.ID)
@@ -157,7 +153,7 @@ func TestCreateUserKey(t *testing.T) {
AddTokenAuth(token) AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &fingerprintPublicKeys) fingerprintPublicKeys = DecodeJSON(t, resp, []api.PublicKey{})
assert.Equal(t, newPublicKey.Fingerprint, fingerprintPublicKeys[0].Fingerprint) assert.Equal(t, newPublicKey.Fingerprint, fingerprintPublicKeys[0].Fingerprint)
assert.Equal(t, newPublicKey.ID, fingerprintPublicKeys[0].ID) assert.Equal(t, newPublicKey.ID, fingerprintPublicKeys[0].ID)
assert.Equal(t, user.ID, fingerprintPublicKeys[0].Owner.ID) assert.Equal(t, user.ID, fingerprintPublicKeys[0].Owner.ID)
@@ -167,7 +163,7 @@ func TestCreateUserKey(t *testing.T) {
AddTokenAuth(token) AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &fingerprintPublicKeys) fingerprintPublicKeys = DecodeJSON(t, resp, []api.PublicKey{})
assert.Empty(t, fingerprintPublicKeys) assert.Empty(t, fingerprintPublicKeys)
// Fail searching for wrong users key // Fail searching for wrong users key
@@ -175,7 +171,7 @@ func TestCreateUserKey(t *testing.T) {
AddTokenAuth(token) AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &fingerprintPublicKeys) fingerprintPublicKeys = DecodeJSON(t, resp, []api.PublicKey{})
assert.Empty(t, fingerprintPublicKeys) assert.Empty(t, fingerprintPublicKeys)
// Now login as user 2 // Now login as user 2
@@ -187,7 +183,7 @@ func TestCreateUserKey(t *testing.T) {
AddTokenAuth(token2) AddTokenAuth(token2)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &fingerprintPublicKeys) fingerprintPublicKeys = DecodeJSON(t, resp, []api.PublicKey{})
assert.Equal(t, newPublicKey.Fingerprint, fingerprintPublicKeys[0].Fingerprint) assert.Equal(t, newPublicKey.Fingerprint, fingerprintPublicKeys[0].Fingerprint)
assert.Equal(t, newPublicKey.ID, fingerprintPublicKeys[0].ID) assert.Equal(t, newPublicKey.ID, fingerprintPublicKeys[0].ID)
assert.Nil(t, fingerprintPublicKeys[0].Owner) assert.Nil(t, fingerprintPublicKeys[0].Owner)
@@ -197,7 +193,7 @@ func TestCreateUserKey(t *testing.T) {
AddTokenAuth(token2) AddTokenAuth(token2)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &fingerprintPublicKeys) fingerprintPublicKeys = DecodeJSON(t, resp, []api.PublicKey{})
assert.Equal(t, newPublicKey.Fingerprint, fingerprintPublicKeys[0].Fingerprint) assert.Equal(t, newPublicKey.Fingerprint, fingerprintPublicKeys[0].Fingerprint)
assert.Equal(t, newPublicKey.ID, fingerprintPublicKeys[0].ID) assert.Equal(t, newPublicKey.ID, fingerprintPublicKeys[0].ID)
assert.Nil(t, fingerprintPublicKeys[0].Owner) assert.Nil(t, fingerprintPublicKeys[0].Owner)
@@ -207,6 +203,6 @@ func TestCreateUserKey(t *testing.T) {
AddTokenAuth(token2) AddTokenAuth(token2)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &fingerprintPublicKeys) fingerprintPublicKeys = DecodeJSON(t, resp, []api.PublicKey{})
assert.Empty(t, fingerprintPublicKeys) assert.Empty(t, fingerprintPublicKeys)
} }

View File

@@ -22,8 +22,7 @@ func TestAPIListLabelTemplates(t *testing.T) {
req := NewRequest(t, "GET", "/api/v1/label/templates") req := NewRequest(t, "GET", "/api/v1/label/templates")
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var templateList []string templateList := DecodeJSON(t, resp, []string{})
DecodeJSON(t, resp, &templateList)
for i := range repo_module.LabelTemplateFiles { for i := range repo_module.LabelTemplateFiles {
assert.Equal(t, repo_module.LabelTemplateFiles[i].DisplayName, templateList[i]) assert.Equal(t, repo_module.LabelTemplateFiles[i].DisplayName, templateList[i])
@@ -45,8 +44,7 @@ func TestAPIGetLabelTemplateInfo(t *testing.T) {
req := NewRequest(t, "GET", urlStr) req := NewRequest(t, "GET", urlStr)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var templateInfo []api.LabelTemplate templateInfo := DecodeJSON(t, resp, []api.LabelTemplate{})
DecodeJSON(t, resp, &templateInfo)
labels, err := repo_module.LoadTemplateLabelsByDisplayName(templateName) labels, err := repo_module.LoadTemplateLabelsByDisplayName(templateName)
assert.NoError(t, err) assert.NoError(t, err)

View File

@@ -23,8 +23,7 @@ func TestAPIListLicenseTemplates(t *testing.T) {
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
// This tests if the API returns a list of strings // This tests if the API returns a list of strings
var licenseList []api.LicensesTemplateListEntry DecodeJSON(t, resp, []api.LicensesTemplateListEntry{})
DecodeJSON(t, resp, &licenseList)
} }
func TestAPIGetLicenseTemplateInfo(t *testing.T) { func TestAPIGetLicenseTemplateInfo(t *testing.T) {
@@ -42,8 +41,7 @@ func TestAPIGetLicenseTemplateInfo(t *testing.T) {
req := NewRequest(t, "GET", urlStr) req := NewRequest(t, "GET", urlStr)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var licenseInfo api.LicenseTemplateInfo licenseInfo := DecodeJSON(t, resp, &api.LicenseTemplateInfo{})
DecodeJSON(t, resp, &licenseInfo)
// We get the text of the template here // We get the text of the template here
text, _ := options.License(licenseName) text, _ := options.License(licenseName)

View File

@@ -37,8 +37,7 @@ func TestAPINotification(t *testing.T) {
req := NewRequest(t, "GET", "/api/v1/notifications?since="+since). req := NewRequest(t, "GET", "/api/v1/notifications?since="+since).
AddTokenAuth(token) AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var apiNL []api.NotificationThread apiNL := DecodeJSON(t, resp, []api.NotificationThread{})
DecodeJSON(t, resp, &apiNL)
assert.Len(t, apiNL, 1) assert.Len(t, apiNL, 1)
assert.EqualValues(t, 5, apiNL[0].ID) assert.EqualValues(t, 5, apiNL[0].ID)
@@ -49,7 +48,7 @@ func TestAPINotification(t *testing.T) {
req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/notifications?all=%s&before=%s", "true", before)). req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/notifications?all=%s&before=%s", "true", before)).
AddTokenAuth(token) AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &apiNL) apiNL = DecodeJSON(t, resp, []api.NotificationThread{})
assert.Len(t, apiNL, 3) assert.Len(t, apiNL, 3)
assert.EqualValues(t, 4, apiNL[0].ID) assert.EqualValues(t, 4, apiNL[0].ID)
@@ -66,7 +65,7 @@ func TestAPINotification(t *testing.T) {
req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/notifications?status-types=unread", user2.Name, repo1.Name)). req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/notifications?status-types=unread", user2.Name, repo1.Name)).
AddTokenAuth(token) AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &apiNL) apiNL = DecodeJSON(t, resp, []api.NotificationThread{})
assert.Len(t, apiNL, 1) assert.Len(t, apiNL, 1)
assert.EqualValues(t, 4, apiNL[0].ID) assert.EqualValues(t, 4, apiNL[0].ID)
@@ -75,7 +74,7 @@ func TestAPINotification(t *testing.T) {
req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/notifications?status-types=unread&status-types=pinned", user2.Name, repo1.Name)). req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/notifications?status-types=unread&status-types=pinned", user2.Name, repo1.Name)).
AddTokenAuth(token) AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &apiNL) apiNL = DecodeJSON(t, resp, []api.NotificationThread{})
assert.Len(t, apiNL, 2) assert.Len(t, apiNL, 2)
assert.EqualValues(t, 4, apiNL[0].ID) assert.EqualValues(t, 4, apiNL[0].ID)
@@ -97,8 +96,7 @@ func TestAPINotification(t *testing.T) {
req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/notifications/threads/%d", thread5.ID)). req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/notifications/threads/%d", thread5.ID)).
AddTokenAuth(token) AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
var apiN api.NotificationThread apiN := DecodeJSON(t, resp, &api.NotificationThread{})
DecodeJSON(t, resp, &apiN)
assert.EqualValues(t, 5, apiN.ID) assert.EqualValues(t, 5, apiN.ID)
assert.False(t, apiN.Pinned) assert.False(t, apiN.Pinned)
@@ -110,22 +108,20 @@ func TestAPINotification(t *testing.T) {
MakeRequest(t, NewRequest(t, "GET", "/api/v1/notifications/new"), http.StatusUnauthorized) MakeRequest(t, NewRequest(t, "GET", "/api/v1/notifications/new"), http.StatusUnauthorized)
newStruct := struct {
New int64 `json:"new"`
}{}
// -- check notifications -- // -- check notifications --
req = NewRequest(t, "GET", "/api/v1/notifications/new"). req = NewRequest(t, "GET", "/api/v1/notifications/new").
AddTokenAuth(token) AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &newStruct) newStruct := DecodeJSON(t, resp, &struct {
New int64 `json:"new"`
}{})
assert.Positive(t, newStruct.New) assert.Positive(t, newStruct.New)
// -- mark notifications as read -- // -- mark notifications as read --
req = NewRequest(t, "GET", "/api/v1/notifications?status-types=unread"). req = NewRequest(t, "GET", "/api/v1/notifications?status-types=unread").
AddTokenAuth(token) AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &apiNL) apiNL = DecodeJSON(t, resp, []api.NotificationThread{})
assert.Len(t, apiNL, 2) assert.Len(t, apiNL, 2)
lastReadAt := "2000-01-01T00%3A50%3A01%2B00%3A00" // 946687801 <- only Notification 4 is in this filter ... lastReadAt := "2000-01-01T00%3A50%3A01%2B00%3A00" // 946687801 <- only Notification 4 is in this filter ...
@@ -136,7 +132,7 @@ func TestAPINotification(t *testing.T) {
req = NewRequest(t, "GET", "/api/v1/notifications?status-types=unread"). req = NewRequest(t, "GET", "/api/v1/notifications?status-types=unread").
AddTokenAuth(token) AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &apiNL) apiNL = DecodeJSON(t, resp, []api.NotificationThread{})
assert.Len(t, apiNL, 1) assert.Len(t, apiNL, 1)
// -- PATCH /notifications/threads/{id} -- // -- PATCH /notifications/threads/{id} --
@@ -152,7 +148,9 @@ func TestAPINotification(t *testing.T) {
req = NewRequest(t, "GET", "/api/v1/notifications/new"). req = NewRequest(t, "GET", "/api/v1/notifications/new").
AddTokenAuth(token) AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &newStruct) newStruct = DecodeJSON(t, resp, &struct {
New int64 `json:"new"`
}{})
assert.Zero(t, newStruct.New) assert.Zero(t, newStruct.New)
} }
@@ -169,8 +167,7 @@ func TestAPINotificationPUT(t *testing.T) {
req := NewRequest(t, "GET", "/api/v1/notifications?all=true"). req := NewRequest(t, "GET", "/api/v1/notifications?all=true").
AddTokenAuth(token) AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var apiNL []api.NotificationThread apiNL := DecodeJSON(t, resp, []api.NotificationThread{})
DecodeJSON(t, resp, &apiNL)
assert.Len(t, apiNL, 4) assert.Len(t, apiNL, 4)
assert.EqualValues(t, 5, apiNL[0].ID) assert.EqualValues(t, 5, apiNL[0].ID)
@@ -193,7 +190,7 @@ func TestAPINotificationPUT(t *testing.T) {
req = NewRequest(t, "PUT", "/api/v1/notifications?status-types=read&status-type=pinned&to-status=unread"). req = NewRequest(t, "PUT", "/api/v1/notifications?status-types=read&status-type=pinned&to-status=unread").
AddTokenAuth(token) AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusResetContent) resp = MakeRequest(t, req, http.StatusResetContent)
DecodeJSON(t, resp, &apiNL) apiNL = DecodeJSON(t, resp, []api.NotificationThread{})
assert.Len(t, apiNL, 1) assert.Len(t, apiNL, 1)
assert.EqualValues(t, 2, apiNL[0].ID) assert.EqualValues(t, 2, apiNL[0].ID)
assert.True(t, apiNL[0].Unread) assert.True(t, apiNL[0].Unread)
@@ -205,7 +202,7 @@ func TestAPINotificationPUT(t *testing.T) {
req = NewRequest(t, "GET", "/api/v1/notifications?all=true"). req = NewRequest(t, "GET", "/api/v1/notifications?all=true").
AddTokenAuth(token) AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &apiNL) apiNL = DecodeJSON(t, resp, []api.NotificationThread{})
assert.Len(t, apiNL, 4) assert.Len(t, apiNL, 4)
assert.EqualValues(t, 2, apiNL[0].ID) assert.EqualValues(t, 2, apiNL[0].ID)

View File

@@ -47,8 +47,7 @@ func testAPIOrgCreateRename(t *testing.T) {
req := NewRequestWithJSON(t, "POST", "/api/v1/orgs", &org).AddTokenAuth(token) req := NewRequestWithJSON(t, "POST", "/api/v1/orgs", &org).AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusCreated) resp := MakeRequest(t, req, http.StatusCreated)
var apiOrg api.Organization apiOrg := DecodeJSON(t, resp, &api.Organization{})
DecodeJSON(t, resp, &apiOrg)
assert.Equal(t, org.UserName, apiOrg.Name) assert.Equal(t, org.UserName, apiOrg.Name)
assert.Equal(t, org.FullName, apiOrg.FullName) assert.Equal(t, org.FullName, apiOrg.FullName)
@@ -66,7 +65,7 @@ func testAPIOrgCreateRename(t *testing.T) {
// check org name // check org name
req = NewRequestf(t, "GET", "/api/v1/orgs/%s", org.UserName).AddTokenAuth(token) req = NewRequestf(t, "GET", "/api/v1/orgs/%s", org.UserName).AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &apiOrg) apiOrg = DecodeJSON(t, resp, &api.Organization{})
assert.Equal(t, org.UserName, apiOrg.Name) assert.Equal(t, org.UserName, apiOrg.Name)
t.Run("CheckPermission", func(t *testing.T) { t.Run("CheckPermission", func(t *testing.T) {
@@ -91,8 +90,7 @@ func testAPIOrgCreateRename(t *testing.T) {
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
// user1 on this org is public // user1 on this org is public
var users []*api.User users := DecodeJSON(t, resp, []*api.User{})
DecodeJSON(t, resp, &users)
assert.Len(t, users, 1) assert.Len(t, users, 1)
assert.Equal(t, "user1", users[0].UserName) assert.Equal(t, "user1", users[0].UserName)
}) })
@@ -110,8 +108,7 @@ func testAPIOrgCreateRename(t *testing.T) {
// FIXME: this test is wrong, there is no repository at all, so the for-loop is empty // FIXME: this test is wrong, there is no repository at all, so the for-loop is empty
req = NewRequestf(t, "GET", "/api/v1/orgs/%s/repos", org.UserName).AddTokenAuth(token) req = NewRequestf(t, "GET", "/api/v1/orgs/%s/repos", org.UserName).AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
var repos []*api.Repository repos := DecodeJSON(t, resp, []*api.Repository{})
DecodeJSON(t, resp, &repos)
for _, repo := range repos { for _, repo := range repos {
assert.False(t, repo.Private) assert.False(t, repo.Private)
} }
@@ -126,9 +123,8 @@ func testAPIOrgGeneral(t *testing.T) {
// accessing with a token will return all orgs // accessing with a token will return all orgs
req := NewRequest(t, "GET", "/api/v1/orgs").AddTokenAuth(user1Token) req := NewRequest(t, "GET", "/api/v1/orgs").AddTokenAuth(user1Token)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var apiOrgList []*api.Organization
DecodeJSON(t, resp, &apiOrgList) apiOrgList := DecodeJSON(t, resp, []*api.Organization{})
assert.Len(t, apiOrgList, 13) assert.Len(t, apiOrgList, 13)
assert.Equal(t, "Limited Org 36", apiOrgList[1].FullName) assert.Equal(t, "Limited Org 36", apiOrgList[1].FullName)
assert.Equal(t, "limited", apiOrgList[1].Visibility) assert.Equal(t, "limited", apiOrgList[1].Visibility)
@@ -137,7 +133,7 @@ func testAPIOrgGeneral(t *testing.T) {
req = NewRequest(t, "GET", "/api/v1/orgs") req = NewRequest(t, "GET", "/api/v1/orgs")
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &apiOrgList) apiOrgList = DecodeJSON(t, resp, []*api.Organization{})
assert.Len(t, apiOrgList, 9) assert.Len(t, apiOrgList, 9)
assert.Equal(t, "org 17", apiOrgList[0].FullName) assert.Equal(t, "org 17", apiOrgList[0].FullName)
assert.Equal(t, "public", apiOrgList[0].Visibility) assert.Equal(t, "public", apiOrgList[0].Visibility)
@@ -223,11 +219,10 @@ func testAPIOrgGeneral(t *testing.T) {
req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/orgs/%s/teams/search?q=%s", orgName, "empty")). req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/orgs/%s/teams/search?q=%s", orgName, "empty")).
AddTokenAuth(user1Token) AddTokenAuth(user1Token)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
data := struct { data := DecodeJSON(t, resp, &struct {
Ok bool Ok bool
Data []*api.Team Data []*api.Team
}{} }{})
DecodeJSON(t, resp, &data)
assert.True(t, data.Ok) assert.True(t, data.Ok)
if assert.Len(t, data.Data, 1) { if assert.Len(t, data.Data, 1) {
assert.Equal(t, "Empty", data.Data[0].Name) assert.Equal(t, "Empty", data.Data[0].Name)

View File

@@ -134,8 +134,7 @@ func testPackageCargo(t *testing.T, _ *neturl.URL) {
AddBasicAuth(user.Name) AddBasicAuth(user.Name)
resp := MakeRequest(t, req, http.StatusBadRequest) resp := MakeRequest(t, req, http.StatusBadRequest)
var status cargo_router.StatusResponse status := DecodeJSON(t, resp, &cargo_router.StatusResponse{})
DecodeJSON(t, resp, &status)
assert.False(t, status.OK) assert.False(t, status.OK)
content = createPackage("test", "-1.0.0") content = createPackage("test", "-1.0.0")
@@ -144,7 +143,7 @@ func testPackageCargo(t *testing.T, _ *neturl.URL) {
AddBasicAuth(user.Name) AddBasicAuth(user.Name)
resp = MakeRequest(t, req, http.StatusBadRequest) resp = MakeRequest(t, req, http.StatusBadRequest)
DecodeJSON(t, resp, &status) status = DecodeJSON(t, resp, &cargo_router.StatusResponse{})
assert.False(t, status.OK) assert.False(t, status.OK)
}) })
@@ -174,8 +173,7 @@ func testPackageCargo(t *testing.T, _ *neturl.URL) {
AddBasicAuth(user.Name) AddBasicAuth(user.Name)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var status cargo_router.StatusResponse status := DecodeJSON(t, resp, &cargo_router.StatusResponse{})
DecodeJSON(t, resp, &status)
assert.True(t, status.OK) assert.True(t, status.OK)
pvs, err := packages.GetVersionsByPackageType(t.Context(), user.ID, packages.TypeCargo) pvs, err := packages.GetVersionsByPackageType(t.Context(), user.ID, packages.TypeCargo)
@@ -320,8 +318,7 @@ func testPackageCargo(t *testing.T, _ *neturl.URL) {
AddBasicAuth(user.Name) AddBasicAuth(user.Name)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var result cargo_router.SearchResult result := DecodeJSON(t, resp, &cargo_router.SearchResult{})
DecodeJSON(t, resp, &result)
assert.Equal(t, c.ExpectedTotal, result.Meta.Total, "case %d: unexpected total hits", i) assert.Equal(t, c.ExpectedTotal, result.Meta.Total, "case %d: unexpected total hits", i)
assert.Len(t, result.Crates, c.ExpectedResults, "case %d: unexpected result count", i) assert.Len(t, result.Crates, c.ExpectedResults, "case %d: unexpected result count", i)
@@ -335,8 +332,7 @@ func testPackageCargo(t *testing.T, _ *neturl.URL) {
AddBasicAuth(user.Name) AddBasicAuth(user.Name)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var status cargo_router.StatusResponse status := DecodeJSON(t, resp, &cargo_router.StatusResponse{})
DecodeJSON(t, resp, &status)
assert.True(t, status.OK) assert.True(t, status.OK)
content := readGitContent(t, cargo_service.BuildPackagePath(packageName)) content := readGitContent(t, cargo_service.BuildPackagePath(packageName))
@@ -355,8 +351,7 @@ func testPackageCargo(t *testing.T, _ *neturl.URL) {
AddBasicAuth(user.Name) AddBasicAuth(user.Name)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var status cargo_router.StatusResponse status := DecodeJSON(t, resp, &cargo_router.StatusResponse{})
DecodeJSON(t, resp, &status)
assert.True(t, status.OK) assert.True(t, status.OK)
content := readGitContent(t, cargo_service.BuildPackagePath(packageName)) content := readGitContent(t, cargo_service.BuildPackagePath(packageName))
@@ -374,8 +369,7 @@ func testPackageCargo(t *testing.T, _ *neturl.URL) {
req := NewRequest(t, "GET", fmt.Sprintf("%s/%s/owners", url, neturl.PathEscape(packageName))) req := NewRequest(t, "GET", fmt.Sprintf("%s/%s/owners", url, neturl.PathEscape(packageName)))
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var owners cargo_router.Owners owners := DecodeJSON(t, resp, &cargo_router.Owners{})
DecodeJSON(t, resp, &owners)
assert.Len(t, owners.Users, 1) assert.Len(t, owners.Users, 1)
assert.Equal(t, user.ID, owners.Users[0].ID) assert.Equal(t, user.ID, owners.Users[0].ID)

View File

@@ -345,8 +345,7 @@ nwIDAQAB
Dependencies map[string]string `json:"dependencies"` Dependencies map[string]string `json:"dependencies"`
} }
var result map[string]map[string]*VersionInfo result := DecodeJSON(t, resp, map[string]map[string]*VersionInfo{})
DecodeJSON(t, resp, &result)
assert.Len(t, result, 1) assert.Len(t, result, 1)
assert.Contains(t, result, packageName) assert.Contains(t, result, packageName)
@@ -398,8 +397,7 @@ nwIDAQAB
AddBasicAuth(user.Name) AddBasicAuth(user.Name)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var result Result result := DecodeJSON(t, resp, &Result{})
DecodeJSON(t, resp, &result)
assert.Equal(t, c.ExpectedTotal, result.Total, "case %d: unexpected total hits", i) assert.Equal(t, c.ExpectedTotal, result.Total, "case %d: unexpected total hits", i)
assert.Len(t, result.Items, c.ExpectedResults, "case %d: unexpected result count", i) assert.Len(t, result.Items, c.ExpectedResults, "case %d: unexpected result count", i)
@@ -449,8 +447,7 @@ nwIDAQAB
AddBasicAuth(user.Name) AddBasicAuth(user.Name)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var result Result result := DecodeJSON(t, resp, &Result{})
DecodeJSON(t, resp, &result)
assert.Equal(t, c.ExpectedTotal, result.Total, "case %d: unexpected total hits", i) assert.Equal(t, c.ExpectedTotal, result.Total, "case %d: unexpected total hits", i)
assert.Len(t, result.Items, c.ExpectedResults, "case %d: unexpected result count", i) assert.Len(t, result.Items, c.ExpectedResults, "case %d: unexpected result count", i)
@@ -484,8 +481,7 @@ nwIDAQAB
Versions []string `json:"versions"` Versions []string `json:"versions"`
} }
var result Result result := DecodeJSON(t, resp, &Result{})
DecodeJSON(t, resp, &result)
versionURL := fmt.Sprintf("%s%s/cookbooks/%s/versions/%s", setting.AppURL, root[1:], packageName, packageVersion) versionURL := fmt.Sprintf("%s%s/cookbooks/%s/versions/%s", setting.AppURL, root[1:], packageName, packageVersion)
@@ -513,8 +509,7 @@ nwIDAQAB
Dependencies map[string]string `json:"dependencies"` Dependencies map[string]string `json:"dependencies"`
} }
var result Result result := DecodeJSON(t, resp, &Result{})
DecodeJSON(t, resp, &result)
packageURL := fmt.Sprintf("%s%s/cookbooks/%s", setting.AppURL, root[1:], packageName) packageURL := fmt.Sprintf("%s%s/cookbooks/%s", setting.AppURL, root[1:], packageName)

View File

@@ -64,8 +64,7 @@ func TestPackageComposer(t *testing.T) {
AddBasicAuth(user.Name) AddBasicAuth(user.Name)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var result composer.ServiceIndexResponse result := DecodeJSON(t, resp, &composer.ServiceIndexResponse{})
DecodeJSON(t, resp, &result)
assert.Equal(t, url+"/search.json?q=%query%&type=%type%", result.SearchTemplate) assert.Equal(t, url+"/search.json?q=%query%&type=%type%", result.SearchTemplate)
assert.Equal(t, url+"/p2/%package%.json", result.MetadataTemplate) assert.Equal(t, url+"/p2/%package%.json", result.MetadataTemplate)
@@ -167,8 +166,7 @@ func TestPackageComposer(t *testing.T) {
AddBasicAuth(user.Name) AddBasicAuth(user.Name)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var result composer.SearchResultResponse result := DecodeJSON(t, resp, &composer.SearchResultResponse{})
DecodeJSON(t, resp, &result)
assert.Equal(t, c.ExpectedTotal, result.Total, "case %d: unexpected total hits", i) assert.Equal(t, c.ExpectedTotal, result.Total, "case %d: unexpected total hits", i)
assert.Len(t, result.Results, c.ExpectedResults, "case %d: unexpected result count", i) assert.Len(t, result.Results, c.ExpectedResults, "case %d: unexpected result count", i)
@@ -182,8 +180,7 @@ func TestPackageComposer(t *testing.T) {
AddBasicAuth(user.Name) AddBasicAuth(user.Name)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var result map[string][]string result := DecodeJSON(t, resp, map[string][]string{})
DecodeJSON(t, resp, &result)
assert.Contains(t, result, "packageNames") assert.Contains(t, result, "packageNames")
names := result["packageNames"] names := result["packageNames"]
@@ -198,8 +195,7 @@ func TestPackageComposer(t *testing.T) {
AddBasicAuth(user.Name) AddBasicAuth(user.Name)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var result composer.PackageMetadataResponse result := DecodeJSON(t, resp, &composer.PackageMetadataResponse{})
DecodeJSON(t, resp, &result)
assert.Contains(t, result.Packages, packageName) assert.Contains(t, result.Packages, packageName)
pkgs := result.Packages[packageName] pkgs := result.Packages[packageName]
@@ -229,8 +225,7 @@ func TestPackageComposer(t *testing.T) {
AddBasicAuth(user.Name) AddBasicAuth(user.Name)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
result = composer.PackageMetadataResponse{} result = DecodeJSON(t, resp, &composer.PackageMetadataResponse{})
DecodeJSON(t, resp, &result)
assert.Contains(t, result.Packages, packageName) assert.Contains(t, result.Packages, packageName)
pkgs = result.Packages[packageName] pkgs = result.Packages[packageName]

View File

@@ -107,8 +107,7 @@ func uploadConanPackageV1(t *testing.T, baseURL, token, name, version, user, cha
}).AddTokenAuth(token) }).AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
uploadURLs := make(map[string]string) uploadURLs := DecodeJSON(t, resp, map[string]string{})
DecodeJSON(t, resp, &uploadURLs)
assert.Contains(t, uploadURLs, conanfileName) assert.Contains(t, uploadURLs, conanfileName)
assert.NotContains(t, uploadURLs, "removed.txt") assert.NotContains(t, uploadURLs, "removed.txt")
@@ -143,8 +142,7 @@ func uploadConanPackageV1(t *testing.T, baseURL, token, name, version, user, cha
}).AddTokenAuth(token) }).AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
uploadURLs = make(map[string]string) uploadURLs = DecodeJSON(t, resp, map[string]string{})
DecodeJSON(t, resp, &uploadURLs)
assert.Contains(t, uploadURLs, conaninfoName) assert.Contains(t, uploadURLs, conaninfoName)
assert.NotContains(t, uploadURLs, "removed.txt") assert.NotContains(t, uploadURLs, "removed.txt")
@@ -370,8 +368,7 @@ func TestPackageConan(t *testing.T) {
req := NewRequest(t, "GET", recipeURL) req := NewRequest(t, "GET", recipeURL)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
fileHashes := make(map[string]string) fileHashes := DecodeJSON(t, resp, map[string]string{})
DecodeJSON(t, resp, &fileHashes)
assert.Len(t, fileHashes, 1) assert.Len(t, fileHashes, 1)
assert.Contains(t, fileHashes, conanfileName) assert.Contains(t, fileHashes, conanfileName)
assert.Equal(t, "7abc52241c22090782c54731371847a8", fileHashes[conanfileName]) assert.Equal(t, "7abc52241c22090782c54731371847a8", fileHashes[conanfileName])
@@ -379,14 +376,13 @@ func TestPackageConan(t *testing.T) {
req = NewRequest(t, "GET", recipeURL+"/digest") req = NewRequest(t, "GET", recipeURL+"/digest")
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
downloadURLs := make(map[string]string) downloadURLs := DecodeJSON(t, resp, map[string]string{})
DecodeJSON(t, resp, &downloadURLs)
assert.Contains(t, downloadURLs, conanfileName) assert.Contains(t, downloadURLs, conanfileName)
req = NewRequest(t, "GET", recipeURL+"/download_urls") req = NewRequest(t, "GET", recipeURL+"/download_urls")
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &downloadURLs) downloadURLs = DecodeJSON(t, resp, map[string]string{})
assert.Contains(t, downloadURLs, conanfileName) assert.Contains(t, downloadURLs, conanfileName)
req = NewRequest(t, "GET", downloadURLs[conanfileName]) req = NewRequest(t, "GET", downloadURLs[conanfileName])
@@ -398,8 +394,7 @@ func TestPackageConan(t *testing.T) {
req = NewRequest(t, "GET", packageURL) req = NewRequest(t, "GET", packageURL)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
fileHashes = make(map[string]string) fileHashes = DecodeJSON(t, resp, map[string]string{})
DecodeJSON(t, resp, &fileHashes)
assert.Len(t, fileHashes, 1) assert.Len(t, fileHashes, 1)
assert.Contains(t, fileHashes, conaninfoName) assert.Contains(t, fileHashes, conaninfoName)
assert.Equal(t, "7628bfcc5b17f1470c468621a78df394", fileHashes[conaninfoName]) assert.Equal(t, "7628bfcc5b17f1470c468621a78df394", fileHashes[conaninfoName])
@@ -407,14 +402,13 @@ func TestPackageConan(t *testing.T) {
req = NewRequest(t, "GET", packageURL+"/digest") req = NewRequest(t, "GET", packageURL+"/digest")
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
downloadURLs = make(map[string]string) downloadURLs = DecodeJSON(t, resp, map[string]string{})
DecodeJSON(t, resp, &downloadURLs)
assert.Contains(t, downloadURLs, conaninfoName) assert.Contains(t, downloadURLs, conaninfoName)
req = NewRequest(t, "GET", packageURL+"/download_urls") req = NewRequest(t, "GET", packageURL+"/download_urls")
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &downloadURLs) downloadURLs = DecodeJSON(t, resp, map[string]string{})
assert.Contains(t, downloadURLs, conaninfoName) assert.Contains(t, downloadURLs, conaninfoName)
req = NewRequest(t, "GET", downloadURLs[conaninfoName]) req = NewRequest(t, "GET", downloadURLs[conaninfoName])
@@ -470,8 +464,7 @@ func TestPackageConan(t *testing.T) {
req := NewRequest(t, "GET", fmt.Sprintf("%s/v1/conans/%s/%s/%s/%s/search", url, name, version1, user1, channel2)) req := NewRequest(t, "GET", fmt.Sprintf("%s/v1/conans/%s/%s/%s/%s/search", url, name, version1, user1, channel2))
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var result map[string]*conan_module.Conaninfo result := DecodeJSON(t, resp, map[string]*conan_module.Conaninfo{})
DecodeJSON(t, resp, &result)
assert.Contains(t, result, conanPackageReference) assert.Contains(t, result, conanPackageReference)
info := result[conanPackageReference] info := result[conanPackageReference]
@@ -666,16 +659,14 @@ func TestPackageConan(t *testing.T) {
req := NewRequest(t, "GET", recipeURL+"/latest") req := NewRequest(t, "GET", recipeURL+"/latest")
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
obj := make(map[string]string) obj := DecodeJSON(t, resp, map[string]string{})
DecodeJSON(t, resp, &obj)
assert.Contains(t, obj, "revision") assert.Contains(t, obj, "revision")
assert.Equal(t, revision1, obj["revision"]) assert.Equal(t, revision1, obj["revision"])
req = NewRequest(t, "GET", fmt.Sprintf("%s/revisions/%s/packages/%s/latest", recipeURL, revision1, conanPackageReference)) req = NewRequest(t, "GET", fmt.Sprintf("%s/revisions/%s/packages/%s/latest", recipeURL, revision1, conanPackageReference))
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
obj = make(map[string]string) obj = DecodeJSON(t, resp, map[string]string{})
DecodeJSON(t, resp, &obj)
assert.Contains(t, obj, "revision") assert.Contains(t, obj, "revision")
assert.Equal(t, revision1, obj["revision"]) assert.Equal(t, revision1, obj["revision"])
}) })
@@ -764,8 +755,7 @@ func TestPackageConan(t *testing.T) {
req := NewRequest(t, "GET", fmt.Sprintf("%s/v2/conans/%s/%s/%s/%s/search", url, name, version1, user1, channel1)) req := NewRequest(t, "GET", fmt.Sprintf("%s/v2/conans/%s/%s/%s/%s/search", url, name, version1, user1, channel1))
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var result map[string]*conan_module.Conaninfo result := DecodeJSON(t, resp, map[string]*conan_module.Conaninfo{})
DecodeJSON(t, resp, &result)
assert.Contains(t, result, conanPackageReference) assert.Contains(t, result, conanPackageReference)
info := result[conanPackageReference] info := result[conanPackageReference]
@@ -774,8 +764,7 @@ func TestPackageConan(t *testing.T) {
req = NewRequest(t, "GET", fmt.Sprintf("%s/v2/conans/%s/%s/%s/%s/revisions/%s/search", url, name, version1, user1, channel1, revision1)) req = NewRequest(t, "GET", fmt.Sprintf("%s/v2/conans/%s/%s/%s/%s/revisions/%s/search", url, name, version1, user1, channel1, revision1))
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
result = make(map[string]*conan_module.Conaninfo) result = DecodeJSON(t, resp, map[string]*conan_module.Conaninfo{})
DecodeJSON(t, resp, &result)
assert.Contains(t, result, conanPackageReference) assert.Contains(t, result, conanPackageReference)
info = result[conanPackageReference] info = result[conanPackageReference]

View File

@@ -218,8 +218,7 @@ func TestPackageConda(t *testing.T) {
req := NewRequest(t, "GET", root+"/noarch/repodata.json") req := NewRequest(t, "GET", root+"/noarch/repodata.json")
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var result RepoData result := DecodeJSON(t, resp, &RepoData{})
DecodeJSON(t, resp, &result)
assert.Equal(t, "noarch", result.Info.Subdir) assert.Equal(t, "noarch", result.Info.Subdir)
assert.Empty(t, result.PackagesConda) assert.Empty(t, result.PackagesConda)
@@ -251,8 +250,7 @@ func TestPackageConda(t *testing.T) {
req := NewRequest(t, "GET", fmt.Sprintf("%s/%s/noarch/repodata.json", root, channel)) req := NewRequest(t, "GET", fmt.Sprintf("%s/%s/noarch/repodata.json", root, channel))
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var result RepoData result := DecodeJSON(t, resp, &RepoData{})
DecodeJSON(t, resp, &result)
assert.Equal(t, "noarch", result.Info.Subdir) assert.Equal(t, "noarch", result.Info.Subdir)
assert.Empty(t, result.Packages) assert.Empty(t, result.Packages)

View File

@@ -161,8 +161,7 @@ func TestPackageContainer(t *testing.T) {
req := NewRequest(t, "GET", setting.AppURL+"v2/token") req := NewRequest(t, "GET", setting.AppURL+"v2/token")
req.Request.SetBasicAuth(user.Name, readToken) req.Request.SetBasicAuth(user.Name, readToken)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
tokenResponse := &TokenResponse{} tokenResponse := DecodeJSON(t, resp, &TokenResponse{})
DecodeJSON(t, resp, &tokenResponse)
readToken = "Bearer " + tokenResponse.Token readToken = "Bearer " + tokenResponse.Token
@@ -182,8 +181,7 @@ func TestPackageContainer(t *testing.T) {
return return
} }
tokenResponse := &TokenResponse{} tokenResponse := DecodeJSON(t, resp, &TokenResponse{})
DecodeJSON(t, resp, &tokenResponse)
assert.NotEmpty(t, tokenResponse.Token) assert.NotEmpty(t, tokenResponse.Token)
@@ -705,8 +703,7 @@ func TestPackageContainer(t *testing.T) {
Tags []string `json:"tags"` Tags []string `json:"tags"`
} }
tagList := &TagList{} tagList := DecodeJSON(t, resp, &TagList{})
DecodeJSON(t, resp, &tagList)
assert.Equal(t, user.Name+"/"+image, tagList.Name) assert.Equal(t, user.Name+"/"+image, tagList.Name)
assert.Equal(t, c.ExpectedTags, tagList.Tags) assert.Equal(t, c.ExpectedTags, tagList.Tags)
@@ -717,8 +714,7 @@ func TestPackageContainer(t *testing.T) {
AddTokenAuth(token) AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var apiPackages []*api.Package apiPackages := DecodeJSON(t, resp, []*api.Package{})
DecodeJSON(t, resp, &apiPackages)
assert.Len(t, apiPackages, 4) // "latest", "main", "multi", "sha256:..." assert.Len(t, apiPackages, 4) // "latest", "main", "multi", "sha256:..."
}) })
@@ -803,8 +799,7 @@ func TestPackageContainer(t *testing.T) {
Repositories []string `json:"repositories"` Repositories []string `json:"repositories"`
} }
repoList := &RepositoryList{} repoList := DecodeJSON(t, resp, &RepositoryList{})
DecodeJSON(t, resp, &repoList)
assert.Len(t, repoList.Repositories, len(images)) assert.Len(t, repoList.Repositories, len(images))
names := make([]string, 0, len(images)) names := make([]string, 0, len(images))

View File

@@ -106,25 +106,20 @@ func TestPackageGo(t *testing.T) {
Time time.Time `json:"Time"` Time time.Time `json:"Time"`
} }
info := &Info{} info := DecodeJSON(t, resp, &Info{})
DecodeJSON(t, resp, &info)
assert.Equal(t, packageVersion, info.Version) assert.Equal(t, packageVersion, info.Version)
req = NewRequest(t, "GET", fmt.Sprintf("%s/%s/@v/latest.info", url, packageName)) req = NewRequest(t, "GET", fmt.Sprintf("%s/%s/@v/latest.info", url, packageName))
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
info = &Info{} info = DecodeJSON(t, resp, &Info{})
DecodeJSON(t, resp, &info)
assert.Equal(t, packageVersion2, info.Version) assert.Equal(t, packageVersion2, info.Version)
req = NewRequest(t, "GET", fmt.Sprintf("%s/%s/@latest", url, packageName)) req = NewRequest(t, "GET", fmt.Sprintf("%s/%s/@latest", url, packageName))
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
info = &Info{} info = DecodeJSON(t, resp, &Info{})
DecodeJSON(t, resp, &info)
assert.Equal(t, packageVersion2, info.Version) assert.Equal(t, packageVersion2, info.Version)
}) })

View File

@@ -165,8 +165,7 @@ func TestPackageNpm(t *testing.T) {
AddTokenAuth(token) AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var result npm.PackageMetadata result := DecodeJSON(t, resp, &npm.PackageMetadata{})
DecodeJSON(t, resp, &result)
assert.Equal(t, packageName, result.ID) assert.Equal(t, packageName, result.ID)
assert.Equal(t, packageName, result.Name) assert.Equal(t, packageName, result.Name)
@@ -213,8 +212,7 @@ func TestPackageNpm(t *testing.T) {
AddTokenAuth(token) AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var result map[string]string result := DecodeJSON(t, resp, map[string]string{})
DecodeJSON(t, resp, &result)
assert.Len(t, result, 2) assert.Len(t, result, 2)
assert.Contains(t, result, packageTag) assert.Contains(t, result, packageTag)
@@ -230,8 +228,7 @@ func TestPackageNpm(t *testing.T) {
AddTokenAuth(token) AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var result npm.PackageMetadata result := DecodeJSON(t, resp, &npm.PackageMetadata{})
DecodeJSON(t, resp, &result)
assert.Len(t, result.DistTags, 2) assert.Len(t, result.DistTags, 2)
assert.Contains(t, result.DistTags, packageTag) assert.Contains(t, result.DistTags, packageTag)
@@ -278,8 +275,7 @@ func TestPackageNpm(t *testing.T) {
req := NewRequest(t, "GET", fmt.Sprintf("%s?text=%s&from=%d&size=%d", url, c.Query, c.Skip, c.Take)) req := NewRequest(t, "GET", fmt.Sprintf("%s?text=%s&from=%d&size=%d", url, c.Query, c.Skip, c.Take))
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var result npm.PackageSearch result := DecodeJSON(t, resp, &npm.PackageSearch{})
DecodeJSON(t, resp, &result)
assert.Equal(t, c.ExpectedTotal, result.Total, "case %d: unexpected total hits", i) assert.Equal(t, c.ExpectedTotal, result.Total, "case %d: unexpected total hits", i)
assert.Len(t, result.Objects, c.ExpectedResults, "case %d: unexpected result count", i) assert.Len(t, result.Objects, c.ExpectedResults, "case %d: unexpected result count", i)

View File

@@ -251,8 +251,7 @@ func TestPackageNuGet(t *testing.T) {
return return
} }
var result nuget.ServiceIndexResponseV3 result := DecodeJSON(t, resp, &nuget.ServiceIndexResponseV3{})
DecodeJSON(t, resp, &result)
assert.Equal(t, "3.0.0", result.Version) assert.Equal(t, "3.0.0", result.Version)
assert.NotEmpty(t, result.Resources) assert.NotEmpty(t, result.Resources)
@@ -684,8 +683,7 @@ AAAjQmxvYgAAAGm7ENm9SGxMtAFVvPUsPJTF6PbtAAAAAFcVogEJAAAAAQAAAA==`)
AddBasicAuth(user.Name) AddBasicAuth(user.Name)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var result nuget.SearchResultResponse result := DecodeJSON(t, resp, &nuget.SearchResultResponse{})
DecodeJSON(t, resp, &result)
assert.Equal(t, c.ExpectedTotal, result.TotalHits, "case %d: unexpected total hits", i) assert.Equal(t, c.ExpectedTotal, result.TotalHits, "case %d: unexpected total hits", i)
assert.Len(t, result.Data, c.ExpectedResults, "case %d: unexpected result count", i) assert.Len(t, result.Data, c.ExpectedResults, "case %d: unexpected result count", i)
@@ -702,8 +700,7 @@ AAAjQmxvYgAAAGm7ENm9SGxMtAFVvPUsPJTF6PbtAAAAAFcVogEJAAAAAQAAAA==`)
AddBasicAuth(user.Name) AddBasicAuth(user.Name)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var result nuget.SearchResultResponse result := DecodeJSON(t, resp, &nuget.SearchResultResponse{})
DecodeJSON(t, resp, &result)
assert.EqualValues(t, 2, result.TotalHits) assert.EqualValues(t, 2, result.TotalHits)
assert.Len(t, result.Data, 2) assert.Len(t, result.Data, 2)
@@ -740,8 +737,7 @@ AAAjQmxvYgAAAGm7ENm9SGxMtAFVvPUsPJTF6PbtAAAAAFcVogEJAAAAAQAAAA==`)
AddBasicAuth(user.Name) AddBasicAuth(user.Name)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var result nuget.RegistrationIndexResponse result := DecodeJSON(t, resp, &nuget.RegistrationIndexResponse{})
DecodeJSON(t, resp, &result)
assert.Equal(t, indexURL, result.RegistrationIndexURL) assert.Equal(t, indexURL, result.RegistrationIndexURL)
assert.Equal(t, 1, result.Count) assert.Equal(t, 1, result.Count)
@@ -821,8 +817,7 @@ AAAjQmxvYgAAAGm7ENm9SGxMtAFVvPUsPJTF6PbtAAAAAFcVogEJAAAAAQAAAA==`)
AddBasicAuth(user.Name) AddBasicAuth(user.Name)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var result nuget.RegistrationLeafResponse result := DecodeJSON(t, resp, &nuget.RegistrationLeafResponse{})
DecodeJSON(t, resp, &result)
assert.Equal(t, leafURL, result.RegistrationLeafURL) assert.Equal(t, leafURL, result.RegistrationLeafURL)
assert.Equal(t, indexURL, result.RegistrationIndexURL) assert.Equal(t, indexURL, result.RegistrationIndexURL)
@@ -882,8 +877,7 @@ AAAjQmxvYgAAAGm7ENm9SGxMtAFVvPUsPJTF6PbtAAAAAFcVogEJAAAAAQAAAA==`)
AddBasicAuth(user.Name) AddBasicAuth(user.Name)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var result nuget.PackageVersionsResponse result := DecodeJSON(t, resp, &nuget.PackageVersionsResponse{})
DecodeJSON(t, resp, &result)
assert.Len(t, result.Versions, 1) assert.Len(t, result.Versions, 1)
assert.Equal(t, packageVersion, result.Versions[0]) assert.Equal(t, packageVersion, result.Versions[0])

View File

@@ -74,8 +74,7 @@ description: ` + packageDescription
Fields map[string]string `json:"fields"` Fields map[string]string `json:"fields"`
} }
var result UploadRequest result := DecodeJSON(t, resp, &UploadRequest{})
DecodeJSON(t, resp, &result)
assert.Empty(t, result.Fields) assert.Empty(t, result.Fields)
@@ -136,8 +135,7 @@ description: ` + packageDescription
Pubspec any `json:"pubspec,omitempty"` Pubspec any `json:"pubspec,omitempty"`
} }
var result VersionMetadata result := DecodeJSON(t, resp, &VersionMetadata{})
DecodeJSON(t, resp, &result)
assert.Equal(t, packageVersion, result.Version) assert.Equal(t, packageVersion, result.Version)
assert.NotNil(t, result.Pubspec) assert.NotNil(t, result.Pubspec)
@@ -167,8 +165,7 @@ description: ` + packageDescription
Versions []*VersionMetadata `json:"versions"` Versions []*VersionMetadata `json:"versions"`
} }
var result PackageVersions result := DecodeJSON(t, resp, &PackageVersions{})
DecodeJSON(t, resp, &result)
assert.Equal(t, packageName, result.Name) assert.Equal(t, packageName, result.Name)
assert.NotNil(t, result.Latest) assert.NotNil(t, result.Latest)

View File

@@ -53,8 +53,7 @@ func TestPackageAPI(t *testing.T) {
AddTokenAuth(tokenReadPackage) AddTokenAuth(tokenReadPackage)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var apiPackages []*api.Package apiPackages := DecodeJSON(t, resp, []*api.Package{})
DecodeJSON(t, resp, &apiPackages)
assert.Len(t, apiPackages, 1) assert.Len(t, apiPackages, 1)
assert.Equal(t, string(packages_model.TypeGeneric), apiPackages[0].Type) assert.Equal(t, string(packages_model.TypeGeneric), apiPackages[0].Type)
@@ -135,8 +134,7 @@ func TestPackageAPI(t *testing.T) {
AddTokenAuth(tokenReadPackage) AddTokenAuth(tokenReadPackage)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var apiPackages []*api.Package apiPackages := DecodeJSON(t, resp, []*api.Package{})
DecodeJSON(t, resp, &apiPackages)
assert.Len(t, apiPackages, 1) assert.Len(t, apiPackages, 1)
assert.Equal(t, string(packages_model.TypeGeneric), apiPackages[0].Type) assert.Equal(t, string(packages_model.TypeGeneric), apiPackages[0].Type)
@@ -229,8 +227,7 @@ func TestPackageAPI(t *testing.T) {
AddTokenAuth(tokenReadPackage) AddTokenAuth(tokenReadPackage)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var files []*api.PackageFile files := DecodeJSON(t, resp, []*api.PackageFile{})
DecodeJSON(t, resp, &files)
assert.Len(t, files, 1) assert.Len(t, files, 1)
assert.Equal(t, int64(0), files[0].Size) assert.Equal(t, int64(0), files[0].Size)

View File

@@ -152,8 +152,7 @@ func TestPackageVagrant(t *testing.T) {
Versions []*versionMetadata `json:"versions"` Versions []*versionMetadata `json:"versions"`
} }
var result packageMetadata result := DecodeJSON(t, resp, &packageMetadata{})
DecodeJSON(t, resp, &result)
assert.Equal(t, packageName, result.Name) assert.Equal(t, packageName, result.Name)
assert.Equal(t, packageDescription, result.Description) assert.Equal(t, packageDescription, result.Description)

View File

@@ -26,8 +26,7 @@ func TestAPIPullCommits(t *testing.T) {
req := NewRequestf(t, http.MethodGet, "/api/v1/repos/%s/%s/pulls/%d/commits", repo.OwnerName, repo.Name, pr.Index) req := NewRequestf(t, http.MethodGet, "/api/v1/repos/%s/%s/pulls/%d/commits", repo.OwnerName, repo.Name, pr.Index)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var commits []*api.Commit commits := DecodeJSON(t, resp, []*api.Commit{})
DecodeJSON(t, resp, &commits)
require.Len(t, commits, 2) require.Len(t, commits, 2)

View File

@@ -40,8 +40,7 @@ func TestAPIPullReview(t *testing.T) {
AddTokenAuth(token) AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var reviews []*api.PullReview reviews := DecodeJSON(t, resp, []*api.PullReview{})
DecodeJSON(t, resp, &reviews)
require.Len(t, reviews, 8) require.Len(t, reviews, 8)
for _, r := range reviews { for _, r := range reviews {
@@ -64,23 +63,21 @@ func TestAPIPullReview(t *testing.T) {
req = NewRequestf(t, http.MethodGet, "/api/v1/repos/%s/%s/pulls/%d/reviews/%d", repo.OwnerName, repo.Name, pullIssue.Index, reviews[3].ID). req = NewRequestf(t, http.MethodGet, "/api/v1/repos/%s/%s/pulls/%d/reviews/%d", repo.OwnerName, repo.Name, pullIssue.Index, reviews[3].ID).
AddTokenAuth(token) AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
var review api.PullReview review := DecodeJSON(t, resp, &api.PullReview{})
DecodeJSON(t, resp, &review) assert.Equal(t, reviews[3], review)
assert.Equal(t, *reviews[3], review)
req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/pulls/%d/reviews/%d", repo.OwnerName, repo.Name, pullIssue.Index, reviews[5].ID). req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/pulls/%d/reviews/%d", repo.OwnerName, repo.Name, pullIssue.Index, reviews[5].ID).
AddTokenAuth(token) AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &review) review = DecodeJSON(t, resp, &api.PullReview{})
assert.Equal(t, *reviews[5], review) assert.Equal(t, reviews[5], review)
// test GetPullReviewComments // test GetPullReviewComments
comment := unittest.AssertExistsAndLoadBean(t, &issues_model.Comment{ID: 7}) comment := unittest.AssertExistsAndLoadBean(t, &issues_model.Comment{ID: 7})
req = NewRequestf(t, http.MethodGet, "/api/v1/repos/%s/%s/pulls/%d/reviews/%d/comments", repo.OwnerName, repo.Name, pullIssue.Index, 10). req = NewRequestf(t, http.MethodGet, "/api/v1/repos/%s/%s/pulls/%d/reviews/%d/comments", repo.OwnerName, repo.Name, pullIssue.Index, 10).
AddTokenAuth(token) AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
var reviewComments []*api.PullReviewComment reviewComments := DecodeJSON(t, resp, []*api.PullReviewComment{})
DecodeJSON(t, resp, &reviewComments)
assert.Len(t, reviewComments, 1) assert.Len(t, reviewComments, 1)
assert.Equal(t, "Ghost", reviewComments[0].Poster.UserName) assert.Equal(t, "Ghost", reviewComments[0].Poster.UserName)
assert.Equal(t, "a review from a deleted user", reviewComments[0].Body) assert.Equal(t, "a review from a deleted user", reviewComments[0].Body)
@@ -112,7 +109,7 @@ func TestAPIPullReview(t *testing.T) {
}, },
}).AddTokenAuth(token) }).AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &review) review = DecodeJSON(t, resp, &api.PullReview{})
assert.EqualValues(t, 6, review.ID) assert.EqualValues(t, 6, review.ID)
assert.EqualValues(t, "PENDING", review.State) assert.EqualValues(t, "PENDING", review.State)
assert.Equal(t, 3, review.CodeCommentsCount) assert.Equal(t, 3, review.CodeCommentsCount)
@@ -123,7 +120,7 @@ func TestAPIPullReview(t *testing.T) {
Body: "just two nits", Body: "just two nits",
}).AddTokenAuth(token) }).AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &review) review = DecodeJSON(t, resp, &api.PullReview{})
assert.EqualValues(t, 6, review.ID) assert.EqualValues(t, 6, review.ID)
assert.EqualValues(t, "APPROVED", review.State) assert.EqualValues(t, "APPROVED", review.State)
assert.Equal(t, 3, review.CodeCommentsCount) assert.Equal(t, 3, review.CodeCommentsCount)
@@ -133,7 +130,7 @@ func TestAPIPullReview(t *testing.T) {
Message: "test", Message: "test",
}).AddTokenAuth(token) }).AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &review) review = DecodeJSON(t, resp, &api.PullReview{})
assert.EqualValues(t, 6, review.ID) assert.EqualValues(t, 6, review.ID)
assert.True(t, review.Dismissed) assert.True(t, review.Dismissed)
@@ -141,7 +138,7 @@ func TestAPIPullReview(t *testing.T) {
req = NewRequest(t, http.MethodPost, fmt.Sprintf("/api/v1/repos/%s/%s/pulls/%d/reviews/%d/undismissals", repo.OwnerName, repo.Name, pullIssue.Index, review.ID)). req = NewRequest(t, http.MethodPost, fmt.Sprintf("/api/v1/repos/%s/%s/pulls/%d/reviews/%d/undismissals", repo.OwnerName, repo.Name, pullIssue.Index, review.ID)).
AddTokenAuth(token) AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &review) review = DecodeJSON(t, resp, &api.PullReview{})
assert.EqualValues(t, 6, review.ID) assert.EqualValues(t, 6, review.ID)
assert.False(t, review.Dismissed) assert.False(t, review.Dismissed)
@@ -151,7 +148,7 @@ func TestAPIPullReview(t *testing.T) {
Event: "COMMENT", Event: "COMMENT",
}).AddTokenAuth(token) }).AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &review) review = DecodeJSON(t, resp, &api.PullReview{})
assert.EqualValues(t, "COMMENT", review.State) assert.EqualValues(t, "COMMENT", review.State)
assert.Equal(t, 0, review.CodeCommentsCount) assert.Equal(t, 0, review.CodeCommentsCount)
req = NewRequestf(t, http.MethodDelete, "/api/v1/repos/%s/%s/pulls/%d/reviews/%d", repo.OwnerName, repo.Name, pullIssue.Index, review.ID). req = NewRequestf(t, http.MethodDelete, "/api/v1/repos/%s/%s/pulls/%d/reviews/%d", repo.OwnerName, repo.Name, pullIssue.Index, review.ID).
@@ -176,10 +173,9 @@ func TestAPIPullReview(t *testing.T) {
}, },
}, },
}).AddTokenAuth(token) }).AddTokenAuth(token)
var commentReview api.PullReview
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &commentReview) commentReview := DecodeJSON(t, resp, &api.PullReview{})
assert.EqualValues(t, "COMMENT", commentReview.State) assert.EqualValues(t, "COMMENT", commentReview.State)
assert.Equal(t, 2, commentReview.CodeCommentsCount) assert.Equal(t, 2, commentReview.CodeCommentsCount)
assert.Empty(t, commentReview.Body) assert.Empty(t, commentReview.Body)
@@ -194,7 +190,7 @@ func TestAPIPullReview(t *testing.T) {
}).AddTokenAuth(token) }).AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &commentReview) commentReview = DecodeJSON(t, resp, &api.PullReview{})
assert.EqualValues(t, "COMMENT", commentReview.State) assert.EqualValues(t, "COMMENT", commentReview.State)
assert.Equal(t, 0, commentReview.CodeCommentsCount) assert.Equal(t, 0, commentReview.CodeCommentsCount)
assert.Equal(t, commentBody, commentReview.Body) assert.Equal(t, commentBody, commentReview.Body)
@@ -220,7 +216,7 @@ func TestAPIPullReview(t *testing.T) {
req = NewRequestf(t, http.MethodGet, "/api/v1/repos/%s/%s/pulls/%d/reviews", repo3.OwnerName, repo3.Name, pullIssue12.Index). req = NewRequestf(t, http.MethodGet, "/api/v1/repos/%s/%s/pulls/%d/reviews", repo3.OwnerName, repo3.Name, pullIssue12.Index).
AddTokenAuth(token) AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &reviews) reviews = DecodeJSON(t, resp, []*api.PullReview{})
assert.EqualValues(t, 11, reviews[0].ID) assert.EqualValues(t, 11, reviews[0].ID)
assert.EqualValues(t, "REQUEST_REVIEW", reviews[0].State) assert.EqualValues(t, "REQUEST_REVIEW", reviews[0].State)
assert.Equal(t, 0, reviews[0].CodeCommentsCount) assert.Equal(t, 0, reviews[0].CodeCommentsCount)

View File

@@ -47,8 +47,7 @@ func TestAPIViewPulls(t *testing.T) {
AddTokenAuth(ctx.Token) AddTokenAuth(ctx.Token)
resp := ctx.Session.MakeRequest(t, req, http.StatusOK) resp := ctx.Session.MakeRequest(t, req, http.StatusOK)
var pulls []*api.PullRequest pulls := DecodeJSON(t, resp, []*api.PullRequest{})
DecodeJSON(t, resp, &pulls)
expectedLen := unittest.GetCount(t, &issues_model.Issue{RepoID: repo.ID}, unittest.Cond("is_pull = ?", true)) expectedLen := unittest.GetCount(t, &issues_model.Issue{RepoID: repo.ID}, unittest.Cond("is_pull = ?", true))
assert.Len(t, pulls, expectedLen) assert.Len(t, pulls, expectedLen)
@@ -550,8 +549,7 @@ func doAPIGetPullFiles(ctx APITestContext, pr *api.PullRequest, callback func(*t
} }
resp := ctx.Session.MakeRequest(t, req, ctx.ExpectedCode) resp := ctx.Session.MakeRequest(t, req, ctx.ExpectedCode)
files := make([]*api.ChangedFile, 0, 1) files := DecodeJSON(t, resp, []*api.ChangedFile{})
DecodeJSON(t, resp, &files)
if callback != nil { if callback != nil {
callback(t, files) callback(t, files)

View File

@@ -61,8 +61,7 @@ func testAPIDraftReleaseAttachmentAccess(t *testing.T) {
MakeRequest(t, NewRequest(t, "GET", getURL).AddTokenAuth(ownerReadToken), http.StatusNotFound) MakeRequest(t, NewRequest(t, "GET", getURL).AddTokenAuth(ownerReadToken), http.StatusNotFound)
ownerToken := getUserToken(t, repoOwner.LowerName, auth_model.AccessTokenScopeWriteRepository) ownerToken := getUserToken(t, repoOwner.LowerName, auth_model.AccessTokenScopeWriteRepository)
resp := MakeRequest(t, NewRequest(t, "GET", listURL).AddTokenAuth(ownerToken), http.StatusOK) resp := MakeRequest(t, NewRequest(t, "GET", listURL).AddTokenAuth(ownerToken), http.StatusOK)
var attachments []*api.Attachment attachments := DecodeJSON(t, resp, []*api.Attachment{})
DecodeJSON(t, resp, &attachments)
if assert.Len(t, attachments, 1) { if assert.Len(t, attachments, 1) {
assert.Equal(t, attachment.ID, attachments[0].ID) assert.Equal(t, attachment.ID, attachments[0].ID)
} }

View File

@@ -48,8 +48,7 @@ func testAPIListReleasesWithWriteToken(t *testing.T) {
link, _ := url.Parse(fmt.Sprintf("/api/v1/repos/%s/%s/releases", user2.Name, repo.Name)) link, _ := url.Parse(fmt.Sprintf("/api/v1/repos/%s/%s/releases", user2.Name, repo.Name))
resp := MakeRequest(t, NewRequest(t, "GET", link.String()).AddTokenAuth(token), http.StatusOK) resp := MakeRequest(t, NewRequest(t, "GET", link.String()).AddTokenAuth(token), http.StatusOK)
var apiReleases []*api.Release apiReleases := DecodeJSON(t, resp, []*api.Release{})
DecodeJSON(t, resp, &apiReleases)
if assert.Len(t, apiReleases, 3) { if assert.Len(t, apiReleases, 3) {
for _, release := range apiReleases { for _, release := range apiReleases {
switch release.ID { switch release.ID {
@@ -79,7 +78,7 @@ func testAPIListReleasesWithWriteToken(t *testing.T) {
req.AddTokenAuth(token) req.AddTokenAuth(token)
} }
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &apiReleases) apiReleases = DecodeJSON(t, resp, []*api.Release{})
assert.Len(t, apiReleases, expectedLength, msgAndArgs) assert.Len(t, apiReleases, expectedLength, msgAndArgs)
} }
@@ -98,8 +97,7 @@ func testAPIListReleasesWithReadToken(t *testing.T) {
link, _ := url.Parse(fmt.Sprintf("/api/v1/repos/%s/%s/releases", user2.Name, repo.Name)) link, _ := url.Parse(fmt.Sprintf("/api/v1/repos/%s/%s/releases", user2.Name, repo.Name))
resp := MakeRequest(t, NewRequest(t, "GET", link.String()).AddTokenAuth(token), http.StatusOK) resp := MakeRequest(t, NewRequest(t, "GET", link.String()).AddTokenAuth(token), http.StatusOK)
var apiReleases []*api.Release apiReleases := DecodeJSON(t, resp, []*api.Release{})
DecodeJSON(t, resp, &apiReleases)
if assert.Len(t, apiReleases, 2) { if assert.Len(t, apiReleases, 2) {
for _, release := range apiReleases { for _, release := range apiReleases {
switch release.ID { switch release.ID {
@@ -125,7 +123,7 @@ func testAPIListReleasesWithReadToken(t *testing.T) {
req.AddTokenAuth(token) req.AddTokenAuth(token)
} }
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &apiReleases) apiReleases = DecodeJSON(t, resp, []*api.Release{})
assert.Len(t, apiReleases, expectedLength, msgAndArgs) assert.Len(t, apiReleases, expectedLength, msgAndArgs)
} }
@@ -152,8 +150,7 @@ func testAPIGetDraftRelease(t *testing.T) {
ownerToken := getUserToken(t, owner.LowerName, auth_model.AccessTokenScopeWriteRepository) ownerToken := getUserToken(t, owner.LowerName, auth_model.AccessTokenScopeWriteRepository)
resp := MakeRequest(t, NewRequest(t, "GET", urlStr).AddTokenAuth(ownerToken), http.StatusOK) resp := MakeRequest(t, NewRequest(t, "GET", urlStr).AddTokenAuth(ownerToken), http.StatusOK)
var apiRelease api.Release apiRelease := DecodeJSON(t, resp, &api.Release{})
DecodeJSON(t, resp, &apiRelease)
assert.Equal(t, release.Title, apiRelease.Title) assert.Equal(t, release.Title, apiRelease.Title)
} }
@@ -169,8 +166,7 @@ func createNewReleaseUsingAPI(t *testing.T, token string, owner *user_model.User
}).AddTokenAuth(token) }).AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusCreated) resp := MakeRequest(t, req, http.StatusCreated)
var newRelease api.Release newRelease := DecodeJSON(t, resp, &api.Release{})
DecodeJSON(t, resp, &newRelease)
rel := &repo_model.Release{ rel := &repo_model.Release{
ID: newRelease.ID, ID: newRelease.ID,
TagName: newRelease.TagName, TagName: newRelease.TagName,
@@ -179,7 +175,7 @@ func createNewReleaseUsingAPI(t *testing.T, token string, owner *user_model.User
unittest.AssertExistsAndLoadBean(t, rel) unittest.AssertExistsAndLoadBean(t, rel)
assert.Equal(t, newRelease.Note, rel.Note) assert.Equal(t, newRelease.Note, rel.Note)
return &newRelease return newRelease
} }
func TestAPICreateAndUpdateRelease(t *testing.T) { func TestAPICreateAndUpdateRelease(t *testing.T) {
@@ -207,8 +203,7 @@ func TestAPICreateAndUpdateRelease(t *testing.T) {
AddTokenAuth(token) AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var release api.Release release := DecodeJSON(t, resp, &api.Release{})
DecodeJSON(t, resp, &release)
assert.Equal(t, newRelease.TagName, release.TagName) assert.Equal(t, newRelease.TagName, release.TagName)
assert.Equal(t, newRelease.Title, release.Title) assert.Equal(t, newRelease.Title, release.Title)
@@ -224,7 +219,7 @@ func TestAPICreateAndUpdateRelease(t *testing.T) {
}).AddTokenAuth(token) }).AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &newRelease) newRelease = DecodeJSON(t, resp, &api.Release{})
rel := &repo_model.Release{ rel := &repo_model.Release{
ID: newRelease.ID, ID: newRelease.ID,
TagName: newRelease.TagName, TagName: newRelease.TagName,
@@ -353,8 +348,7 @@ func testAPIGetDraftReleaseByTag(t *testing.T) {
token := getUserToken(t, "user40", auth_model.AccessTokenScopeReadRepository) token := getUserToken(t, "user40", auth_model.AccessTokenScopeReadRepository)
req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/releases/tags/%s", owner.Name, repo.Name, tag)).AddTokenAuth(token) req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/releases/tags/%s", owner.Name, repo.Name, tag)).AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
release := api.Release{} release := DecodeJSON(t, resp, &api.Release{})
DecodeJSON(t, resp, &release)
assert.Equal(t, "draft-release", release.Title) assert.Equal(t, "draft-release", release.Title)
// remove user 40 access from the repository // remove user 40 access from the repository
@@ -369,8 +363,7 @@ func testAPIGetDraftReleaseByTag(t *testing.T) {
user2Token := getUserToken(t, "user2", auth_model.AccessTokenScopeReadRepository) user2Token := getUserToken(t, "user2", auth_model.AccessTokenScopeReadRepository)
req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/releases/tags/%s", owner.Name, repo.Name, tag)).AddTokenAuth(user2Token) req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/releases/tags/%s", owner.Name, repo.Name, tag)).AddTokenAuth(user2Token)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
release = api.Release{} release = DecodeJSON(t, resp, &api.Release{})
DecodeJSON(t, resp, &release)
assert.Equal(t, "draft-release", release.Title) assert.Equal(t, "draft-release", release.Title)
} }
@@ -439,15 +432,13 @@ func TestAPIUploadAssetRelease(t *testing.T) {
t.Run("UploadDefaultName", func(t *testing.T) { t.Run("UploadDefaultName", func(t *testing.T) {
resp := performUpload(t, assetURL, bufImageBytes, http.StatusCreated) resp := performUpload(t, assetURL, bufImageBytes, http.StatusCreated)
var attachment api.Attachment attachment := DecodeJSON(t, resp, &api.Attachment{})
DecodeJSON(t, resp, &attachment)
assert.Equal(t, filename, attachment.Name) assert.Equal(t, filename, attachment.Name)
assert.EqualValues(t, 104, attachment.Size) assert.EqualValues(t, 104, attachment.Size)
}) })
t.Run("UploadWithName", func(t *testing.T) { t.Run("UploadWithName", func(t *testing.T) {
resp := performUpload(t, assetURL+"?name=test-asset", bufImageBytes, http.StatusCreated) resp := performUpload(t, assetURL+"?name=test-asset", bufImageBytes, http.StatusCreated)
var attachment api.Attachment attachment := DecodeJSON(t, resp, &api.Attachment{})
DecodeJSON(t, resp, &attachment)
assert.Equal(t, "test-asset", attachment.Name) assert.Equal(t, "test-asset", attachment.Name)
assert.EqualValues(t, 104, attachment.Size) assert.EqualValues(t, 104, attachment.Size)
}) })
@@ -465,8 +456,7 @@ func TestAPIUploadAssetRelease(t *testing.T) {
req = NewRequestWithBody(t, http.MethodPost, assetURL+"?name=stream.bin", bytes.NewReader(bufImageBytes)).AddTokenAuth(token) req = NewRequestWithBody(t, http.MethodPost, assetURL+"?name=stream.bin", bytes.NewReader(bufImageBytes)).AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusCreated) resp := MakeRequest(t, req, http.StatusCreated)
var attachment api.Attachment attachment := DecodeJSON(t, resp, &api.Attachment{})
DecodeJSON(t, resp, &attachment)
assert.Equal(t, "stream.bin", attachment.Name) assert.Equal(t, "stream.bin", attachment.Name)
assert.EqualValues(t, 104, attachment.Size) assert.EqualValues(t, 104, attachment.Size)

View File

@@ -36,8 +36,7 @@ func TestAPIRepoCollaboratorPermission(t *testing.T) {
AddTokenAuth(testCtx.Token) AddTokenAuth(testCtx.Token)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var repoPermission api.RepoCollaboratorPermission repoPermission := DecodeJSON(t, resp, &api.RepoCollaboratorPermission{})
DecodeJSON(t, resp, &repoPermission)
assert.Equal(t, "owner", repoPermission.Permission) assert.Equal(t, "owner", repoPermission.Permission)
}) })
@@ -49,8 +48,7 @@ func TestAPIRepoCollaboratorPermission(t *testing.T) {
AddTokenAuth(testCtx.Token) AddTokenAuth(testCtx.Token)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var repoPermission api.RepoCollaboratorPermission repoPermission := DecodeJSON(t, resp, &api.RepoCollaboratorPermission{})
DecodeJSON(t, resp, &repoPermission)
assert.Equal(t, "read", repoPermission.Permission) assert.Equal(t, "read", repoPermission.Permission)
}) })
@@ -62,8 +60,7 @@ func TestAPIRepoCollaboratorPermission(t *testing.T) {
AddTokenAuth(testCtx.Token) AddTokenAuth(testCtx.Token)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var repoPermission api.RepoCollaboratorPermission repoPermission := DecodeJSON(t, resp, &api.RepoCollaboratorPermission{})
DecodeJSON(t, resp, &repoPermission)
assert.Equal(t, "write", repoPermission.Permission) assert.Equal(t, "write", repoPermission.Permission)
}) })
@@ -75,8 +72,7 @@ func TestAPIRepoCollaboratorPermission(t *testing.T) {
AddTokenAuth(testCtx.Token) AddTokenAuth(testCtx.Token)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var repoPermission api.RepoCollaboratorPermission repoPermission := DecodeJSON(t, resp, &api.RepoCollaboratorPermission{})
DecodeJSON(t, resp, &repoPermission)
assert.Equal(t, "admin", repoPermission.Permission) assert.Equal(t, "admin", repoPermission.Permission)
}) })
@@ -103,8 +99,7 @@ func TestAPIRepoCollaboratorPermission(t *testing.T) {
AddTokenAuth(_testCtx.Token) AddTokenAuth(_testCtx.Token)
resp := _session.MakeRequest(t, req, http.StatusOK) resp := _session.MakeRequest(t, req, http.StatusOK)
var repoPermission api.RepoCollaboratorPermission repoPermission := DecodeJSON(t, resp, &api.RepoCollaboratorPermission{})
DecodeJSON(t, resp, &repoPermission)
assert.Equal(t, "read", repoPermission.Permission) assert.Equal(t, "read", repoPermission.Permission)
@@ -115,8 +110,7 @@ func TestAPIRepoCollaboratorPermission(t *testing.T) {
req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/collaborators/%s/permission", repo2Owner.Name, repo2.Name, user5.Name).AddTokenAuth(token) req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/collaborators/%s/permission", repo2Owner.Name, repo2.Name, user5.Name).AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
repoCollPerm := api.RepoCollaboratorPermission{} repoCollPerm := DecodeJSON(t, resp, &api.RepoCollaboratorPermission{})
DecodeJSON(t, resp, &repoCollPerm)
assert.Equal(t, "read", repoCollPerm.Permission) assert.Equal(t, "read", repoCollPerm.Permission)
}) })
@@ -132,8 +126,7 @@ func TestAPIRepoCollaboratorPermission(t *testing.T) {
AddTokenAuth(_testCtx.Token) AddTokenAuth(_testCtx.Token)
resp := _session.MakeRequest(t, req, http.StatusOK) resp := _session.MakeRequest(t, req, http.StatusOK)
var repoPermission api.RepoCollaboratorPermission repoPermission := DecodeJSON(t, resp, &api.RepoCollaboratorPermission{})
DecodeJSON(t, resp, &repoPermission)
assert.Equal(t, "read", repoPermission.Permission) assert.Equal(t, "read", repoPermission.Permission)
}) })
@@ -149,8 +142,7 @@ func TestAPIRepoCollaboratorPermission(t *testing.T) {
AddTokenAuth(_testCtx.Token) AddTokenAuth(_testCtx.Token)
resp := _session.MakeRequest(t, req, http.StatusOK) resp := _session.MakeRequest(t, req, http.StatusOK)
var repoPermission api.RepoCollaboratorPermission repoPermission := DecodeJSON(t, resp, &api.RepoCollaboratorPermission{})
DecodeJSON(t, resp, &repoPermission)
assert.Equal(t, "read", repoPermission.Permission) assert.Equal(t, "read", repoPermission.Permission)
}) })

View File

@@ -200,8 +200,7 @@ func TestAPIRepoEdit(t *testing.T) {
req := NewRequestWithJSON(t, "PATCH", fmt.Sprintf("/api/v1/repos/%s/%s", user2.Name, repo1.Name), &repoEditOption). req := NewRequestWithJSON(t, "PATCH", fmt.Sprintf("/api/v1/repos/%s/%s", user2.Name, repo1.Name), &repoEditOption).
AddTokenAuth(token2) AddTokenAuth(token2)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var repo api.Repository repo := DecodeJSON(t, resp, &api.Repository{})
DecodeJSON(t, resp, &repo)
assert.NotNil(t, repo) assert.NotNil(t, repo)
// check response // check response
assert.Equal(t, *repoEditOption.Name, repo.Name) assert.Equal(t, *repoEditOption.Name, repo.Name)
@@ -237,7 +236,7 @@ func TestAPIRepoEdit(t *testing.T) {
req = NewRequestWithJSON(t, "PATCH", url, &repoEditOption). req = NewRequestWithJSON(t, "PATCH", url, &repoEditOption).
AddTokenAuth(token2) AddTokenAuth(token2)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &repo) repo = DecodeJSON(t, resp, &api.Repository{})
assert.NotNil(t, repo) assert.NotNil(t, repo)
// check repo1 was written to database // check repo1 was written to database
repo1edited = unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 1}) repo1edited = unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 1})
@@ -260,7 +259,7 @@ func TestAPIRepoEdit(t *testing.T) {
req = NewRequestWithJSON(t, "PATCH", url, &repoEditOption). req = NewRequestWithJSON(t, "PATCH", url, &repoEditOption).
AddTokenAuth(token2) AddTokenAuth(token2)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &repo) repo = DecodeJSON(t, resp, &api.Repository{})
assert.NotNil(t, repo) assert.NotNil(t, repo)
// check repo1 was written to database // check repo1 was written to database
repo1edited = unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 1}) repo1edited = unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 1})
@@ -280,7 +279,7 @@ func TestAPIRepoEdit(t *testing.T) {
req = NewRequestWithJSON(t, "PATCH", url, &repoEditOption). req = NewRequestWithJSON(t, "PATCH", url, &repoEditOption).
AddTokenAuth(token2) AddTokenAuth(token2)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &repo) repo = DecodeJSON(t, resp, &api.Repository{})
assert.NotNil(t, repo) assert.NotNil(t, repo)
repo1edited = unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 1}) repo1edited = unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 1})
repo1editedOption = getRepoEditOptionFromRepo(repo1edited) repo1editedOption = getRepoEditOptionFromRepo(repo1edited)
@@ -312,7 +311,7 @@ func TestAPIRepoEdit(t *testing.T) {
req = NewRequestWithJSON(t, "PATCH", url, &repoEditOption). req = NewRequestWithJSON(t, "PATCH", url, &repoEditOption).
AddTokenAuth(token2) AddTokenAuth(token2)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &repo) repo = DecodeJSON(t, resp, &api.Repository{})
assert.NotNil(t, repo) assert.NotNil(t, repo)
// check repo1 was written to database // check repo1 was written to database
repo1edited = unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 1}) repo1edited = unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 1})
@@ -426,7 +425,7 @@ func TestAPIRepoEdit(t *testing.T) {
DefaultDeleteBranchAfterMerge: &bTrue, DefaultDeleteBranchAfterMerge: &bTrue,
}).AddTokenAuth(token2) }).AddTokenAuth(token2)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &repo) repo = DecodeJSON(t, resp, &api.Repository{})
assert.True(t, repo.DefaultDeleteBranchAfterMerge) assert.True(t, repo.DefaultDeleteBranchAfterMerge)
// reset // reset
req = NewRequestWithJSON(t, "PATCH", url, &api.EditRepoOption{ req = NewRequestWithJSON(t, "PATCH", url, &api.EditRepoOption{

View File

@@ -194,8 +194,7 @@ func TestAPICreateFile(t *testing.T) {
lastCommitterWhen: lastCommit.Committer.When, lastCommitterWhen: lastCommit.Committer.When,
lastAuthorWhen: lastCommit.Author.When, lastAuthorWhen: lastCommit.Author.When,
}) })
var fileResponse api.FileResponse fileResponse := DecodeJSON(t, resp, &api.FileResponse{})
DecodeJSON(t, resp, &fileResponse)
normalizeFileContentResponseCommitTime(fileResponse.Content) normalizeFileContentResponseCommitTime(fileResponse.Content)
assert.Equal(t, expectedFileResponse.Content, fileResponse.Content) assert.Equal(t, expectedFileResponse.Content, fileResponse.Content)
assert.Equal(t, expectedFileResponse.Commit.SHA, fileResponse.Commit.SHA) assert.Equal(t, expectedFileResponse.Commit.SHA, fileResponse.Commit.SHA)
@@ -217,8 +216,7 @@ func TestAPICreateFile(t *testing.T) {
req := NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s", user2.Name, repo1.Name, treePath), &createFileOptions). req := NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s", user2.Name, repo1.Name, treePath), &createFileOptions).
AddTokenAuth(token2) AddTokenAuth(token2)
resp := MakeRequest(t, req, http.StatusCreated) resp := MakeRequest(t, req, http.StatusCreated)
var fileResponse api.FileResponse fileResponse := DecodeJSON(t, resp, &api.FileResponse{})
DecodeJSON(t, resp, &fileResponse)
expectedSHA := "a635aa942442ddfdba07468cf9661c08fbdf0ebf" expectedSHA := "a635aa942442ddfdba07468cf9661c08fbdf0ebf"
expectedHTMLURL := fmt.Sprintf(setting.AppURL+"user2/repo1/src/branch/new_branch/new/file%d.txt", fileID) expectedHTMLURL := fmt.Sprintf(setting.AppURL+"user2/repo1/src/branch/new_branch/new/file%d.txt", fileID)
expectedDownloadURL := fmt.Sprintf(setting.AppURL+"user2/repo1/raw/branch/new_branch/new/file%d.txt", fileID) expectedDownloadURL := fmt.Sprintf(setting.AppURL+"user2/repo1/raw/branch/new_branch/new/file%d.txt", fileID)
@@ -235,7 +233,7 @@ func TestAPICreateFile(t *testing.T) {
req = NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s", user2.Name, repo1.Name, treePath), &createFileOptions). req = NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s", user2.Name, repo1.Name, treePath), &createFileOptions).
AddTokenAuth(token2) AddTokenAuth(token2)
resp = MakeRequest(t, req, http.StatusCreated) resp = MakeRequest(t, req, http.StatusCreated)
DecodeJSON(t, resp, &fileResponse) fileResponse = DecodeJSON(t, resp, &api.FileResponse{})
expectedMessage := "Add " + treePath + "\n" expectedMessage := "Add " + treePath + "\n"
assert.Equal(t, expectedMessage, fileResponse.Commit.Message) assert.Equal(t, expectedMessage, fileResponse.Commit.Message)
@@ -245,12 +243,11 @@ func TestAPICreateFile(t *testing.T) {
req = NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s", user2.Name, repo1.Name, treePath), &createFileOptions). req = NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s", user2.Name, repo1.Name, treePath), &createFileOptions).
AddTokenAuth(token2) AddTokenAuth(token2)
resp = MakeRequest(t, req, http.StatusUnprocessableEntity) resp = MakeRequest(t, req, http.StatusUnprocessableEntity)
expectedAPIError := context.APIError{ expectedAPIError := &context.APIError{
Message: "repository file already exists [path: " + treePath + "]", Message: "repository file already exists [path: " + treePath + "]",
URL: setting.API.SwaggerURL, URL: setting.API.SwaggerURL,
} }
var apiError context.APIError apiError := DecodeJSON(t, resp, &context.APIError{})
DecodeJSON(t, resp, &apiError)
assert.Equal(t, expectedAPIError, apiError) assert.Equal(t, expectedAPIError, apiError)
// Test creating a file in repo1 by user4 who does not have write access // Test creating a file in repo1 by user4 who does not have write access
@@ -320,7 +317,7 @@ func TestAPICreateFile(t *testing.T) {
lastCommitterWhen: latestCommit.Committer.When, lastCommitterWhen: latestCommit.Committer.When,
lastAuthorWhen: latestCommit.Author.When, lastAuthorWhen: latestCommit.Author.When,
}) })
DecodeJSON(t, resp, &fileResponse) fileResponse = DecodeJSON(t, resp, &api.FileResponse{})
normalizeFileContentResponseCommitTime(fileResponse.Content) normalizeFileContentResponseCommitTime(fileResponse.Content)
assert.Equal(t, expectedFileResponse.Content, fileResponse.Content) assert.Equal(t, expectedFileResponse.Content, fileResponse.Content)
assert.Equal(t, expectedFileResponse.Commit.SHA, fileResponse.Commit.SHA) assert.Equal(t, expectedFileResponse.Commit.SHA, fileResponse.Commit.SHA)

View File

@@ -67,8 +67,7 @@ func TestAPIDeleteFile(t *testing.T) {
req := NewRequestWithJSON(t, "DELETE", fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s", user2.Name, repo1.Name, treePath), &deleteFileOptions). req := NewRequestWithJSON(t, "DELETE", fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s", user2.Name, repo1.Name, treePath), &deleteFileOptions).
AddTokenAuth(token2) AddTokenAuth(token2)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var fileResponse api.FileResponse fileResponse := DecodeJSON(t, resp, &api.FileResponse{})
DecodeJSON(t, resp, &fileResponse)
assert.NotNil(t, fileResponse) assert.NotNil(t, fileResponse)
assert.Nil(t, fileResponse.Content) assert.Nil(t, fileResponse.Content)
} }
@@ -83,8 +82,7 @@ func TestAPIDeleteFile(t *testing.T) {
req := NewRequestWithJSON(t, "DELETE", fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s", user2.Name, repo1.Name, treePath), &deleteFileOptions). req := NewRequestWithJSON(t, "DELETE", fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s", user2.Name, repo1.Name, treePath), &deleteFileOptions).
AddTokenAuth(token2) AddTokenAuth(token2)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var fileResponse api.FileResponse fileResponse := DecodeJSON(t, resp, &api.FileResponse{})
DecodeJSON(t, resp, &fileResponse)
assert.NotNil(t, fileResponse) assert.NotNil(t, fileResponse)
assert.Nil(t, fileResponse.Content) assert.Nil(t, fileResponse.Content)
assert.Equal(t, deleteFileOptions.Message+"\n", fileResponse.Commit.Message) assert.Equal(t, deleteFileOptions.Message+"\n", fileResponse.Commit.Message)
@@ -98,7 +96,7 @@ func TestAPIDeleteFile(t *testing.T) {
req = NewRequestWithJSON(t, "DELETE", fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s", user2.Name, repo1.Name, treePath), &deleteFileOptions). req = NewRequestWithJSON(t, "DELETE", fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s", user2.Name, repo1.Name, treePath), &deleteFileOptions).
AddTokenAuth(token2) AddTokenAuth(token2)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &fileResponse) fileResponse = DecodeJSON(t, resp, &api.FileResponse{})
expectedMessage := "Delete " + treePath + "\n" expectedMessage := "Delete " + treePath + "\n"
assert.Equal(t, expectedMessage, fileResponse.Commit.Message) assert.Equal(t, expectedMessage, fileResponse.Commit.Message)

View File

@@ -50,8 +50,7 @@ func TestAPIApplyDiffPatchFileOptions(t *testing.T) {
req := NewRequestWithJSON(t, "POST", "/api/v1/repos/user2/repo1/diffpatch", getApplyDiffPatchFileOptions()).AddTokenAuth(token2) req := NewRequestWithJSON(t, "POST", "/api/v1/repos/user2/repo1/diffpatch", getApplyDiffPatchFileOptions()).AddTokenAuth(token2)
resp := MakeRequest(t, req, http.StatusCreated) resp := MakeRequest(t, req, http.StatusCreated)
var fileResponse api.FileResponse fileResponse := DecodeJSON(t, resp, &api.FileResponse{})
DecodeJSON(t, resp, &fileResponse)
assert.Nil(t, fileResponse.Content) assert.Nil(t, fileResponse.Content)
assert.NotEmpty(t, fileResponse.Commit.HTMLURL) assert.NotEmpty(t, fileResponse.Commit.HTMLURL)
req = NewRequest(t, "GET", "/api/v1/repos/user2/repo1/raw/patch-file-1.txt") req = NewRequest(t, "GET", "/api/v1/repos/user2/repo1/raw/patch-file-1.txt")

View File

@@ -147,8 +147,7 @@ func TestAPIUpdateFile(t *testing.T) {
lastCommitterWhen: lasCommit.Committer.When, lastCommitterWhen: lasCommit.Committer.When,
lastAuthorWhen: lasCommit.Author.When, lastAuthorWhen: lasCommit.Author.When,
}) })
var fileResponse api.FileResponse fileResponse := DecodeJSON(t, resp, &api.FileResponse{})
DecodeJSON(t, resp, &fileResponse)
normalizeFileContentResponseCommitTime(fileResponse.Content) normalizeFileContentResponseCommitTime(fileResponse.Content)
assert.Equal(t, expectedFileResponse.Content, fileResponse.Content) assert.Equal(t, expectedFileResponse.Content, fileResponse.Content)
assert.Equal(t, expectedFileResponse.Commit.SHA, fileResponse.Commit.SHA) assert.Equal(t, expectedFileResponse.Commit.SHA, fileResponse.Commit.SHA)
@@ -167,8 +166,7 @@ func TestAPIUpdateFile(t *testing.T) {
req := NewRequestWithJSON(t, "PUT", fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s", user2.Name, repo1.Name, treePath), &updateFileOptions). req := NewRequestWithJSON(t, "PUT", fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s", user2.Name, repo1.Name, treePath), &updateFileOptions).
AddTokenAuth(token2) AddTokenAuth(token2)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var fileResponse api.FileResponse fileResponse := DecodeJSON(t, resp, &api.FileResponse{})
DecodeJSON(t, resp, &fileResponse)
expectedSHA := "08bd14b2e2852529157324de9c226b3364e76136" expectedSHA := "08bd14b2e2852529157324de9c226b3364e76136"
expectedHTMLURL := fmt.Sprintf(setting.AppURL+"user2/repo1/src/branch/new_branch/update/file%d.txt", fileID) expectedHTMLURL := fmt.Sprintf(setting.AppURL+"user2/repo1/src/branch/new_branch/update/file%d.txt", fileID)
expectedDownloadURL := fmt.Sprintf(setting.AppURL+"user2/repo1/raw/branch/new_branch/update/file%d.txt", fileID) expectedDownloadURL := fmt.Sprintf(setting.AppURL+"user2/repo1/raw/branch/new_branch/update/file%d.txt", fileID)
@@ -182,7 +180,7 @@ func TestAPIUpdateFile(t *testing.T) {
updateFileOptions.SHA = "" updateFileOptions.SHA = ""
req = NewRequestWithJSON(t, "PUT", "/api/v1/repos/user2/repo1/contents/update-create.txt", &updateFileOptions).AddTokenAuth(token2) req = NewRequestWithJSON(t, "PUT", "/api/v1/repos/user2/repo1/contents/update-create.txt", &updateFileOptions).AddTokenAuth(token2)
resp = MakeRequest(t, req, http.StatusCreated) resp = MakeRequest(t, req, http.StatusCreated)
DecodeJSON(t, resp, &fileResponse) fileResponse = DecodeJSON(t, resp, &api.FileResponse{})
assert.Equal(t, "08bd14b2e2852529157324de9c226b3364e76136", fileResponse.Content.SHA) assert.Equal(t, "08bd14b2e2852529157324de9c226b3364e76136", fileResponse.Content.SHA)
assert.Equal(t, setting.AppURL+"user2/repo1/raw/branch/master/update-create.txt", *fileResponse.Content.DownloadURL) assert.Equal(t, setting.AppURL+"user2/repo1/raw/branch/master/update-create.txt", *fileResponse.Content.DownloadURL)
@@ -197,7 +195,7 @@ func TestAPIUpdateFile(t *testing.T) {
req = NewRequestWithJSON(t, "PUT", fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s", user2.Name, repo1.Name, treePath), &updateFileOptions). req = NewRequestWithJSON(t, "PUT", fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s", user2.Name, repo1.Name, treePath), &updateFileOptions).
AddTokenAuth(token2) AddTokenAuth(token2)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &fileResponse) fileResponse = DecodeJSON(t, resp, &api.FileResponse{})
expectedSHA = "08bd14b2e2852529157324de9c226b3364e76136" expectedSHA = "08bd14b2e2852529157324de9c226b3364e76136"
expectedHTMLURL = fmt.Sprintf(setting.AppURL+"user2/repo1/src/branch/master/rename/update/file%d.txt", fileID) expectedHTMLURL = fmt.Sprintf(setting.AppURL+"user2/repo1/src/branch/master/rename/update/file%d.txt", fileID)
expectedDownloadURL = fmt.Sprintf(setting.AppURL+"user2/repo1/raw/branch/master/rename/update/file%d.txt", fileID) expectedDownloadURL = fmt.Sprintf(setting.AppURL+"user2/repo1/raw/branch/master/rename/update/file%d.txt", fileID)
@@ -215,7 +213,7 @@ func TestAPIUpdateFile(t *testing.T) {
req = NewRequestWithJSON(t, "PUT", fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s", user2.Name, repo1.Name, treePath), &updateFileOptions). req = NewRequestWithJSON(t, "PUT", fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s", user2.Name, repo1.Name, treePath), &updateFileOptions).
AddTokenAuth(token2) AddTokenAuth(token2)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &fileResponse) fileResponse = DecodeJSON(t, resp, &api.FileResponse{})
expectedMessage := "Update " + treePath + "\n" expectedMessage := "Update " + treePath + "\n"
assert.Equal(t, expectedMessage, fileResponse.Commit.Message) assert.Equal(t, expectedMessage, fileResponse.Commit.Message)
@@ -229,12 +227,11 @@ func TestAPIUpdateFile(t *testing.T) {
req = NewRequestWithJSON(t, "PUT", fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s", user2.Name, repo1.Name, treePath), &updateFileOptions). req = NewRequestWithJSON(t, "PUT", fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s", user2.Name, repo1.Name, treePath), &updateFileOptions).
AddTokenAuth(token2) AddTokenAuth(token2)
resp = MakeRequest(t, req, http.StatusUnprocessableEntity) resp = MakeRequest(t, req, http.StatusUnprocessableEntity)
expectedAPIError := context.APIError{ expectedAPIError := &context.APIError{
Message: "sha does not match [given: " + updateFileOptions.SHA + ", expected: " + correctSHA + "]", Message: "sha does not match [given: " + updateFileOptions.SHA + ", expected: " + correctSHA + "]",
URL: setting.API.SwaggerURL, URL: setting.API.SwaggerURL,
} }
var apiError context.APIError apiError := DecodeJSON(t, resp, &context.APIError{})
DecodeJSON(t, resp, &apiError)
assert.Equal(t, expectedAPIError, apiError) assert.Equal(t, expectedAPIError, apiError)
// Test creating a file in repo1 by user4 who does not have write access // Test creating a file in repo1 by user4 who does not have write access

View File

@@ -113,8 +113,7 @@ func TestAPIChangeFiles(t *testing.T) {
lastCommitterWhen: updateLastCommit.Committer.When, lastCommitterWhen: updateLastCommit.Committer.When,
lastAuthorWhen: updateLastCommit.Author.When, lastAuthorWhen: updateLastCommit.Author.When,
}) })
var filesResponse api.FilesResponse filesResponse := DecodeJSON(t, resp, &api.FilesResponse{})
DecodeJSON(t, resp, &filesResponse)
normalizeFileContentResponseCommitTime(filesResponse.Files[0]) normalizeFileContentResponseCommitTime(filesResponse.Files[0])
normalizeFileContentResponseCommitTime(filesResponse.Files[1]) normalizeFileContentResponseCommitTime(filesResponse.Files[1])
assert.Equal(t, expectedCreateFileResponse.Content, filesResponse.Files[0]) // check create file assert.Equal(t, expectedCreateFileResponse.Content, filesResponse.Files[0]) // check create file
@@ -146,8 +145,7 @@ func TestAPIChangeFiles(t *testing.T) {
req := NewRequestWithJSON(t, "POST", url, &changeFilesOptions). req := NewRequestWithJSON(t, "POST", url, &changeFilesOptions).
AddTokenAuth(token2) AddTokenAuth(token2)
resp := MakeRequest(t, req, http.StatusCreated) resp := MakeRequest(t, req, http.StatusCreated)
var filesResponse api.FilesResponse filesResponse := DecodeJSON(t, resp, &api.FilesResponse{})
DecodeJSON(t, resp, &filesResponse)
expectedCreateSHA := "a635aa942442ddfdba07468cf9661c08fbdf0ebf" expectedCreateSHA := "a635aa942442ddfdba07468cf9661c08fbdf0ebf"
expectedCreateHTMLURL := fmt.Sprintf(setting.AppURL+"user2/repo1/src/branch/new_branch/new/file%d.txt", fileID) expectedCreateHTMLURL := fmt.Sprintf(setting.AppURL+"user2/repo1/src/branch/new_branch/new/file%d.txt", fileID)
expectedCreateDownloadURL := fmt.Sprintf(setting.AppURL+"user2/repo1/raw/branch/new_branch/new/file%d.txt", fileID) expectedCreateDownloadURL := fmt.Sprintf(setting.AppURL+"user2/repo1/raw/branch/new_branch/new/file%d.txt", fileID)
@@ -201,7 +199,7 @@ func TestAPIChangeFiles(t *testing.T) {
req = NewRequestWithJSON(t, "POST", url, &changeFilesOptions). req = NewRequestWithJSON(t, "POST", url, &changeFilesOptions).
AddTokenAuth(token2) AddTokenAuth(token2)
resp = MakeRequest(t, req, http.StatusCreated) resp = MakeRequest(t, req, http.StatusCreated)
DecodeJSON(t, resp, &filesResponse) filesResponse = DecodeJSON(t, resp, &api.FilesResponse{})
expectedCreateHTMLURL = fmt.Sprintf(setting.AppURL+"user2/repo1/src/branch/develop/new/file%d.txt", fileID) expectedCreateHTMLURL = fmt.Sprintf(setting.AppURL+"user2/repo1/src/branch/develop/new/file%d.txt", fileID)
expectedCreateDownloadURL = fmt.Sprintf(setting.AppURL+"user2/repo1/raw/branch/develop/new/file%d.txt", fileID) expectedCreateDownloadURL = fmt.Sprintf(setting.AppURL+"user2/repo1/raw/branch/develop/new/file%d.txt", fileID)
expectedUpdateHTMLURL = fmt.Sprintf(setting.AppURL+"user2/repo1/src/branch/develop/update/file%d.txt", fileID) expectedUpdateHTMLURL = fmt.Sprintf(setting.AppURL+"user2/repo1/src/branch/develop/update/file%d.txt", fileID)
@@ -255,7 +253,7 @@ func TestAPIChangeFiles(t *testing.T) {
req = NewRequestWithJSON(t, "POST", url, &changeFilesOptions). req = NewRequestWithJSON(t, "POST", url, &changeFilesOptions).
AddTokenAuth(token2) AddTokenAuth(token2)
resp = MakeRequest(t, req, http.StatusCreated) resp = MakeRequest(t, req, http.StatusCreated)
DecodeJSON(t, resp, &filesResponse) filesResponse = DecodeJSON(t, resp, &api.FilesResponse{})
expectedUpdateSHA = "08bd14b2e2852529157324de9c226b3364e76136" expectedUpdateSHA = "08bd14b2e2852529157324de9c226b3364e76136"
expectedUpdateHTMLURL = fmt.Sprintf(setting.AppURL+"user2/repo1/src/branch/master/rename/update/file%d.txt", fileID) expectedUpdateHTMLURL = fmt.Sprintf(setting.AppURL+"user2/repo1/src/branch/master/rename/update/file%d.txt", fileID)
expectedUpdateDownloadURL = fmt.Sprintf(setting.AppURL+"user2/repo1/raw/branch/master/rename/update/file%d.txt", fileID) expectedUpdateDownloadURL = fmt.Sprintf(setting.AppURL+"user2/repo1/raw/branch/master/rename/update/file%d.txt", fileID)
@@ -279,7 +277,7 @@ func TestAPIChangeFiles(t *testing.T) {
req = NewRequestWithJSON(t, "POST", url, &changeFilesOptions). req = NewRequestWithJSON(t, "POST", url, &changeFilesOptions).
AddTokenAuth(token2) AddTokenAuth(token2)
resp = MakeRequest(t, req, http.StatusCreated) resp = MakeRequest(t, req, http.StatusCreated)
DecodeJSON(t, resp, &filesResponse) filesResponse = DecodeJSON(t, resp, &api.FilesResponse{})
expectedMessage := fmt.Sprintf("Add %v\nUpdate %v\nDelete %v\n", createTreePath, updateTreePath, deleteTreePath) expectedMessage := fmt.Sprintf("Add %v\nUpdate %v\nDelete %v\n", createTreePath, updateTreePath, deleteTreePath)
assert.Equal(t, expectedMessage, filesResponse.Commit.Message) assert.Equal(t, expectedMessage, filesResponse.Commit.Message)
@@ -295,12 +293,11 @@ func TestAPIChangeFiles(t *testing.T) {
req = NewRequestWithJSON(t, "POST", url, &changeFilesOptions). req = NewRequestWithJSON(t, "POST", url, &changeFilesOptions).
AddTokenAuth(token2) AddTokenAuth(token2)
resp = MakeRequest(t, req, http.StatusUnprocessableEntity) resp = MakeRequest(t, req, http.StatusUnprocessableEntity)
expectedAPIError := context.APIError{ expectedAPIError := &context.APIError{
Message: "sha does not match [given: " + changeFilesOptions.Files[0].SHA + ", expected: " + correctSHA + "]", Message: "sha does not match [given: " + changeFilesOptions.Files[0].SHA + ", expected: " + correctSHA + "]",
URL: setting.API.SwaggerURL, URL: setting.API.SwaggerURL,
} }
var apiError context.APIError apiError := DecodeJSON(t, resp, &context.APIError{})
DecodeJSON(t, resp, &apiError)
assert.Equal(t, expectedAPIError, apiError) assert.Equal(t, expectedAPIError, apiError)
// Test creating a file in repo1 by user4 who does not have write access // Test creating a file in repo1 by user4 who does not have write access

View File

@@ -53,7 +53,7 @@ func TestAPIGetRequestedFiles(t *testing.T) {
if resp.Code != http.StatusOK { if resp.Code != http.StatusOK {
return nil return nil
} }
DecodeJSON(t, resp, &ret) ret = DecodeJSON(t, resp, []*api.ContentsResponse{})
return ret return ret
} }
@@ -62,8 +62,7 @@ func TestAPIGetRequestedFiles(t *testing.T) {
reqBodyParam, _ := json.Marshal(reqBodyOpt) reqBodyParam, _ := json.Marshal(reqBodyOpt)
req := NewRequest(t, "GET", "/api/v1/repos/user2/repo1/file-contents?body="+url.QueryEscape(string(reqBodyParam))) req := NewRequest(t, "GET", "/api/v1/repos/user2/repo1/file-contents?body="+url.QueryEscape(string(reqBodyParam)))
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var ret []*api.ContentsResponse ret := DecodeJSON(t, resp, []*api.ContentsResponse{})
DecodeJSON(t, resp, &ret)
expected := []*api.ContentsResponse{getExpectedContentsResponseForContents(repo1.DefaultBranch, "branch", lastCommit.ID.String())} expected := []*api.ContentsResponse{getExpectedContentsResponseForContents(repo1.DefaultBranch, "branch", lastCommit.ID.String())}
assert.Equal(t, expected, ret) assert.Equal(t, expected, ret)
}) })

View File

@@ -94,8 +94,7 @@ func testAPIGetContentsList(t *testing.T, u *url.URL) {
refType := "branch" refType := "branch"
req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/contents?ref=%s", user2.Name, repo1.Name, ref) req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/contents?ref=%s", user2.Name, repo1.Name, ref)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var contentsListResponse []*api.ContentsResponse contentsListResponse := DecodeJSON(t, resp, []*api.ContentsResponse{})
DecodeJSON(t, resp, &contentsListResponse)
assert.NotNil(t, contentsListResponse) assert.NotNil(t, contentsListResponse)
lastCommit, err := gitRepo.GetCommitByPath("README.md") lastCommit, err := gitRepo.GetCommitByPath("README.md")
assert.NoError(t, err) assert.NoError(t, err)
@@ -106,7 +105,7 @@ func testAPIGetContentsList(t *testing.T, u *url.URL) {
refType = "branch" refType = "branch"
req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/contents/", user2.Name, repo1.Name) req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/contents/", user2.Name, repo1.Name)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &contentsListResponse) contentsListResponse = DecodeJSON(t, resp, []*api.ContentsResponse{})
assert.NotNil(t, contentsListResponse) assert.NotNil(t, contentsListResponse)
expectedContentsListResponse = getExpectedContentsListResponseForContents(repo1.DefaultBranch, refType, lastCommit.ID.String()) expectedContentsListResponse = getExpectedContentsListResponseForContents(repo1.DefaultBranch, refType, lastCommit.ID.String())
@@ -117,7 +116,7 @@ func testAPIGetContentsList(t *testing.T, u *url.URL) {
refType = "branch" refType = "branch"
req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/contents?ref=%s", user2.Name, repo1.Name, ref) req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/contents?ref=%s", user2.Name, repo1.Name, ref)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &contentsListResponse) contentsListResponse = DecodeJSON(t, resp, []*api.ContentsResponse{})
assert.NotNil(t, contentsListResponse) assert.NotNil(t, contentsListResponse)
branchCommit, err := gitRepo.GetBranchCommit(ref) branchCommit, err := gitRepo.GetBranchCommit(ref)
assert.NoError(t, err) assert.NoError(t, err)
@@ -131,7 +130,7 @@ func testAPIGetContentsList(t *testing.T, u *url.URL) {
refType = "tag" refType = "tag"
req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/contents/?ref=%s", user2.Name, repo1.Name, ref) req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/contents/?ref=%s", user2.Name, repo1.Name, ref)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &contentsListResponse) contentsListResponse = DecodeJSON(t, resp, []*api.ContentsResponse{})
assert.NotNil(t, contentsListResponse) assert.NotNil(t, contentsListResponse)
tagCommit, err := gitRepo.GetTagCommit(ref) tagCommit, err := gitRepo.GetTagCommit(ref)
assert.NoError(t, err) assert.NoError(t, err)
@@ -145,7 +144,7 @@ func testAPIGetContentsList(t *testing.T, u *url.URL) {
refType = "commit" refType = "commit"
req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/contents/?ref=%s", user2.Name, repo1.Name, ref) req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/contents/?ref=%s", user2.Name, repo1.Name, ref)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &contentsListResponse) contentsListResponse = DecodeJSON(t, resp, []*api.ContentsResponse{})
assert.NotNil(t, contentsListResponse) assert.NotNil(t, contentsListResponse)
expectedContentsListResponse = getExpectedContentsListResponseForContents(ref, refType, commitID) expectedContentsListResponse = getExpectedContentsListResponseForContents(ref, refType, commitID)
assert.Equal(t, expectedContentsListResponse, contentsListResponse) assert.Equal(t, expectedContentsListResponse, contentsListResponse)

View File

@@ -105,50 +105,49 @@ func testAPIGetContents(t *testing.T, _ *url.URL) {
refType := "branch" refType := "branch"
req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/contents/%s?ref=%s", user2.Name, repo1.Name, treePath, ref) req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/contents/%s?ref=%s", user2.Name, repo1.Name, treePath, ref)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
var contentsResponse api.ContentsResponse contentsResponse := DecodeJSON(t, resp, &api.ContentsResponse{})
DecodeJSON(t, resp, &contentsResponse)
lastCommit, _ := gitRepo.GetCommitByPath("README.md") lastCommit, _ := gitRepo.GetCommitByPath("README.md")
expectedContentsResponse := getExpectedContentsResponseForContents(ref, refType, lastCommit.ID.String()) expectedContentsResponse := getExpectedContentsResponseForContents(ref, refType, lastCommit.ID.String())
assert.Equal(t, *expectedContentsResponse, contentsResponse) assert.Equal(t, *expectedContentsResponse, *contentsResponse)
// No ref // No ref
refType = "branch" refType = "branch"
req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/contents/%s", user2.Name, repo1.Name, treePath) req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/contents/%s", user2.Name, repo1.Name, treePath)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &contentsResponse) contentsResponse = DecodeJSON(t, resp, &api.ContentsResponse{})
expectedContentsResponse = getExpectedContentsResponseForContents(repo1.DefaultBranch, refType, lastCommit.ID.String()) expectedContentsResponse = getExpectedContentsResponseForContents(repo1.DefaultBranch, refType, lastCommit.ID.String())
assert.Equal(t, *expectedContentsResponse, contentsResponse) assert.Equal(t, *expectedContentsResponse, *contentsResponse)
// ref is the branch we created above in setup // ref is the branch we created above in setup
ref = newBranch ref = newBranch
refType = "branch" refType = "branch"
req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/contents/%s?ref=%s", user2.Name, repo1.Name, treePath, ref) req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/contents/%s?ref=%s", user2.Name, repo1.Name, treePath, ref)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &contentsResponse) contentsResponse = DecodeJSON(t, resp, &api.ContentsResponse{})
branchCommit, _ := gitRepo.GetBranchCommit(ref) branchCommit, _ := gitRepo.GetBranchCommit(ref)
lastCommit, _ = branchCommit.GetCommitByPath("README.md") lastCommit, _ = branchCommit.GetCommitByPath("README.md")
expectedContentsResponse = getExpectedContentsResponseForContents(ref, refType, lastCommit.ID.String()) expectedContentsResponse = getExpectedContentsResponseForContents(ref, refType, lastCommit.ID.String())
assert.Equal(t, *expectedContentsResponse, contentsResponse) assert.Equal(t, *expectedContentsResponse, *contentsResponse)
// ref is the new tag we created above in setup // ref is the new tag we created above in setup
ref = newTag ref = newTag
refType = "tag" refType = "tag"
req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/contents/%s?ref=%s", user2.Name, repo1.Name, treePath, ref) req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/contents/%s?ref=%s", user2.Name, repo1.Name, treePath, ref)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &contentsResponse) contentsResponse = DecodeJSON(t, resp, &api.ContentsResponse{})
tagCommit, _ := gitRepo.GetTagCommit(ref) tagCommit, _ := gitRepo.GetTagCommit(ref)
lastCommit, _ = tagCommit.GetCommitByPath("README.md") lastCommit, _ = tagCommit.GetCommitByPath("README.md")
expectedContentsResponse = getExpectedContentsResponseForContents(ref, refType, lastCommit.ID.String()) expectedContentsResponse = getExpectedContentsResponseForContents(ref, refType, lastCommit.ID.String())
assert.Equal(t, *expectedContentsResponse, contentsResponse) assert.Equal(t, *expectedContentsResponse, *contentsResponse)
// ref is a commit // ref is a commit
ref = commitID ref = commitID
refType = "commit" refType = "commit"
req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/contents/%s?ref=%s", user2.Name, repo1.Name, treePath, ref) req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/contents/%s?ref=%s", user2.Name, repo1.Name, treePath, ref)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &contentsResponse) contentsResponse = DecodeJSON(t, resp, &api.ContentsResponse{})
expectedContentsResponse = getExpectedContentsResponseForContents(ref, refType, commitID) expectedContentsResponse = getExpectedContentsResponseForContents(ref, refType, commitID)
assert.Equal(t, *expectedContentsResponse, contentsResponse) assert.Equal(t, *expectedContentsResponse, *contentsResponse)
// Test file contents a file with a bad ref // Test file contents a file with a bad ref
ref = "badref" ref = "badref"
@@ -211,22 +210,19 @@ func testAPIGetContentsExt(t *testing.T) {
t.Run("DirContents", func(t *testing.T) { t.Run("DirContents", func(t *testing.T) {
req := NewRequestf(t, "GET", "/api/v1/repos/user2/repo1/contents-ext?ref=sub-home-md-img-check") req := NewRequestf(t, "GET", "/api/v1/repos/user2/repo1/contents-ext?ref=sub-home-md-img-check")
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var contentsResponse api.ContentsExtResponse contentsResponse := DecodeJSON(t, resp, &api.ContentsExtResponse{})
DecodeJSON(t, resp, &contentsResponse)
assert.Nil(t, contentsResponse.FileContents) assert.Nil(t, contentsResponse.FileContents)
assert.NotNil(t, contentsResponse.DirContents) assert.NotNil(t, contentsResponse.DirContents)
req = NewRequestf(t, "GET", "/api/v1/repos/user2/repo1/contents-ext/.?ref=sub-home-md-img-check") req = NewRequestf(t, "GET", "/api/v1/repos/user2/repo1/contents-ext/.?ref=sub-home-md-img-check")
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
contentsResponse = api.ContentsExtResponse{} contentsResponse = DecodeJSON(t, resp, &api.ContentsExtResponse{})
DecodeJSON(t, resp, &contentsResponse)
assert.Nil(t, contentsResponse.FileContents) assert.Nil(t, contentsResponse.FileContents)
assert.NotNil(t, contentsResponse.DirContents) assert.NotNil(t, contentsResponse.DirContents)
req = NewRequestf(t, "GET", "/api/v1/repos/user2/repo1/contents-ext/docs?ref=sub-home-md-img-check") req = NewRequestf(t, "GET", "/api/v1/repos/user2/repo1/contents-ext/docs?ref=sub-home-md-img-check")
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
contentsResponse = api.ContentsExtResponse{} contentsResponse = DecodeJSON(t, resp, &api.ContentsExtResponse{})
DecodeJSON(t, resp, &contentsResponse)
assert.Nil(t, contentsResponse.FileContents) assert.Nil(t, contentsResponse.FileContents)
assert.Equal(t, "README.md", contentsResponse.DirContents[0].Name) assert.Equal(t, "README.md", contentsResponse.DirContents[0].Name)
assert.Nil(t, contentsResponse.DirContents[0].Encoding) assert.Nil(t, contentsResponse.DirContents[0].Encoding)
@@ -237,8 +233,7 @@ func testAPIGetContentsExt(t *testing.T) {
// "includes=file_content" shouldn't affect directory listing // "includes=file_content" shouldn't affect directory listing
req = NewRequestf(t, "GET", "/api/v1/repos/user2/repo1/contents-ext/docs?ref=sub-home-md-img-check&includes=file_content") req = NewRequestf(t, "GET", "/api/v1/repos/user2/repo1/contents-ext/docs?ref=sub-home-md-img-check&includes=file_content")
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
contentsResponse = api.ContentsExtResponse{} contentsResponse = DecodeJSON(t, resp, &api.ContentsExtResponse{})
DecodeJSON(t, resp, &contentsResponse)
assert.Nil(t, contentsResponse.FileContents) assert.Nil(t, contentsResponse.FileContents)
assert.Equal(t, "README.md", contentsResponse.DirContents[0].Name) assert.Equal(t, "README.md", contentsResponse.DirContents[0].Name)
assert.Nil(t, contentsResponse.DirContents[0].Encoding) assert.Nil(t, contentsResponse.DirContents[0].Encoding)
@@ -246,8 +241,7 @@ func testAPIGetContentsExt(t *testing.T) {
req = NewRequestf(t, "GET", "/api/v1/repos/user2/lfs/contents-ext?includes=file_content,lfs_metadata").AddTokenAuth(token2) req = NewRequestf(t, "GET", "/api/v1/repos/user2/lfs/contents-ext?includes=file_content,lfs_metadata").AddTokenAuth(token2)
resp = session.MakeRequest(t, req, http.StatusOK) resp = session.MakeRequest(t, req, http.StatusOK)
contentsResponse = api.ContentsExtResponse{} contentsResponse = DecodeJSON(t, resp, &api.ContentsExtResponse{})
DecodeJSON(t, resp, &contentsResponse)
assert.Nil(t, contentsResponse.FileContents) assert.Nil(t, contentsResponse.FileContents)
respFileIdx := slices.IndexFunc(contentsResponse.DirContents, func(response *api.ContentsResponse) bool { return response.Name == "jpeg.jpg" }) respFileIdx := slices.IndexFunc(contentsResponse.DirContents, func(response *api.ContentsResponse) bool { return response.Name == "jpeg.jpg" })
require.NotEqual(t, -1, respFileIdx) require.NotEqual(t, -1, respFileIdx)
@@ -262,8 +256,7 @@ func testAPIGetContentsExt(t *testing.T) {
// by default, no file content or commit info is returned // by default, no file content or commit info is returned
req := NewRequestf(t, "GET", "/api/v1/repos/user2/repo1/contents-ext/docs/README.md?ref=sub-home-md-img-check") req := NewRequestf(t, "GET", "/api/v1/repos/user2/repo1/contents-ext/docs/README.md?ref=sub-home-md-img-check")
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var contentsResponse api.ContentsExtResponse contentsResponse := DecodeJSON(t, resp, &api.ContentsExtResponse{})
DecodeJSON(t, resp, &contentsResponse)
assert.Nil(t, contentsResponse.DirContents) assert.Nil(t, contentsResponse.DirContents)
assert.Equal(t, "README.md", contentsResponse.FileContents.Name) assert.Equal(t, "README.md", contentsResponse.FileContents.Name)
assert.Nil(t, contentsResponse.FileContents.Encoding) assert.Nil(t, contentsResponse.FileContents.Encoding)
@@ -274,8 +267,7 @@ func testAPIGetContentsExt(t *testing.T) {
// file content is only returned when `includes=file_content` // file content is only returned when `includes=file_content`
req = NewRequestf(t, "GET", "/api/v1/repos/user2/repo1/contents-ext/docs/README.md?ref=sub-home-md-img-check&includes=file_content,commit_metadata,commit_message") req = NewRequestf(t, "GET", "/api/v1/repos/user2/repo1/contents-ext/docs/README.md?ref=sub-home-md-img-check&includes=file_content,commit_metadata,commit_message")
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
contentsResponse = api.ContentsExtResponse{} contentsResponse = DecodeJSON(t, resp, &api.ContentsExtResponse{})
DecodeJSON(t, resp, &contentsResponse)
assert.Nil(t, contentsResponse.DirContents) assert.Nil(t, contentsResponse.DirContents)
assert.Equal(t, "README.md", contentsResponse.FileContents.Name) assert.Equal(t, "README.md", contentsResponse.FileContents.Name)
assert.NotNil(t, contentsResponse.FileContents.Encoding) assert.NotNil(t, contentsResponse.FileContents.Encoding)
@@ -285,8 +277,7 @@ func testAPIGetContentsExt(t *testing.T) {
req = NewRequestf(t, "GET", "/api/v1/repos/user2/lfs/contents-ext/jpeg.jpg?includes=file_content").AddTokenAuth(token2) req = NewRequestf(t, "GET", "/api/v1/repos/user2/lfs/contents-ext/jpeg.jpg?includes=file_content").AddTokenAuth(token2)
resp = session.MakeRequest(t, req, http.StatusOK) resp = session.MakeRequest(t, req, http.StatusOK)
contentsResponse = api.ContentsExtResponse{} contentsResponse = DecodeJSON(t, resp, &api.ContentsExtResponse{})
DecodeJSON(t, resp, &contentsResponse)
assert.Nil(t, contentsResponse.DirContents) assert.Nil(t, contentsResponse.DirContents)
assert.NotNil(t, contentsResponse.FileContents) assert.NotNil(t, contentsResponse.FileContents)
respFile := contentsResponse.FileContents respFile := contentsResponse.FileContents

View File

@@ -37,8 +37,7 @@ func TestAPIReposGitBlobs(t *testing.T) {
// Test a public repo that anyone can GET the blob of // Test a public repo that anyone can GET the blob of
req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/git/blobs/%s", user2.Name, repo1.Name, repo1ReadmeSHA) req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/git/blobs/%s", user2.Name, repo1.Name, repo1ReadmeSHA)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var gitBlobResponse api.GitBlobResponse gitBlobResponse := DecodeJSON(t, resp, &api.GitBlobResponse{})
DecodeJSON(t, resp, &gitBlobResponse)
assert.NotNil(t, gitBlobResponse) assert.NotNil(t, gitBlobResponse)
expectedContent := "dHJlZSAyYTJmMWQ0NjcwNzI4YTJlMTAwNDllMzQ1YmQ3YTI3NjQ2OGJlYWI2CmF1dGhvciB1c2VyMSA8YWRkcmVzczFAZXhhbXBsZS5jb20+IDE0ODk5NTY0NzkgLTA0MDAKY29tbWl0dGVyIEV0aGFuIEtvZW5pZyA8ZXRoYW50a29lbmlnQGdtYWlsLmNvbT4gMTQ4OTk1NjQ3OSAtMDQwMAoKSW5pdGlhbCBjb21taXQK" expectedContent := "dHJlZSAyYTJmMWQ0NjcwNzI4YTJlMTAwNDllMzQ1YmQ3YTI3NjQ2OGJlYWI2CmF1dGhvciB1c2VyMSA8YWRkcmVzczFAZXhhbXBsZS5jb20+IDE0ODk5NTY0NzkgLTA0MDAKY29tbWl0dGVyIEV0aGFuIEtvZW5pZyA8ZXRoYW50a29lbmlnQGdtYWlsLmNvbT4gMTQ4OTk1NjQ3OSAtMDQwMAoKSW5pdGlhbCBjb21taXQK"
assert.Equal(t, expectedContent, *gitBlobResponse.Content) assert.Equal(t, expectedContent, *gitBlobResponse.Content)

View File

@@ -68,8 +68,7 @@ func TestAPIReposGitCommitList(t *testing.T) {
AddTokenAuth(token) AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var apiData []api.Commit apiData := DecodeJSON(t, resp, []api.Commit{})
DecodeJSON(t, resp, &apiData)
assert.Len(t, apiData, 2) assert.Len(t, apiData, 2)
assert.Equal(t, "cfe3b3c1fd36fba04f9183287b106497e1afe986", apiData[0].CommitMeta.SHA) assert.Equal(t, "cfe3b3c1fd36fba04f9183287b106497e1afe986", apiData[0].CommitMeta.SHA)
@@ -92,8 +91,7 @@ func TestAPIReposGitCommitListNotMaster(t *testing.T) {
AddTokenAuth(token) AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var apiData []api.Commit apiData := DecodeJSON(t, resp, []api.Commit{})
DecodeJSON(t, resp, &apiData)
assert.Len(t, apiData, 3) assert.Len(t, apiData, 3)
assert.Equal(t, "69554a64c1e6030f051e5c3f94bfbd773cd6a324", apiData[0].CommitMeta.SHA) assert.Equal(t, "69554a64c1e6030f051e5c3f94bfbd773cd6a324", apiData[0].CommitMeta.SHA)
@@ -118,8 +116,7 @@ func TestAPIReposGitCommitListPage2Empty(t *testing.T) {
AddTokenAuth(token) AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var apiData []api.Commit apiData := DecodeJSON(t, resp, []api.Commit{})
DecodeJSON(t, resp, &apiData)
assert.Empty(t, apiData) assert.Empty(t, apiData)
} }
@@ -136,8 +133,7 @@ func TestAPIReposGitCommitListDifferentBranch(t *testing.T) {
AddTokenAuth(token) AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var apiData []api.Commit apiData := DecodeJSON(t, resp, []api.Commit{})
DecodeJSON(t, resp, &apiData)
assert.Len(t, apiData, 1) assert.Len(t, apiData, 1)
assert.Equal(t, "f27c2b2b03dcab38beaf89b0ab4ff61f6de63441", apiData[0].CommitMeta.SHA) assert.Equal(t, "f27c2b2b03dcab38beaf89b0ab4ff61f6de63441", apiData[0].CommitMeta.SHA)
@@ -156,8 +152,7 @@ func TestAPIReposGitCommitListWithoutSelectFields(t *testing.T) {
AddTokenAuth(token) AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var apiData []api.Commit apiData := DecodeJSON(t, resp, []api.Commit{})
DecodeJSON(t, resp, &apiData)
assert.Len(t, apiData, 1) assert.Len(t, apiData, 1)
assert.Equal(t, "f27c2b2b03dcab38beaf89b0ab4ff61f6de63441", apiData[0].CommitMeta.SHA) assert.Equal(t, "f27c2b2b03dcab38beaf89b0ab4ff61f6de63441", apiData[0].CommitMeta.SHA)
@@ -201,8 +196,7 @@ func TestGetFileHistory(t *testing.T) {
AddTokenAuth(token) AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var apiData []api.Commit apiData := DecodeJSON(t, resp, []api.Commit{})
DecodeJSON(t, resp, &apiData)
assert.Len(t, apiData, 1) assert.Len(t, apiData, 1)
assert.Equal(t, "f27c2b2b03dcab38beaf89b0ab4ff61f6de63441", apiData[0].CommitMeta.SHA) assert.Equal(t, "f27c2b2b03dcab38beaf89b0ab4ff61f6de63441", apiData[0].CommitMeta.SHA)
@@ -222,8 +216,7 @@ func TestGetFileHistoryNotOnMaster(t *testing.T) {
AddTokenAuth(token) AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var apiData []api.Commit apiData := DecodeJSON(t, resp, []api.Commit{})
DecodeJSON(t, resp, &apiData)
assert.Len(t, apiData, 1) assert.Len(t, apiData, 1)
assert.Equal(t, "c8e31bc7688741a5287fcde4fbb8fc129ca07027", apiData[0].CommitMeta.SHA) assert.Equal(t, "c8e31bc7688741a5287fcde4fbb8fc129ca07027", apiData[0].CommitMeta.SHA)

View File

@@ -40,8 +40,7 @@ echo "TestGitHookScript"
req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/hooks/git", owner.Name, repo.Name). req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/hooks/git", owner.Name, repo.Name).
AddTokenAuth(token) AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var apiGitHooks []*api.GitHook apiGitHooks := DecodeJSON(t, resp, []*api.GitHook{})
DecodeJSON(t, resp, &apiGitHooks)
assert.Len(t, apiGitHooks, 3) assert.Len(t, apiGitHooks, 3)
for _, apiGitHook := range apiGitHooks { for _, apiGitHook := range apiGitHooks {
if apiGitHook.Name == "pre-receive" { if apiGitHook.Name == "pre-receive" {
@@ -66,8 +65,7 @@ echo "TestGitHookScript"
req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/hooks/git", owner.Name, repo.Name). req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/hooks/git", owner.Name, repo.Name).
AddTokenAuth(token) AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var apiGitHooks []*api.GitHook apiGitHooks := DecodeJSON(t, resp, []*api.GitHook{})
DecodeJSON(t, resp, &apiGitHooks)
assert.Len(t, apiGitHooks, 3) assert.Len(t, apiGitHooks, 3)
for _, apiGitHook := range apiGitHooks { for _, apiGitHook := range apiGitHooks {
assert.False(t, apiGitHook.IsActive) assert.False(t, apiGitHook.IsActive)

View File

@@ -37,8 +37,7 @@ func TestAPIReposGitNotes(t *testing.T) {
AddTokenAuth(token) AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var apiData api.Note apiData := DecodeJSON(t, resp, &api.Note{})
DecodeJSON(t, resp, &apiData)
assert.Equal(t, "This is a test note\n", apiData.Message) assert.Equal(t, "This is a test note\n", apiData.Message)
assert.NotEmpty(t, apiData.Commit.Files) assert.NotEmpty(t, apiData.Commit.Files)
assert.NotNil(t, apiData.Commit.RepoCommit.Verification) assert.NotNil(t, apiData.Commit.RepoCommit.Verification)

View File

@@ -39,15 +39,13 @@ func TestAPIReposGitTrees(t *testing.T) {
_ = MakeRequest(t, NewRequest(t, "GET", "/api/v1/repos/user2/repo1/git/trees/master"), http.StatusOK) _ = MakeRequest(t, NewRequest(t, "GET", "/api/v1/repos/user2/repo1/git/trees/master"), http.StatusOK)
resp := MakeRequest(t, NewRequest(t, "GET", "/api/v1/repos/user2/repo1/git/trees/62fb502a7172d4453f0322a2cc85bddffa57f07a?per_page=1"), http.StatusOK) resp := MakeRequest(t, NewRequest(t, "GET", "/api/v1/repos/user2/repo1/git/trees/62fb502a7172d4453f0322a2cc85bddffa57f07a?per_page=1"), http.StatusOK)
var respGitTree api.GitTreeResponse respGitTree := DecodeJSON(t, resp, &api.GitTreeResponse{})
DecodeJSON(t, resp, &respGitTree)
assert.True(t, respGitTree.Truncated) assert.True(t, respGitTree.Truncated)
require.Len(t, respGitTree.Entries, 1) require.Len(t, respGitTree.Entries, 1)
assert.Equal(t, "File-WoW", respGitTree.Entries[0].Path) assert.Equal(t, "File-WoW", respGitTree.Entries[0].Path)
resp = MakeRequest(t, NewRequest(t, "GET", "/api/v1/repos/user2/repo1/git/trees/62fb502a7172d4453f0322a2cc85bddffa57f07a?page=2&per_page=1"), http.StatusOK) resp = MakeRequest(t, NewRequest(t, "GET", "/api/v1/repos/user2/repo1/git/trees/62fb502a7172d4453f0322a2cc85bddffa57f07a?page=2&per_page=1"), http.StatusOK)
respGitTree = api.GitTreeResponse{} respGitTree = DecodeJSON(t, resp, &api.GitTreeResponse{})
DecodeJSON(t, resp, &respGitTree)
assert.False(t, respGitTree.Truncated) assert.False(t, respGitTree.Truncated)
require.Len(t, respGitTree.Entries, 1) require.Len(t, respGitTree.Entries, 1)
assert.Equal(t, "README.md", respGitTree.Entries[0].Path) assert.Equal(t, "README.md", respGitTree.Entries[0].Path)

View File

@@ -43,8 +43,7 @@ func TestRepoLanguages(t *testing.T) {
req = NewRequest(t, "GET", "/api/v1/repos/user2/repo1/languages") req = NewRequest(t, "GET", "/api/v1/repos/user2/repo1/languages")
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
var languages map[string]int64 languages := DecodeJSON(t, resp, map[string]int64{})
DecodeJSON(t, resp, &languages)
assert.InDeltaMapValues(t, map[string]int64{"Go": 12}, languages, 0) assert.InDeltaMapValues(t, map[string]int64{"Go": 12}, languages, 0)
}) })

View File

@@ -45,8 +45,7 @@ func TestAPILFSLocksNotLogin(t *testing.T) {
req := NewRequestf(t, "GET", "/%s/%s.git/info/lfs/locks", user.Name, repo.Name) req := NewRequestf(t, "GET", "/%s/%s.git/info/lfs/locks", user.Name, repo.Name)
req.Header.Set("Accept", lfs.MediaType) req.Header.Set("Accept", lfs.MediaType)
resp := MakeRequest(t, req, http.StatusUnauthorized) resp := MakeRequest(t, req, http.StatusUnauthorized)
var lfsLockError api.LFSLockError lfsLockError := DecodeJSON(t, resp, &api.LFSLockError{})
DecodeJSON(t, resp, &lfsLockError)
assert.Equal(t, "You must have pull access to list locks", lfsLockError.Message) assert.Equal(t, "You must have pull access to list locks", lfsLockError.Message)
} }
@@ -109,8 +108,7 @@ func TestAPILFSLocksLogged(t *testing.T) {
req.Header.Set("Content-Type", lfs.MediaType) req.Header.Set("Content-Type", lfs.MediaType)
resp := session.MakeRequest(t, req, test.httpResult) resp := session.MakeRequest(t, req, test.httpResult)
if len(test.addTime) > 0 { if len(test.addTime) > 0 {
var lfsLock api.LFSLockResponse lfsLock := DecodeJSON(t, resp, &api.LFSLockResponse{})
DecodeJSON(t, resp, &lfsLock)
assert.Equal(t, test.user.Name, lfsLock.Lock.Owner.Name) assert.Equal(t, test.user.Name, lfsLock.Lock.Owner.Name)
assert.Equal(t, lfsLock.Lock.LockedAt.Format(time.RFC3339), lfsLock.Lock.LockedAt.Format(time.RFC3339Nano)) // locked at should be rounded to second assert.Equal(t, lfsLock.Lock.LockedAt.Format(time.RFC3339), lfsLock.Lock.LockedAt.Format(time.RFC3339Nano)) // locked at should be rounded to second
for _, id := range test.addTime { for _, id := range test.addTime {
@@ -125,8 +123,7 @@ func TestAPILFSLocksLogged(t *testing.T) {
req := NewRequestf(t, "GET", "/%s.git/info/lfs/locks", test.repo.FullName()) req := NewRequestf(t, "GET", "/%s.git/info/lfs/locks", test.repo.FullName())
req.Header.Set("Accept", lfs.AcceptHeader) req.Header.Set("Accept", lfs.AcceptHeader)
resp := session.MakeRequest(t, req, http.StatusOK) resp := session.MakeRequest(t, req, http.StatusOK)
var lfsLocks api.LFSLockList lfsLocks := DecodeJSON(t, resp, &api.LFSLockList{})
DecodeJSON(t, resp, &lfsLocks)
assert.Len(t, lfsLocks.Locks, test.totalCount) assert.Len(t, lfsLocks.Locks, test.totalCount)
for i, lock := range lfsLocks.Locks { for i, lock := range lfsLocks.Locks {
assert.Equal(t, test.locksOwners[i].Name, lock.Owner.Name) assert.Equal(t, test.locksOwners[i].Name, lock.Owner.Name)
@@ -138,8 +135,7 @@ func TestAPILFSLocksLogged(t *testing.T) {
req.Header.Set("Accept", lfs.AcceptHeader) req.Header.Set("Accept", lfs.AcceptHeader)
req.Header.Set("Content-Type", lfs.MediaType) req.Header.Set("Content-Type", lfs.MediaType)
resp = session.MakeRequest(t, req, http.StatusOK) resp = session.MakeRequest(t, req, http.StatusOK)
var lfsLocksVerify api.LFSLockListVerify lfsLocksVerify := DecodeJSON(t, resp, &api.LFSLockListVerify{})
DecodeJSON(t, resp, &lfsLocksVerify)
assert.Len(t, lfsLocksVerify.Ours, test.oursCount) assert.Len(t, lfsLocksVerify.Ours, test.oursCount)
assert.Len(t, lfsLocksVerify.Theirs, test.theirsCount) assert.Len(t, lfsLocksVerify.Theirs, test.theirsCount)
for _, lock := range lfsLocksVerify.Ours { for _, lock := range lfsLocksVerify.Ours {
@@ -162,8 +158,7 @@ func TestAPILFSLocksLogged(t *testing.T) {
req.Header.Set("Accept", lfs.AcceptHeader) req.Header.Set("Accept", lfs.AcceptHeader)
req.Header.Set("Content-Type", lfs.MediaType) req.Header.Set("Content-Type", lfs.MediaType)
resp := session.MakeRequest(t, req, http.StatusOK) resp := session.MakeRequest(t, req, http.StatusOK)
var lfsLockRep api.LFSLockResponse lfsLockRep := DecodeJSON(t, resp, &api.LFSLockResponse{})
DecodeJSON(t, resp, &lfsLockRep)
assert.Equal(t, test.lockID, lfsLockRep.Lock.ID) assert.Equal(t, test.lockID, lfsLockRep.Lock.ID)
assert.Equal(t, test.user.Name, lfsLockRep.Lock.Owner.Name) assert.Equal(t, test.user.Name, lfsLockRep.Lock.Owner.Name)
} }
@@ -174,8 +169,7 @@ func TestAPILFSLocksLogged(t *testing.T) {
req := NewRequestf(t, "GET", "/%s.git/info/lfs/locks", test.repo.FullName()) req := NewRequestf(t, "GET", "/%s.git/info/lfs/locks", test.repo.FullName())
req.Header.Set("Accept", lfs.AcceptHeader) req.Header.Set("Accept", lfs.AcceptHeader)
resp := session.MakeRequest(t, req, http.StatusOK) resp := session.MakeRequest(t, req, http.StatusOK)
var lfsLocks api.LFSLockList lfsLocks := DecodeJSON(t, resp, &api.LFSLockList{})
DecodeJSON(t, resp, &lfsLocks)
assert.Empty(t, lfsLocks.Locks) assert.Empty(t, lfsLocks.Locks)
} }
} }

View File

@@ -74,8 +74,7 @@ func checkRepoLicense(t *testing.T, owner, repo string, expected []string) {
req := NewRequest(t, "GET", reqURL) req := NewRequest(t, "GET", reqURL)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var licenses []string licenses := DecodeJSON(t, resp, []string{})
DecodeJSON(t, resp, &licenses)
assert.ElementsMatch(t, expected, licenses, 0) assert.ElementsMatch(t, expected, licenses, 0)
} }

View File

@@ -31,8 +31,7 @@ func TestAPIRepoTags(t *testing.T) {
AddTokenAuth(token) AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var tags []*api.Tag tags := DecodeJSON(t, resp, []*api.Tag{})
DecodeJSON(t, resp, &tags)
assert.Len(t, tags, 1) assert.Len(t, tags, 1)
assert.Equal(t, "v1.1", tags[0].Name) assert.Equal(t, "v1.1", tags[0].Name)
@@ -44,7 +43,7 @@ func TestAPIRepoTags(t *testing.T) {
newTag := createNewTagUsingAPI(t, token, user.Name, repoName, "gitea/22", "", "nice!\nand some text") newTag := createNewTagUsingAPI(t, token, user.Name, repoName, "gitea/22", "", "nice!\nand some text")
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &tags) tags = DecodeJSON(t, resp, []*api.Tag{})
assert.Len(t, tags, 2) assert.Len(t, tags, 2)
for _, tag := range tags { for _, tag := range tags {
if tag.Name != "v1.1" { if tag.Name != "v1.1" {
@@ -80,7 +79,6 @@ func createNewTagUsingAPI(t *testing.T, token, ownerName, repoName, name, target
}).AddTokenAuth(token) }).AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusCreated) resp := MakeRequest(t, req, http.StatusCreated)
var respObj api.Tag respObj := DecodeJSON(t, resp, &api.Tag{})
DecodeJSON(t, resp, &respObj) return respObj
return &respObj
} }

View File

@@ -34,8 +34,7 @@ func TestAPIRepoTeams(t *testing.T) {
req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/teams", publicOrgRepo.FullName())). req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/teams", publicOrgRepo.FullName())).
AddTokenAuth(token) AddTokenAuth(token)
res := MakeRequest(t, req, http.StatusOK) res := MakeRequest(t, req, http.StatusOK)
var teams []*api.Team teams := DecodeJSON(t, res, []*api.Team{})
DecodeJSON(t, res, &teams)
if assert.Len(t, teams, 2) { if assert.Len(t, teams, 2) {
assert.Equal(t, "Owners", teams[0].Name) assert.Equal(t, "Owners", teams[0].Name)
assert.True(t, teams[0].CanCreateOrgRepo) assert.True(t, teams[0].CanCreateOrgRepo)

View File

@@ -30,8 +30,7 @@ func TestAPIUserReposNotLogin(t *testing.T) {
req := NewRequestf(t, "GET", "/api/v1/users/%s/repos", user.Name) req := NewRequestf(t, "GET", "/api/v1/users/%s/repos", user.Name)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var apiRepos []api.Repository apiRepos := DecodeJSON(t, resp, []api.Repository{})
DecodeJSON(t, resp, &apiRepos)
expectedLen := unittest.GetCount(t, repo_model.Repository{OwnerID: user.ID}, expectedLen := unittest.GetCount(t, repo_model.Repository{OwnerID: user.ID},
unittest.Cond("is_private = ?", false)) unittest.Cond("is_private = ?", false))
assert.Len(t, apiRepos, expectedLen) assert.Len(t, apiRepos, expectedLen)
@@ -48,8 +47,7 @@ func TestAPISearchRepo(t *testing.T) {
req := NewRequestf(t, "GET", "/api/v1/repos/search?q=%s", keyword) req := NewRequestf(t, "GET", "/api/v1/repos/search?q=%s", keyword)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var body api.SearchResults body := DecodeJSON(t, resp, &api.SearchResults{})
DecodeJSON(t, resp, &body)
assert.NotEmpty(t, body.Data) assert.NotEmpty(t, body.Data)
for _, repo := range body.Data { for _, repo := range body.Data {
assert.Contains(t, repo.Name, keyword) assert.Contains(t, repo.Name, keyword)
@@ -201,8 +199,7 @@ func TestAPISearchRepo(t *testing.T) {
AddTokenAuth(token) AddTokenAuth(token)
response := MakeRequest(t, request, http.StatusOK) response := MakeRequest(t, request, http.StatusOK)
var body api.SearchResults body := DecodeJSON(t, response, &api.SearchResults{})
DecodeJSON(t, response, &body)
repoNames := make([]string, 0, len(body.Data)) repoNames := make([]string, 0, len(body.Data))
for _, repo := range body.Data { for _, repo := range body.Data {
@@ -248,11 +245,9 @@ func getRepo(t *testing.T, repoID int64) *repo_model.Repository {
func TestAPIViewRepo(t *testing.T) { func TestAPIViewRepo(t *testing.T) {
defer tests.PrepareTestEnv(t)() defer tests.PrepareTestEnv(t)()
var repo api.Repository
req := NewRequest(t, "GET", "/api/v1/repos/user2/repo1") req := NewRequest(t, "GET", "/api/v1/repos/user2/repo1")
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &repo) repo := DecodeJSON(t, resp, &api.Repository{})
assert.EqualValues(t, 1, repo.ID) assert.EqualValues(t, 1, repo.ID)
assert.Equal(t, "repo1", repo.Name) assert.Equal(t, "repo1", repo.Name)
assert.Equal(t, 2, repo.Releases) assert.Equal(t, 2, repo.Releases)
@@ -261,7 +256,7 @@ func TestAPIViewRepo(t *testing.T) {
req = NewRequest(t, "GET", "/api/v1/repos/user12/repo10") req = NewRequest(t, "GET", "/api/v1/repos/user12/repo10")
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &repo) repo = DecodeJSON(t, resp, &api.Repository{})
assert.EqualValues(t, 10, repo.ID) assert.EqualValues(t, 10, repo.ID)
assert.Equal(t, "repo10", repo.Name) assert.Equal(t, "repo10", repo.Name)
assert.Equal(t, 1, repo.OpenPulls) assert.Equal(t, 1, repo.OpenPulls)
@@ -269,7 +264,7 @@ func TestAPIViewRepo(t *testing.T) {
req = NewRequest(t, "GET", "/api/v1/repos/user5/repo4") req = NewRequest(t, "GET", "/api/v1/repos/user5/repo4")
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &repo) repo = DecodeJSON(t, resp, &api.Repository{})
assert.EqualValues(t, 4, repo.ID) assert.EqualValues(t, 4, repo.ID)
assert.Equal(t, "repo4", repo.Name) assert.Equal(t, "repo4", repo.Name)
assert.Equal(t, 1, repo.Stars) assert.Equal(t, 1, repo.Stars)
@@ -303,8 +298,7 @@ func TestAPIOrgRepos(t *testing.T) {
AddTokenAuth(token) AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var apiRepos []*api.Repository apiRepos := DecodeJSON(t, resp, []*api.Repository{})
DecodeJSON(t, resp, &apiRepos)
assert.Len(t, apiRepos, expected.count) assert.Len(t, apiRepos, expected.count)
for _, repo := range apiRepos { for _, repo := range apiRepos {
if !expected.includesPrivate { if !expected.includesPrivate {
@@ -337,8 +331,7 @@ func TestAPIOrgReposWithCodeUnitDisabled(t *testing.T) {
AddTokenAuth(token) AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var apiRepos []*api.Repository apiRepos := DecodeJSON(t, resp, []*api.Repository{})
DecodeJSON(t, resp, &apiRepos)
var repoNames []string var repoNames []string
for _, r := range apiRepos { for _, r := range apiRepos {
@@ -385,8 +378,7 @@ func TestAPIRepoMigrate(t *testing.T) {
}).AddTokenAuth(token) }).AddTokenAuth(token)
resp := MakeRequest(t, req, NoExpectedStatus) resp := MakeRequest(t, req, NoExpectedStatus)
if resp.Code == http.StatusUnprocessableEntity { if resp.Code == http.StatusUnprocessableEntity {
respJSON := map[string]string{} respJSON := DecodeJSON(t, resp, map[string]string{})
DecodeJSON(t, resp, &respJSON)
switch respJSON["message"] { switch respJSON["message"] {
case "Remote visit addressed rate limitation.": case "Remote visit addressed rate limitation.":
t.Log("test hit github rate limitation") t.Log("test hit github rate limitation")
@@ -431,8 +423,7 @@ func testAPIRepoMigrateConflict(t *testing.T, u *url.URL) {
}). }).
AddTokenAuth(httpContext.Token) AddTokenAuth(httpContext.Token)
resp := httpContext.Session.MakeRequest(t, req, http.StatusConflict) resp := httpContext.Session.MakeRequest(t, req, http.StatusConflict)
respJSON := map[string]string{} respJSON := DecodeJSON(t, resp, map[string]string{})
DecodeJSON(t, resp, &respJSON)
assert.Equal(t, "The repository with the same name already exists.", respJSON["message"]) assert.Equal(t, "The repository with the same name already exists.", respJSON["message"])
}) })
} }
@@ -445,17 +436,15 @@ func TestAPIMirrorSyncNonMirrorRepo(t *testing.T) {
session := loginUser(t, "user2") session := loginUser(t, "user2")
token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteRepository) token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteRepository)
var repo api.Repository
req := NewRequest(t, "GET", "/api/v1/repos/user2/repo1") req := NewRequest(t, "GET", "/api/v1/repos/user2/repo1")
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &repo) repo := DecodeJSON(t, resp, &api.Repository{})
assert.False(t, repo.Mirror) assert.False(t, repo.Mirror)
req = NewRequestf(t, "POST", "/api/v1/repos/user2/repo1/mirror-sync"). req = NewRequestf(t, "POST", "/api/v1/repos/user2/repo1/mirror-sync").
AddTokenAuth(token) AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusBadRequest) resp = MakeRequest(t, req, http.StatusBadRequest)
errRespJSON := map[string]string{} errRespJSON := DecodeJSON(t, resp, map[string]string{})
DecodeJSON(t, resp, &errRespJSON)
assert.Equal(t, "Repository is not a mirror", errRespJSON["message"]) assert.Equal(t, "Repository is not a mirror", errRespJSON["message"])
} }
@@ -511,8 +500,7 @@ func testAPIRepoCreateConflict(t *testing.T, u *url.URL) {
}). }).
AddTokenAuth(httpContext.Token) AddTokenAuth(httpContext.Token)
resp := httpContext.Session.MakeRequest(t, req, http.StatusConflict) resp := httpContext.Session.MakeRequest(t, req, http.StatusConflict)
respJSON := map[string]string{} respJSON := DecodeJSON(t, resp, map[string]string{})
DecodeJSON(t, resp, &respJSON)
assert.Equal(t, "The repository with the same name already exists.", respJSON["message"]) assert.Equal(t, "The repository with the same name already exists.", respJSON["message"])
}) })
} }
@@ -709,8 +697,7 @@ func TestAPIRepoGetReviewers(t *testing.T) {
req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/reviewers", user.Name, repo.Name). req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/reviewers", user.Name, repo.Name).
AddTokenAuth(token) AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var reviewers []*api.User reviewers := DecodeJSON(t, resp, []*api.User{})
DecodeJSON(t, resp, &reviewers)
if assert.Len(t, reviewers, 1) { if assert.Len(t, reviewers, 1) {
assert.ElementsMatch(t, []int64{2}, []int64{reviewers[0].ID}) assert.ElementsMatch(t, []int64{2}, []int64{reviewers[0].ID})
} }
@@ -726,7 +713,6 @@ func TestAPIRepoGetAssignees(t *testing.T) {
req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/assignees", user.Name, repo.Name). req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/assignees", user.Name, repo.Name).
AddTokenAuth(token) AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var assignees []*api.User assignees := DecodeJSON(t, resp, []*api.User{})
DecodeJSON(t, resp, &assignees)
assert.Len(t, assignees, 2) assert.Len(t, assignees, 2)
} }

View File

@@ -22,33 +22,34 @@ import (
func TestAPITopicSearch(t *testing.T) { func TestAPITopicSearch(t *testing.T) {
defer tests.PrepareTestEnv(t)() defer tests.PrepareTestEnv(t)()
searchURL, _ := url.Parse("/api/v1/topics/search") searchURL, _ := url.Parse("/api/v1/topics/search")
var topics struct {
TopicNames []*api.TopicResponse `json:"topics"`
}
// search all topics // search all topics
res := MakeRequest(t, NewRequest(t, "GET", searchURL.String()), http.StatusOK) res := MakeRequest(t, NewRequest(t, "GET", searchURL.String()), http.StatusOK)
DecodeJSON(t, res, &topics) topics := DecodeJSON(t, res, &struct {
TopicNames []*api.TopicResponse `json:"topics"`
}{})
assert.Len(t, topics.TopicNames, 6) assert.Len(t, topics.TopicNames, 6)
assert.Equal(t, "6", res.Header().Get("x-total-count")) assert.Equal(t, "6", res.Header().Get("x-total-count"))
// pagination search topics first page // pagination search topics first page
topics.TopicNames = nil
query := url.Values{"page": []string{"1"}, "limit": []string{"4"}} query := url.Values{"page": []string{"1"}, "limit": []string{"4"}}
searchURL.RawQuery = query.Encode() searchURL.RawQuery = query.Encode()
res = MakeRequest(t, NewRequest(t, "GET", searchURL.String()), http.StatusOK) res = MakeRequest(t, NewRequest(t, "GET", searchURL.String()), http.StatusOK)
DecodeJSON(t, res, &topics) topics = DecodeJSON(t, res, &struct {
TopicNames []*api.TopicResponse `json:"topics"`
}{})
assert.Len(t, topics.TopicNames, 4) assert.Len(t, topics.TopicNames, 4)
assert.Equal(t, "6", res.Header().Get("x-total-count")) assert.Equal(t, "6", res.Header().Get("x-total-count"))
// pagination search topics second page // pagination search topics second page
topics.TopicNames = nil
query = url.Values{"page": []string{"2"}, "limit": []string{"4"}} query = url.Values{"page": []string{"2"}, "limit": []string{"4"}}
searchURL.RawQuery = query.Encode() searchURL.RawQuery = query.Encode()
res = MakeRequest(t, NewRequest(t, "GET", searchURL.String()), http.StatusOK) res = MakeRequest(t, NewRequest(t, "GET", searchURL.String()), http.StatusOK)
DecodeJSON(t, res, &topics) topics = DecodeJSON(t, res, &struct {
TopicNames []*api.TopicResponse `json:"topics"`
}{})
assert.Len(t, topics.TopicNames, 2) assert.Len(t, topics.TopicNames, 2)
assert.Equal(t, "6", res.Header().Get("x-total-count")) assert.Equal(t, "6", res.Header().Get("x-total-count"))
@@ -57,13 +58,17 @@ func TestAPITopicSearch(t *testing.T) {
query.Add("q", "topic") query.Add("q", "topic")
searchURL.RawQuery = query.Encode() searchURL.RawQuery = query.Encode()
res = MakeRequest(t, NewRequest(t, "GET", searchURL.String()), http.StatusOK) res = MakeRequest(t, NewRequest(t, "GET", searchURL.String()), http.StatusOK)
DecodeJSON(t, res, &topics) topics = DecodeJSON(t, res, &struct {
TopicNames []*api.TopicResponse `json:"topics"`
}{})
assert.Len(t, topics.TopicNames, 2) assert.Len(t, topics.TopicNames, 2)
query.Set("q", "database") query.Set("q", "database")
searchURL.RawQuery = query.Encode() searchURL.RawQuery = query.Encode()
res = MakeRequest(t, NewRequest(t, "GET", searchURL.String()), http.StatusOK) res = MakeRequest(t, NewRequest(t, "GET", searchURL.String()), http.StatusOK)
DecodeJSON(t, res, &topics) topics = DecodeJSON(t, res, &struct {
TopicNames []*api.TopicResponse `json:"topics"`
}{})
if assert.Len(t, topics.TopicNames, 1) { if assert.Len(t, topics.TopicNames, 1) {
assert.EqualValues(t, 2, topics.TopicNames[0].ID) assert.EqualValues(t, 2, topics.TopicNames[0].ID)
assert.Equal(t, "database", topics.TopicNames[0].Name) assert.Equal(t, "database", topics.TopicNames[0].Name)
@@ -110,7 +115,7 @@ func TestAPIRepoTopic(t *testing.T) {
req = NewRequest(t, "GET", url). req = NewRequest(t, "GET", url).
AddTokenAuth(token2) AddTokenAuth(token2)
res = MakeRequest(t, req, http.StatusOK) res = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, res, &topics) topics = DecodeJSON(t, res, &api.TopicName{})
assert.ElementsMatch(t, []string{"topicname2", "golang", "topicname3"}, topics.TopicNames) assert.ElementsMatch(t, []string{"topicname2", "golang", "topicname3"}, topics.TopicNames)
// Test replace topics // Test replace topics
@@ -122,7 +127,7 @@ func TestAPIRepoTopic(t *testing.T) {
req = NewRequest(t, "GET", url). req = NewRequest(t, "GET", url).
AddTokenAuth(token2) AddTokenAuth(token2)
res = MakeRequest(t, req, http.StatusOK) res = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, res, &topics) topics = DecodeJSON(t, res, &api.TopicName{})
assert.ElementsMatch(t, []string{"windows", "mac"}, topics.TopicNames) assert.ElementsMatch(t, []string{"windows", "mac"}, topics.TopicNames)
// Test replace topics with something invalid // Test replace topics with something invalid
@@ -134,7 +139,7 @@ func TestAPIRepoTopic(t *testing.T) {
req = NewRequest(t, "GET", url). req = NewRequest(t, "GET", url).
AddTokenAuth(token2) AddTokenAuth(token2)
res = MakeRequest(t, req, http.StatusOK) res = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, res, &topics) topics = DecodeJSON(t, res, &api.TopicName{})
assert.ElementsMatch(t, []string{"windows", "mac"}, topics.TopicNames) assert.ElementsMatch(t, []string{"windows", "mac"}, topics.TopicNames)
// Test with some topics multiple times, less than 25 unique // Test with some topics multiple times, less than 25 unique
@@ -146,7 +151,7 @@ func TestAPIRepoTopic(t *testing.T) {
req = NewRequest(t, "GET", url). req = NewRequest(t, "GET", url).
AddTokenAuth(token2) AddTokenAuth(token2)
res = MakeRequest(t, req, http.StatusOK) res = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, res, &topics) topics = DecodeJSON(t, res, &api.TopicName{})
assert.Len(t, topics.TopicNames, 25) assert.Len(t, topics.TopicNames, 25)
// Test writing more topics than allowed // Test writing more topics than allowed
@@ -173,7 +178,7 @@ func TestAPIRepoTopic(t *testing.T) {
req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/topics", org3.Name, repo3.Name)). req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/topics", org3.Name, repo3.Name)).
AddTokenAuth(token4) AddTokenAuth(token4)
res = MakeRequest(t, req, http.StatusOK) res = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, res, &topics) topics = DecodeJSON(t, res, &api.TopicName{})
assert.Empty(t, topics.TopicNames) assert.Empty(t, topics.TopicNames)
// Test add a topic to repo with write access (requires repo admin access) // Test add a topic to repo with write access (requires repo admin access)

View File

@@ -17,19 +17,17 @@ import (
func TestAPIExposedSettings(t *testing.T) { func TestAPIExposedSettings(t *testing.T) {
defer tests.PrepareTestEnv(t)() defer tests.PrepareTestEnv(t)()
ui := new(api.GeneralUISettings)
req := NewRequest(t, "GET", "/api/v1/settings/ui") req := NewRequest(t, "GET", "/api/v1/settings/ui")
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &ui) ui := DecodeJSON(t, resp, &api.GeneralUISettings{})
assert.Len(t, ui.AllowedReactions, len(setting.UI.Reactions)) assert.Len(t, ui.AllowedReactions, len(setting.UI.Reactions))
assert.ElementsMatch(t, setting.UI.Reactions, ui.AllowedReactions) assert.ElementsMatch(t, setting.UI.Reactions, ui.AllowedReactions)
apiSettings := new(api.GeneralAPISettings)
req = NewRequest(t, "GET", "/api/v1/settings/api") req = NewRequest(t, "GET", "/api/v1/settings/api")
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &apiSettings) apiSettings := DecodeJSON(t, resp, &api.GeneralAPISettings{})
assert.Equal(t, &api.GeneralAPISettings{ assert.Equal(t, &api.GeneralAPISettings{
MaxResponseItems: setting.API.MaxResponseItems, MaxResponseItems: setting.API.MaxResponseItems,
DefaultPagingNum: setting.API.DefaultPagingNum, DefaultPagingNum: setting.API.DefaultPagingNum,
@@ -38,11 +36,10 @@ func TestAPIExposedSettings(t *testing.T) {
DefaultMaxResponseSize: setting.API.DefaultMaxResponseSize, DefaultMaxResponseSize: setting.API.DefaultMaxResponseSize,
}, apiSettings) }, apiSettings)
repo := new(api.GeneralRepoSettings)
req = NewRequest(t, "GET", "/api/v1/settings/repository") req = NewRequest(t, "GET", "/api/v1/settings/repository")
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &repo) repo := DecodeJSON(t, resp, &api.GeneralRepoSettings{})
assert.Equal(t, &api.GeneralRepoSettings{ assert.Equal(t, &api.GeneralRepoSettings{
MirrorsDisabled: !setting.Mirror.Enabled, MirrorsDisabled: !setting.Mirror.Enabled,
HTTPGitDisabled: setting.Repository.DisableHTTPGit, HTTPGitDisabled: setting.Repository.DisableHTTPGit,
@@ -51,11 +48,10 @@ func TestAPIExposedSettings(t *testing.T) {
LFSDisabled: !setting.LFS.StartServer, LFSDisabled: !setting.LFS.StartServer,
}, repo) }, repo)
attachment := new(api.GeneralAttachmentSettings)
req = NewRequest(t, "GET", "/api/v1/settings/attachment") req = NewRequest(t, "GET", "/api/v1/settings/attachment")
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &attachment) attachment := DecodeJSON(t, resp, &api.GeneralAttachmentSettings{})
assert.Equal(t, &api.GeneralAttachmentSettings{ assert.Equal(t, &api.GeneralAttachmentSettings{
Enabled: setting.Attachment.Enabled, Enabled: setting.Attachment.Enabled,
AllowedTypes: setting.Attachment.AllowedTypes, AllowedTypes: setting.Attachment.AllowedTypes,

View File

@@ -37,8 +37,7 @@ func TestAPITeam(t *testing.T) {
AddTokenAuth(token) AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var apiTeam api.Team apiTeam := DecodeJSON(t, resp, &api.Team{})
DecodeJSON(t, resp, &apiTeam)
assert.Equal(t, team.ID, apiTeam.ID) assert.Equal(t, team.ID, apiTeam.ID)
assert.Equal(t, team.Name, apiTeam.Name) assert.Equal(t, team.Name, apiTeam.Name)
assert.Equal(t, convert.ToOrganization(t.Context(), org), apiTeam.Organization) assert.Equal(t, convert.ToOrganization(t.Context(), org), apiTeam.Organization)
@@ -74,9 +73,8 @@ func TestAPITeam(t *testing.T) {
req = NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/orgs/%s/teams", org.Name), teamToCreate). req = NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/orgs/%s/teams", org.Name), teamToCreate).
AddTokenAuth(token) AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusCreated) resp = MakeRequest(t, req, http.StatusCreated)
apiTeam = api.Team{} apiTeam = DecodeJSON(t, resp, &api.Team{})
DecodeJSON(t, resp, &apiTeam) checkTeamResponse(t, "CreateTeam1", apiTeam, teamToCreate.Name, teamToCreate.Description, teamToCreate.IncludesAllRepositories,
checkTeamResponse(t, "CreateTeam1", &apiTeam, teamToCreate.Name, teamToCreate.Description, teamToCreate.IncludesAllRepositories,
"none", teamToCreate.Units, nil) "none", teamToCreate.Units, nil)
checkTeamBean(t, apiTeam.ID, teamToCreate.Name, teamToCreate.Description, teamToCreate.IncludesAllRepositories, checkTeamBean(t, apiTeam.ID, teamToCreate.Name, teamToCreate.Description, teamToCreate.IncludesAllRepositories,
"none", teamToCreate.Units, nil) "none", teamToCreate.Units, nil)
@@ -96,9 +94,8 @@ func TestAPITeam(t *testing.T) {
req = NewRequestWithJSON(t, "PATCH", fmt.Sprintf("/api/v1/teams/%d", teamID), teamToEdit). req = NewRequestWithJSON(t, "PATCH", fmt.Sprintf("/api/v1/teams/%d", teamID), teamToEdit).
AddTokenAuth(token) AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
apiTeam = api.Team{} apiTeam = DecodeJSON(t, resp, &api.Team{})
DecodeJSON(t, resp, &apiTeam) checkTeamResponse(t, "EditTeam1", apiTeam, teamToEdit.Name, *teamToEdit.Description, *teamToEdit.IncludesAllRepositories,
checkTeamResponse(t, "EditTeam1", &apiTeam, teamToEdit.Name, *teamToEdit.Description, *teamToEdit.IncludesAllRepositories,
teamToEdit.Permission, unit.AllUnitKeyNames(), nil) teamToEdit.Permission, unit.AllUnitKeyNames(), nil)
checkTeamBean(t, apiTeam.ID, teamToEdit.Name, *teamToEdit.Description, *teamToEdit.IncludesAllRepositories, checkTeamBean(t, apiTeam.ID, teamToEdit.Name, *teamToEdit.Description, *teamToEdit.IncludesAllRepositories,
teamToEdit.Permission, unit.AllUnitKeyNames(), nil) teamToEdit.Permission, unit.AllUnitKeyNames(), nil)
@@ -109,9 +106,8 @@ func TestAPITeam(t *testing.T) {
req = NewRequestWithJSON(t, "PATCH", fmt.Sprintf("/api/v1/teams/%d", teamID), teamToEditDesc). req = NewRequestWithJSON(t, "PATCH", fmt.Sprintf("/api/v1/teams/%d", teamID), teamToEditDesc).
AddTokenAuth(token) AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
apiTeam = api.Team{} apiTeam = DecodeJSON(t, resp, &api.Team{})
DecodeJSON(t, resp, &apiTeam) checkTeamResponse(t, "EditTeam1_DescOnly", apiTeam, teamToEdit.Name, *teamToEditDesc.Description, *teamToEdit.IncludesAllRepositories,
checkTeamResponse(t, "EditTeam1_DescOnly", &apiTeam, teamToEdit.Name, *teamToEditDesc.Description, *teamToEdit.IncludesAllRepositories,
teamToEdit.Permission, unit.AllUnitKeyNames(), nil) teamToEdit.Permission, unit.AllUnitKeyNames(), nil)
checkTeamBean(t, apiTeam.ID, teamToEdit.Name, *teamToEditDesc.Description, *teamToEdit.IncludesAllRepositories, checkTeamBean(t, apiTeam.ID, teamToEdit.Name, *teamToEditDesc.Description, *teamToEdit.IncludesAllRepositories,
teamToEdit.Permission, unit.AllUnitKeyNames(), nil) teamToEdit.Permission, unit.AllUnitKeyNames(), nil)
@@ -122,9 +118,8 @@ func TestAPITeam(t *testing.T) {
req = NewRequestf(t, "GET", "/api/v1/teams/%d", teamID). req = NewRequestf(t, "GET", "/api/v1/teams/%d", teamID).
AddTokenAuth(token) AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
apiTeam = api.Team{} apiTeam = DecodeJSON(t, resp, &api.Team{})
DecodeJSON(t, resp, &apiTeam) checkTeamResponse(t, "ReadTeam1", apiTeam, teamRead.Name, *teamToEditDesc.Description, teamRead.IncludesAllRepositories,
checkTeamResponse(t, "ReadTeam1", &apiTeam, teamRead.Name, *teamToEditDesc.Description, teamRead.IncludesAllRepositories,
teamRead.AccessMode.ToString(), teamRead.GetUnitNames(), teamRead.GetUnitsMap()) teamRead.AccessMode.ToString(), teamRead.GetUnitNames(), teamRead.GetUnitsMap())
// Delete team. // Delete team.
@@ -145,9 +140,8 @@ func TestAPITeam(t *testing.T) {
req = NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/orgs/%s/teams", org.Name), teamToCreate). req = NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/orgs/%s/teams", org.Name), teamToCreate).
AddTokenAuth(token) AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusCreated) resp = MakeRequest(t, req, http.StatusCreated)
apiTeam = api.Team{} apiTeam = DecodeJSON(t, resp, &api.Team{})
DecodeJSON(t, resp, &apiTeam) checkTeamResponse(t, "CreateTeam2", apiTeam, teamToCreate.Name, teamToCreate.Description, teamToCreate.IncludesAllRepositories,
checkTeamResponse(t, "CreateTeam2", &apiTeam, teamToCreate.Name, teamToCreate.Description, teamToCreate.IncludesAllRepositories,
"none", nil, teamToCreate.UnitsMap) "none", nil, teamToCreate.UnitsMap)
checkTeamBean(t, apiTeam.ID, teamToCreate.Name, teamToCreate.Description, teamToCreate.IncludesAllRepositories, checkTeamBean(t, apiTeam.ID, teamToCreate.Name, teamToCreate.Description, teamToCreate.IncludesAllRepositories,
"none", nil, teamToCreate.UnitsMap) "none", nil, teamToCreate.UnitsMap)
@@ -167,9 +161,8 @@ func TestAPITeam(t *testing.T) {
req = NewRequestWithJSON(t, "PATCH", fmt.Sprintf("/api/v1/teams/%d", teamID), teamToEdit). req = NewRequestWithJSON(t, "PATCH", fmt.Sprintf("/api/v1/teams/%d", teamID), teamToEdit).
AddTokenAuth(token) AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
apiTeam = api.Team{} apiTeam = DecodeJSON(t, resp, &api.Team{})
DecodeJSON(t, resp, &apiTeam) checkTeamResponse(t, "EditTeam2", apiTeam, teamToEdit.Name, *teamToEdit.Description, *teamToEdit.IncludesAllRepositories,
checkTeamResponse(t, "EditTeam2", &apiTeam, teamToEdit.Name, *teamToEdit.Description, *teamToEdit.IncludesAllRepositories,
"none", nil, teamToEdit.UnitsMap) "none", nil, teamToEdit.UnitsMap)
checkTeamBean(t, apiTeam.ID, teamToEdit.Name, *teamToEdit.Description, *teamToEdit.IncludesAllRepositories, checkTeamBean(t, apiTeam.ID, teamToEdit.Name, *teamToEdit.Description, *teamToEdit.IncludesAllRepositories,
"none", nil, teamToEdit.UnitsMap) "none", nil, teamToEdit.UnitsMap)
@@ -180,9 +173,8 @@ func TestAPITeam(t *testing.T) {
req = NewRequestWithJSON(t, "PATCH", fmt.Sprintf("/api/v1/teams/%d", teamID), teamToEditDesc). req = NewRequestWithJSON(t, "PATCH", fmt.Sprintf("/api/v1/teams/%d", teamID), teamToEditDesc).
AddTokenAuth(token) AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
apiTeam = api.Team{} apiTeam = DecodeJSON(t, resp, &api.Team{})
DecodeJSON(t, resp, &apiTeam) checkTeamResponse(t, "EditTeam2_DescOnly", apiTeam, teamToEdit.Name, *teamToEditDesc.Description, *teamToEdit.IncludesAllRepositories,
checkTeamResponse(t, "EditTeam2_DescOnly", &apiTeam, teamToEdit.Name, *teamToEditDesc.Description, *teamToEdit.IncludesAllRepositories,
"none", nil, teamToEdit.UnitsMap) "none", nil, teamToEdit.UnitsMap)
checkTeamBean(t, apiTeam.ID, teamToEdit.Name, *teamToEditDesc.Description, *teamToEdit.IncludesAllRepositories, checkTeamBean(t, apiTeam.ID, teamToEdit.Name, *teamToEditDesc.Description, *teamToEdit.IncludesAllRepositories,
"none", nil, teamToEdit.UnitsMap) "none", nil, teamToEdit.UnitsMap)
@@ -192,10 +184,9 @@ func TestAPITeam(t *testing.T) {
req = NewRequestf(t, "GET", "/api/v1/teams/%d", teamID). req = NewRequestf(t, "GET", "/api/v1/teams/%d", teamID).
AddTokenAuth(token) AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
apiTeam = api.Team{} apiTeam = DecodeJSON(t, resp, &api.Team{})
DecodeJSON(t, resp, &apiTeam)
assert.NoError(t, teamRead.LoadUnits(t.Context())) assert.NoError(t, teamRead.LoadUnits(t.Context()))
checkTeamResponse(t, "ReadTeam2", &apiTeam, teamRead.Name, *teamToEditDesc.Description, teamRead.IncludesAllRepositories, checkTeamResponse(t, "ReadTeam2", apiTeam, teamRead.Name, *teamToEditDesc.Description, teamRead.IncludesAllRepositories,
teamRead.AccessMode.ToString(), teamRead.GetUnitNames(), teamRead.GetUnitsMap()) teamRead.AccessMode.ToString(), teamRead.GetUnitNames(), teamRead.GetUnitsMap())
// Delete team. // Delete team.
@@ -214,8 +205,7 @@ func TestAPITeam(t *testing.T) {
req = NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/orgs/%s/teams", org.Name), teamToCreate). req = NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/orgs/%s/teams", org.Name), teamToCreate).
AddTokenAuth(token) AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusCreated) resp = MakeRequest(t, req, http.StatusCreated)
apiTeam = api.Team{} apiTeam = DecodeJSON(t, resp, &api.Team{})
DecodeJSON(t, resp, &apiTeam)
for _, ut := range unit.AllRepoUnitTypes { for _, ut := range unit.AllRepoUnitTypes {
up := perm.AccessModeAdmin up := perm.AccessModeAdmin
if ut == unit.TypeExternalTracker || ut == unit.TypeExternalWiki { if ut == unit.TypeExternalTracker || ut == unit.TypeExternalWiki {
@@ -273,13 +263,11 @@ func TestAPITeamSearch(t *testing.T) {
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}) user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2})
org := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 17}) org := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 17})
var results TeamSearchResults
token := getUserToken(t, user.Name, auth_model.AccessTokenScopeReadOrganization) token := getUserToken(t, user.Name, auth_model.AccessTokenScopeReadOrganization)
req := NewRequestf(t, "GET", "/api/v1/orgs/%s/teams/search?q=%s", org.Name, "_team"). req := NewRequestf(t, "GET", "/api/v1/orgs/%s/teams/search?q=%s", org.Name, "_team").
AddTokenAuth(token) AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &results) results := DecodeJSON(t, resp, &TeamSearchResults{})
assert.NotEmpty(t, results.Data) assert.NotEmpty(t, results.Data)
assert.Len(t, results.Data, 1) assert.Len(t, results.Data, 1)
assert.Equal(t, "test_team", results.Data[0].Name) assert.Equal(t, "test_team", results.Data[0].Name)
@@ -300,13 +288,11 @@ func TestAPIGetTeamRepo(t *testing.T) {
teamRepo := unittest.AssertExistsAndLoadBean(t, &repo.Repository{ID: 24}) teamRepo := unittest.AssertExistsAndLoadBean(t, &repo.Repository{ID: 24})
team := unittest.AssertExistsAndLoadBean(t, &organization.Team{ID: 5}) team := unittest.AssertExistsAndLoadBean(t, &organization.Team{ID: 5})
var results api.Repository
token := getUserToken(t, user.Name, auth_model.AccessTokenScopeReadOrganization) token := getUserToken(t, user.Name, auth_model.AccessTokenScopeReadOrganization)
req := NewRequestf(t, "GET", "/api/v1/teams/%d/repos/%s/", team.ID, teamRepo.FullName()). req := NewRequestf(t, "GET", "/api/v1/teams/%d/repos/%s/", team.ID, teamRepo.FullName()).
AddTokenAuth(token) AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &results) DecodeJSON(t, resp, &api.Repository{})
assert.Equal(t, "big_test_private_4", teamRepo.Name) assert.Equal(t, "big_test_private_4", teamRepo.Name)
// no access if not organization member // no access if not organization member

View File

@@ -544,8 +544,7 @@ func createAPIAccessTokenWithoutCleanUp(t *testing.T, tokenName string, user *us
AddBasicAuth(user.Name) AddBasicAuth(user.Name)
resp := MakeRequest(t, req, http.StatusCreated) resp := MakeRequest(t, req, http.StatusCreated)
var newAccessToken api.AccessToken newAccessToken := DecodeJSON(t, resp, &api.AccessToken{})
DecodeJSON(t, resp, &newAccessToken)
unittest.AssertExistsAndLoadBean(t, &auth_model.AccessToken{ unittest.AssertExistsAndLoadBean(t, &auth_model.AccessToken{
ID: newAccessToken.ID, ID: newAccessToken.ID,
Name: newAccessToken.Name, Name: newAccessToken.Name,
@@ -553,7 +552,7 @@ func createAPIAccessTokenWithoutCleanUp(t *testing.T, tokenName string, user *us
UID: user.ID, UID: user.ID,
}) })
return newAccessToken return *newAccessToken
} }
// deleteAPIAccessToken deletes an API access token and assert that deletion succeeded. // deleteAPIAccessToken deletes an API access token and assert that deletion succeeded.

View File

@@ -76,8 +76,7 @@ func TestBasicAuthWithWebAuthn(t *testing.T) {
type tokenResponse struct { type tokenResponse struct {
Token string `json:"token"` Token string `json:"token"`
} }
var tokenParsed tokenResponse tokenParsed := DecodeJSON(t, resp, &tokenResponse{})
DecodeJSON(t, resp, &tokenParsed)
assert.NotEmpty(t, tokenParsed.Token) assert.NotEmpty(t, tokenParsed.Token)
// user32 has webauthn enrolled, he can't request API with basic auth // user32 has webauthn enrolled, he can't request API with basic auth
@@ -91,8 +90,7 @@ func TestBasicAuthWithWebAuthn(t *testing.T) {
type userResponse struct { type userResponse struct {
Message string `json:"message"` Message string `json:"message"`
} }
var userParsed userResponse userParsed := DecodeJSON(t, resp, &userResponse{})
DecodeJSON(t, resp, &userParsed)
assert.Equal(t, "basic authorization is not allowed while WebAuthn enrolled", userParsed.Message) assert.Equal(t, "basic authorization is not allowed while WebAuthn enrolled", userParsed.Message)
// user32 has webauthn enrolled, he can't request git protocol with basic auth // user32 has webauthn enrolled, he can't request git protocol with basic auth

View File

@@ -116,8 +116,7 @@ func TestBlockUser(t *testing.T) {
AddTokenAuth(blockerToken) AddTokenAuth(blockerToken)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var users []api.User users := DecodeJSON(t, resp, []api.User{})
DecodeJSON(t, resp, &users)
assert.Len(t, users, 1) assert.Len(t, users, 1)
assert.Equal(t, blockeeName, users[0].UserName) assert.Equal(t, blockeeName, users[0].UserName)
@@ -143,8 +142,7 @@ func TestBlockUser(t *testing.T) {
AddTokenAuth(blockerToken) AddTokenAuth(blockerToken)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var users []api.User users := DecodeJSON(t, resp, []api.User{})
DecodeJSON(t, resp, &users)
assert.Empty(t, users) assert.Empty(t, users)
}) })
@@ -206,8 +204,7 @@ func TestBlockUser(t *testing.T) {
AddTokenAuth(doerToken) AddTokenAuth(doerToken)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var users []api.User users := DecodeJSON(t, resp, []api.User{})
DecodeJSON(t, resp, &users)
assert.Len(t, users, 1) assert.Len(t, users, 1)
assert.Equal(t, blockeeName, users[0].UserName) assert.Equal(t, blockeeName, users[0].UserName)
@@ -233,8 +230,7 @@ func TestBlockUser(t *testing.T) {
AddTokenAuth(doerToken) AddTokenAuth(doerToken)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var users []api.User users := DecodeJSON(t, resp, []api.User{})
DecodeJSON(t, resp, &users)
assert.Empty(t, users) assert.Empty(t, users)
}) })

View File

@@ -25,8 +25,7 @@ func TestAPIListEmails(t *testing.T) {
AddTokenAuth(token) AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var emails []*api.Email emails := DecodeJSON(t, resp, []*api.Email{})
DecodeJSON(t, resp, &emails)
assert.Equal(t, []*api.Email{ assert.Equal(t, []*api.Email{
{ {
@@ -64,8 +63,7 @@ func TestAPIAddEmail(t *testing.T) {
AddTokenAuth(token) AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusCreated) resp := MakeRequest(t, req, http.StatusCreated)
var emails []*api.Email emails := DecodeJSON(t, resp, []*api.Email{})
DecodeJSON(t, resp, &emails)
assert.Equal(t, []*api.Email{ assert.Equal(t, []*api.Email{
{ {
Email: "user2@example.com", Email: "user2@example.com",
@@ -117,8 +115,7 @@ func TestAPIDeleteEmail(t *testing.T) {
AddTokenAuth(token) AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var emails []*api.Email emails := DecodeJSON(t, resp, []*api.Email{})
DecodeJSON(t, resp, &emails)
assert.Equal(t, []*api.Email{ assert.Equal(t, []*api.Email{
{ {
Email: "user2@example.com", Email: "user2@example.com",

View File

@@ -50,8 +50,7 @@ func TestAPIFollow(t *testing.T) {
AddTokenAuth(token2) AddTokenAuth(token2)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var users []api.User users := DecodeJSON(t, resp, []api.User{})
DecodeJSON(t, resp, &users)
assert.Len(t, users, 1) assert.Len(t, users, 1)
assert.Equal(t, user1, users[0].UserName) assert.Equal(t, user1, users[0].UserName)
}) })
@@ -63,8 +62,7 @@ func TestAPIFollow(t *testing.T) {
AddTokenAuth(token2) AddTokenAuth(token2)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var users []api.User users := DecodeJSON(t, resp, []api.User{})
DecodeJSON(t, resp, &users)
assert.Len(t, users, 1) assert.Len(t, users, 1)
assert.Equal(t, user1, users[0].UserName) assert.Equal(t, user1, users[0].UserName)
}) })
@@ -76,8 +74,7 @@ func TestAPIFollow(t *testing.T) {
AddTokenAuth(token1) AddTokenAuth(token1)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var users []api.User users := DecodeJSON(t, resp, []api.User{})
DecodeJSON(t, resp, &users)
assert.Len(t, users, 1) assert.Len(t, users, 1)
assert.Equal(t, user2, users[0].UserName) assert.Equal(t, user2, users[0].UserName)
}) })
@@ -89,8 +86,7 @@ func TestAPIFollow(t *testing.T) {
AddTokenAuth(token1) AddTokenAuth(token1)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var users []api.User users := DecodeJSON(t, resp, []api.User{})
DecodeJSON(t, resp, &users)
assert.Len(t, users, 1) assert.Len(t, users, 1)
assert.Equal(t, user2, users[0].UserName) assert.Equal(t, user2, users[0].UserName)
}) })

View File

@@ -30,8 +30,7 @@ func TestUserHeatmap(t *testing.T) {
req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/users/%s/heatmap", normalUsername)). req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/users/%s/heatmap", normalUsername)).
AddTokenAuth(token) AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var heatmap []*activities_model.UserHeatmapData heatmap := DecodeJSON(t, resp, []*activities_model.UserHeatmapData{})
DecodeJSON(t, resp, &heatmap)
var dummyheatmap []*activities_model.UserHeatmapData var dummyheatmap []*activities_model.UserHeatmapData
dummyheatmap = append(dummyheatmap, &activities_model.UserHeatmapData{Timestamp: 1603227600, Contributions: 1}) dummyheatmap = append(dummyheatmap, &activities_model.UserHeatmapData{Timestamp: 1603227600, Contributions: 1})

View File

@@ -34,8 +34,7 @@ func TestAPIUserInfo(t *testing.T) {
AddTokenAuth(token) AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var u api.User u := DecodeJSON(t, resp, &api.User{})
DecodeJSON(t, resp, &u)
assert.Equal(t, user2, u.UserName) assert.Equal(t, user2, u.UserName)
req = NewRequest(t, "GET", "/api/v1/users/"+user2) req = NewRequest(t, "GET", "/api/v1/users/"+user2)
@@ -44,14 +43,14 @@ func TestAPIUserInfo(t *testing.T) {
// test if the placaholder Mail is returned if a User is not logged in // test if the placaholder Mail is returned if a User is not logged in
req = NewRequest(t, "GET", "/api/v1/users/"+org3.Name) req = NewRequest(t, "GET", "/api/v1/users/"+org3.Name)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &u) u = DecodeJSON(t, resp, &api.User{})
assert.Equal(t, org3.GetPlaceholderEmail(), u.Email) assert.Equal(t, org3.GetPlaceholderEmail(), u.Email)
// Test if the correct Mail is returned if a User is logged in // Test if the correct Mail is returned if a User is logged in
req = NewRequest(t, "GET", "/api/v1/users/"+org3.Name). req = NewRequest(t, "GET", "/api/v1/users/"+org3.Name).
AddTokenAuth(token) AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &u) u = DecodeJSON(t, resp, &api.User{})
assert.Equal(t, org3.GetEmail(), u.Email) assert.Equal(t, org3.GetEmail(), u.Email)
}) })
@@ -62,8 +61,7 @@ func TestAPIUserInfo(t *testing.T) {
AddTokenAuth(token) AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var u api.User u := DecodeJSON(t, resp, &api.User{})
DecodeJSON(t, resp, &u)
assert.Equal(t, user, u.UserName) assert.Equal(t, user, u.UserName)
}) })
} }

View File

@@ -50,8 +50,7 @@ func sampleTest(t *testing.T, auoptc apiUserOrgPermTestCase) {
AddTokenAuth(token) AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var apiOP api.OrganizationPermissions apiOP := DecodeJSON(t, resp, &api.OrganizationPermissions{})
DecodeJSON(t, resp, &apiOP)
assert.Equal(t, auoptc.ExpectedOrganizationPermissions.IsOwner, apiOP.IsOwner) assert.Equal(t, auoptc.ExpectedOrganizationPermissions.IsOwner, apiOP.IsOwner)
assert.Equal(t, auoptc.ExpectedOrganizationPermissions.IsAdmin, apiOP.IsAdmin) assert.Equal(t, auoptc.ExpectedOrganizationPermissions.IsAdmin, apiOP.IsAdmin)
assert.Equal(t, auoptc.ExpectedOrganizationPermissions.CanWrite, apiOP.CanWrite) assert.Equal(t, auoptc.ExpectedOrganizationPermissions.CanWrite, apiOP.CanWrite)
@@ -142,8 +141,7 @@ func testUnknownUser(t *testing.T) {
AddTokenAuth(token) AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusNotFound) resp := MakeRequest(t, req, http.StatusNotFound)
var apiError api.APIError apiError := DecodeJSON(t, resp, &api.APIError{})
DecodeJSON(t, resp, &apiError)
assert.Equal(t, "user redirect does not exist [name: unknown]", apiError.Message) assert.Equal(t, "user redirect does not exist [name: unknown]", apiError.Message)
} }
@@ -154,8 +152,7 @@ func testUnknownOrganization(t *testing.T) {
req := NewRequest(t, "GET", "/api/v1/users/user1/orgs/unknown/permissions"). req := NewRequest(t, "GET", "/api/v1/users/user1/orgs/unknown/permissions").
AddTokenAuth(token) AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusNotFound) resp := MakeRequest(t, req, http.StatusNotFound)
var apiError api.APIError apiError := DecodeJSON(t, resp, &api.APIError{})
DecodeJSON(t, resp, &apiError)
assert.Equal(t, "GetUserByName", apiError.Message) assert.Equal(t, "GetUserByName", apiError.Message)
} }
@@ -174,9 +171,8 @@ func testHiddenMemberPermissionsForbidden(t *testing.T) {
AddTokenAuth(adminToken) AddTokenAuth(adminToken)
resp := MakeRequest(t, adminReq, http.StatusOK) resp := MakeRequest(t, adminReq, http.StatusOK)
var apiOP api.OrganizationPermissions apiOP := DecodeJSON(t, resp, &api.OrganizationPermissions{})
DecodeJSON(t, resp, &apiOP) assert.Equal(t, &api.OrganizationPermissions{
assert.Equal(t, api.OrganizationPermissions{
IsOwner: false, IsOwner: false,
IsAdmin: false, IsAdmin: false,
CanWrite: true, CanWrite: true,

View File

@@ -89,7 +89,7 @@ func getUserOrgs(t *testing.T, userDoer, userCheck string) (orgs []*api.Organiza
req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/users/%s/orgs", userCheck)). req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/users/%s/orgs", userCheck)).
AddTokenAuth(token) AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &orgs) orgs = DecodeJSON(t, resp, []*api.Organization{})
return orgs return orgs
} }
@@ -110,8 +110,7 @@ func TestMyOrgs(t *testing.T) {
req = NewRequest(t, "GET", "/api/v1/user/orgs"). req = NewRequest(t, "GET", "/api/v1/user/orgs").
AddTokenAuth(token) AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var orgs []*api.Organization orgs := DecodeJSON(t, resp, []*api.Organization{})
DecodeJSON(t, resp, &orgs)
org3 := unittest.AssertExistsAndLoadBean(t, &user_model.User{Name: "org3"}) org3 := unittest.AssertExistsAndLoadBean(t, &user_model.User{Name: "org3"})
org17 := unittest.AssertExistsAndLoadBean(t, &user_model.User{Name: "org17"}) org17 := unittest.AssertExistsAndLoadBean(t, &user_model.User{Name: "org17"})
org35 := unittest.AssertExistsAndLoadBean(t, &user_model.User{Name: "private_org35"}) org35 := unittest.AssertExistsAndLoadBean(t, &user_model.User{Name: "private_org35"})

View File

@@ -31,8 +31,7 @@ func TestAPIUserSearchLoggedIn(t *testing.T) {
AddTokenAuth(token) AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var results SearchResults results := DecodeJSON(t, resp, &SearchResults{})
DecodeJSON(t, resp, &results)
assert.NotEmpty(t, results.Data) assert.NotEmpty(t, results.Data)
for _, user := range results.Data { for _, user := range results.Data {
assert.Contains(t, user.UserName, query) assert.Contains(t, user.UserName, query)
@@ -43,8 +42,7 @@ func TestAPIUserSearchLoggedIn(t *testing.T) {
req = NewRequestf(t, "GET", "/api/v1/users/search?q=%s", query). req = NewRequestf(t, "GET", "/api/v1/users/search?q=%s", query).
AddTokenAuth(publicToken) AddTokenAuth(publicToken)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
results = SearchResults{} results = DecodeJSON(t, resp, &SearchResults{})
DecodeJSON(t, resp, &results)
assert.NotEmpty(t, results.Data) assert.NotEmpty(t, results.Data)
for _, user := range results.Data { for _, user := range results.Data {
assert.Contains(t, user.UserName, query) assert.Contains(t, user.UserName, query)
@@ -59,8 +57,7 @@ func TestAPIUserSearchNotLoggedIn(t *testing.T) {
req := NewRequestf(t, "GET", "/api/v1/users/search?q=%s", query) req := NewRequestf(t, "GET", "/api/v1/users/search?q=%s", query)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var results SearchResults results := DecodeJSON(t, resp, &SearchResults{})
DecodeJSON(t, resp, &results)
assert.NotEmpty(t, results.Data) assert.NotEmpty(t, results.Data)
var modelUser *user_model.User var modelUser *user_model.User
for _, user := range results.Data { for _, user := range results.Data {
@@ -80,8 +77,7 @@ func TestAPIUserSearchSystemUsers(t *testing.T) {
req := NewRequestf(t, "GET", "/api/v1/users/search?uid=%d", systemUser.ID) req := NewRequestf(t, "GET", "/api/v1/users/search?uid=%d", systemUser.ID)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var results SearchResults results := DecodeJSON(t, resp, &SearchResults{})
DecodeJSON(t, resp, &results)
assert.NotEmpty(t, results.Data) assert.NotEmpty(t, results.Data)
if assert.Len(t, results.Data, 1) { if assert.Len(t, results.Data, 1) {
user := results.Data[0] user := results.Data[0]
@@ -102,8 +98,7 @@ func TestAPIUserSearchAdminLoggedInUserHidden(t *testing.T) {
AddTokenAuth(token) AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var results SearchResults results := DecodeJSON(t, resp, &SearchResults{})
DecodeJSON(t, resp, &results)
assert.NotEmpty(t, results.Data) assert.NotEmpty(t, results.Data)
for _, user := range results.Data { for _, user := range results.Data {
assert.Contains(t, user.UserName, query) assert.Contains(t, user.UserName, query)
@@ -118,8 +113,7 @@ func TestAPIUserSearchNotLoggedInUserHidden(t *testing.T) {
req := NewRequestf(t, "GET", "/api/v1/users/search?q=%s", query) req := NewRequestf(t, "GET", "/api/v1/users/search?q=%s", query)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var results SearchResults results := DecodeJSON(t, resp, &SearchResults{})
DecodeJSON(t, resp, &results)
assert.Empty(t, results.Data) assert.Empty(t, results.Data)
} }
@@ -135,15 +129,14 @@ func TestAPIUserSearchByEmail(t *testing.T) {
AddTokenAuth(token) AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var results SearchResults results := DecodeJSON(t, resp, &SearchResults{})
DecodeJSON(t, resp, &results)
assert.Len(t, results.Data, 1) assert.Len(t, results.Data, 1)
assert.Equal(t, query, results.Data[0].Email) assert.Equal(t, query, results.Data[0].Email)
// no login user can not search user with private email // no login user can not search user with private email
req = NewRequestf(t, "GET", "/api/v1/users/search?q=%s", query) req = NewRequestf(t, "GET", "/api/v1/users/search?q=%s", query)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &results) results = DecodeJSON(t, resp, &SearchResults{})
assert.Empty(t, results.Data) assert.Empty(t, results.Data)
// user can search self with private email // user can search self with private email
@@ -154,7 +147,7 @@ func TestAPIUserSearchByEmail(t *testing.T) {
AddTokenAuth(token) AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusOK) resp = MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &results) results = DecodeJSON(t, resp, &SearchResults{})
assert.Len(t, results.Data, 1) assert.Len(t, results.Data, 1)
assert.Equal(t, query, results.Data[0].Email) assert.Equal(t, query, results.Data[0].Email)
} }

View File

@@ -52,8 +52,7 @@ func TestAPIStar(t *testing.T) {
assert.Equal(t, "1", resp.Header().Get("X-Total-Count")) assert.Equal(t, "1", resp.Header().Get("X-Total-Count"))
var repos []api.Repository repos := DecodeJSON(t, resp, []api.Repository{})
DecodeJSON(t, resp, &repos)
assert.Len(t, repos, 1) assert.Len(t, repos, 1)
assert.Equal(t, repo, repos[0].FullName) assert.Equal(t, repo, repos[0].FullName)
}) })
@@ -67,8 +66,7 @@ func TestAPIStar(t *testing.T) {
assert.Equal(t, "1", resp.Header().Get("X-Total-Count")) assert.Equal(t, "1", resp.Header().Get("X-Total-Count"))
var repos []api.Repository repos := DecodeJSON(t, resp, []api.Repository{})
DecodeJSON(t, resp, &repos)
assert.Len(t, repos, 1) assert.Len(t, repos, 1)
assert.Equal(t, repo, repos[0].FullName) assert.Equal(t, repo, repos[0].FullName)
}) })

View File

@@ -50,8 +50,7 @@ func TestAPIWatch(t *testing.T) {
assert.Equal(t, "1", resp.Header().Get("X-Total-Count")) assert.Equal(t, "1", resp.Header().Get("X-Total-Count"))
var repos []api.Repository repos := DecodeJSON(t, resp, []api.Repository{})
DecodeJSON(t, resp, &repos)
assert.Len(t, repos, 1) assert.Len(t, repos, 1)
assert.Equal(t, repo, repos[0].FullName) assert.Equal(t, repo, repos[0].FullName)
}) })
@@ -65,8 +64,7 @@ func TestAPIWatch(t *testing.T) {
assert.Equal(t, "1", resp.Header().Get("X-Total-Count")) assert.Equal(t, "1", resp.Header().Get("X-Total-Count"))
var repos []api.Repository repos := DecodeJSON(t, resp, []api.Repository{})
DecodeJSON(t, resp, &repos)
assert.Len(t, repos, 1) assert.Len(t, repos, 1)
assert.Equal(t, repo, repos[0].FullName) assert.Equal(t, repo, repos[0].FullName)
}) })

View File

@@ -70,8 +70,7 @@ func TestAPIListWikiPages(t *testing.T) {
req := NewRequest(t, "GET", urlStr) req := NewRequest(t, "GET", urlStr)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var meta []*api.WikiPageMetaData meta := DecodeJSON(t, resp, []*api.WikiPageMetaData{})
DecodeJSON(t, resp, &meta)
dummymeta := []*api.WikiPageMetaData{ dummymeta := []*api.WikiPageMetaData{
{ {

View File

@@ -60,8 +60,7 @@ func testCreateAttachment(t *testing.T, session *TestSession, repoURL, issueOrRe
if expectedStatus != http.StatusOK { if expectedStatus != http.StatusOK {
return "" return ""
} }
var obj map[string]string obj := DecodeJSON(t, resp, map[string]string{})
DecodeJSON(t, resp, &obj)
return obj["uuid"] return obj["uuid"]
} }

View File

@@ -227,8 +227,7 @@ func testEditorWebGitCommitEmail(t *testing.T) {
req.Header.Add("Content-Type", uploadForm.FormDataContentType()) req.Header.Add("Content-Type", uploadForm.FormDataContentType())
resp := session.MakeRequest(t, req, http.StatusOK) resp := session.MakeRequest(t, req, http.StatusOK)
respMap := map[string]string{} respMap := DecodeJSON(t, resp, map[string]string{})
DecodeJSON(t, resp, &respMap)
return respMap["uuid"] return respMap["uuid"]
} }

View File

@@ -179,8 +179,7 @@ func TestEmptyRepoAddFileByAPI(t *testing.T) {
}).AddTokenAuth(token) }).AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusCreated) resp := MakeRequest(t, req, http.StatusCreated)
var fileResponse api.FileResponse fileResponse := DecodeJSON(t, resp, &api.FileResponse{})
DecodeJSON(t, resp, &fileResponse)
expectedHTMLURL := setting.AppURL + "user30/empty/src/branch/new_branch/new-file.txt" expectedHTMLURL := setting.AppURL + "user30/empty/src/branch/new_branch/new-file.txt"
assert.Equal(t, expectedHTMLURL, *fileResponse.Content.HTMLURL) assert.Equal(t, expectedHTMLURL, *fileResponse.Content.HTMLURL)
@@ -191,7 +190,6 @@ func TestEmptyRepoAddFileByAPI(t *testing.T) {
req = NewRequest(t, "GET", "/api/v1/repos/user30/empty"). req = NewRequest(t, "GET", "/api/v1/repos/user30/empty").
AddTokenAuth(token) AddTokenAuth(token)
resp = session.MakeRequest(t, req, http.StatusOK) resp = session.MakeRequest(t, req, http.StatusOK)
var apiRepo api.Repository apiRepo := DecodeJSON(t, resp, &api.Repository{})
DecodeJSON(t, resp, &apiRepo)
assert.Equal(t, "new_branch", apiRepo.DefaultBranch) assert.Equal(t, "new_branch", apiRepo.DefaultBranch)
} }

View File

@@ -61,14 +61,12 @@ func TestEventSourceManagerRun(t *testing.T) {
session := loginUser(t, user2.Name) session := loginUser(t, user2.Name)
token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteNotification, auth_model.AccessTokenScopeWriteRepository) token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteNotification, auth_model.AccessTokenScopeWriteRepository)
var apiNL []api.NotificationThread
// -- mark notifications as read -- // -- mark notifications as read --
req := NewRequest(t, "GET", "/api/v1/notifications?status-types=unread"). req := NewRequest(t, "GET", "/api/v1/notifications?status-types=unread").
AddTokenAuth(token) AddTokenAuth(token)
resp := session.MakeRequest(t, req, http.StatusOK) resp := session.MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &apiNL) apiNL := DecodeJSON(t, resp, []api.NotificationThread{})
assert.Len(t, apiNL, 2) assert.Len(t, apiNL, 2)
lastReadAt := "2000-01-01T00%3A50%3A01%2B00%3A00" // 946687801 <- only Notification 4 is in this filter ... lastReadAt := "2000-01-01T00%3A50%3A01%2B00%3A00" // 946687801 <- only Notification 4 is in this filter ...
@@ -79,7 +77,7 @@ func TestEventSourceManagerRun(t *testing.T) {
req = NewRequest(t, "GET", "/api/v1/notifications?status-types=unread"). req = NewRequest(t, "GET", "/api/v1/notifications?status-types=unread").
AddTokenAuth(token) AddTokenAuth(token)
resp = session.MakeRequest(t, req, http.StatusOK) resp = session.MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &apiNL) apiNL = DecodeJSON(t, resp, []api.NotificationThread{})
assert.Len(t, apiNL, 1) assert.Len(t, apiNL, 1)
assert.Eventually(t, expectNotificationCountEvent(1), 30*time.Second, 1*time.Second) assert.Eventually(t, expectNotificationCountEvent(1), 30*time.Second, 1*time.Second)

View File

@@ -28,8 +28,7 @@ func TestHeatmapEndpoints(t *testing.T) {
req := NewRequest(t, "GET", "/user2/-/heatmap") req := NewRequest(t, "GET", "/user2/-/heatmap")
resp := session.MakeRequest(t, req, http.StatusOK) resp := session.MakeRequest(t, req, http.StatusOK)
var result map[string]any result := DecodeJSON(t, resp, map[string]any{})
DecodeJSON(t, resp, &result)
assert.Contains(t, result, "heatmapData") assert.Contains(t, result, "heatmapData")
assert.Contains(t, result, "totalContributions") assert.Contains(t, result, "totalContributions")
assert.Positive(t, result["totalContributions"]) assert.Positive(t, result["totalContributions"])
@@ -40,8 +39,7 @@ func TestHeatmapEndpoints(t *testing.T) {
req := NewRequest(t, "GET", "/org/org3/dashboard/-/heatmap") req := NewRequest(t, "GET", "/org/org3/dashboard/-/heatmap")
resp := session.MakeRequest(t, req, http.StatusOK) resp := session.MakeRequest(t, req, http.StatusOK)
var result map[string]any result := DecodeJSON(t, resp, map[string]any{})
DecodeJSON(t, resp, &result)
assert.Contains(t, result, "heatmapData") assert.Contains(t, result, "heatmapData")
assert.Contains(t, result, "totalContributions") assert.Contains(t, result, "totalContributions")
}) })
@@ -51,8 +49,7 @@ func TestHeatmapEndpoints(t *testing.T) {
req := NewRequest(t, "GET", "/org/org3/dashboard/-/heatmap/team1") req := NewRequest(t, "GET", "/org/org3/dashboard/-/heatmap/team1")
resp := session.MakeRequest(t, req, http.StatusOK) resp := session.MakeRequest(t, req, http.StatusOK)
var result map[string]any result := DecodeJSON(t, resp, map[string]any{})
DecodeJSON(t, resp, &result)
assert.Contains(t, result, "heatmapData") assert.Contains(t, result, "heatmapData")
assert.Contains(t, result, "totalContributions") assert.Contains(t, result, "totalContributions")
}) })

View File

@@ -493,8 +493,7 @@ func TestSearchIssues(t *testing.T) {
link, _ := url.Parse("/issues/search") link, _ := url.Parse("/issues/search")
req := NewRequest(t, "GET", link.String()) req := NewRequest(t, "GET", link.String())
resp := session.MakeRequest(t, req, http.StatusOK) resp := session.MakeRequest(t, req, http.StatusOK)
var apiIssues []*api.Issue apiIssues := DecodeJSON(t, resp, []*api.Issue{})
DecodeJSON(t, resp, &apiIssues)
assert.Len(t, apiIssues, expectedIssueCount) assert.Len(t, apiIssues, expectedIssueCount)
since := "2000-01-01T00:50:01+00:00" // 946687801 since := "2000-01-01T00:50:01+00:00" // 946687801
@@ -505,7 +504,7 @@ func TestSearchIssues(t *testing.T) {
link.RawQuery = query.Encode() link.RawQuery = query.Encode()
req = NewRequest(t, "GET", link.String()) req = NewRequest(t, "GET", link.String())
resp = session.MakeRequest(t, req, http.StatusOK) resp = session.MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &apiIssues) apiIssues = DecodeJSON(t, resp, []*api.Issue{})
assert.Len(t, apiIssues, 11) assert.Len(t, apiIssues, 11)
query.Del("since") query.Del("since")
query.Del("before") query.Del("before")
@@ -514,14 +513,14 @@ func TestSearchIssues(t *testing.T) {
link.RawQuery = query.Encode() link.RawQuery = query.Encode()
req = NewRequest(t, "GET", link.String()) req = NewRequest(t, "GET", link.String())
resp = session.MakeRequest(t, req, http.StatusOK) resp = session.MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &apiIssues) apiIssues = DecodeJSON(t, resp, []*api.Issue{})
assert.Len(t, apiIssues, 2) assert.Len(t, apiIssues, 2)
query.Set("state", "all") query.Set("state", "all")
link.RawQuery = query.Encode() link.RawQuery = query.Encode()
req = NewRequest(t, "GET", link.String()) req = NewRequest(t, "GET", link.String())
resp = session.MakeRequest(t, req, http.StatusOK) resp = session.MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &apiIssues) apiIssues = DecodeJSON(t, resp, []*api.Issue{})
assert.Equal(t, "22", resp.Header().Get("X-Total-Count")) assert.Equal(t, "22", resp.Header().Get("X-Total-Count"))
assert.Len(t, apiIssues, 20) assert.Len(t, apiIssues, 20)
@@ -529,7 +528,7 @@ func TestSearchIssues(t *testing.T) {
link.RawQuery = query.Encode() link.RawQuery = query.Encode()
req = NewRequest(t, "GET", link.String()) req = NewRequest(t, "GET", link.String())
resp = session.MakeRequest(t, req, http.StatusOK) resp = session.MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &apiIssues) apiIssues = DecodeJSON(t, resp, []*api.Issue{})
assert.Equal(t, "22", resp.Header().Get("X-Total-Count")) assert.Equal(t, "22", resp.Header().Get("X-Total-Count"))
assert.Len(t, apiIssues, 5) assert.Len(t, apiIssues, 5)
@@ -537,42 +536,42 @@ func TestSearchIssues(t *testing.T) {
link.RawQuery = query.Encode() link.RawQuery = query.Encode()
req = NewRequest(t, "GET", link.String()) req = NewRequest(t, "GET", link.String())
resp = session.MakeRequest(t, req, http.StatusOK) resp = session.MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &apiIssues) apiIssues = DecodeJSON(t, resp, []*api.Issue{})
assert.Len(t, apiIssues, 2) assert.Len(t, apiIssues, 2)
query = url.Values{"milestones": {"milestone1"}, "state": {"all"}} query = url.Values{"milestones": {"milestone1"}, "state": {"all"}}
link.RawQuery = query.Encode() link.RawQuery = query.Encode()
req = NewRequest(t, "GET", link.String()) req = NewRequest(t, "GET", link.String())
resp = session.MakeRequest(t, req, http.StatusOK) resp = session.MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &apiIssues) apiIssues = DecodeJSON(t, resp, []*api.Issue{})
assert.Len(t, apiIssues, 1) assert.Len(t, apiIssues, 1)
query = url.Values{"milestones": {"milestone1,milestone3"}, "state": {"all"}} query = url.Values{"milestones": {"milestone1,milestone3"}, "state": {"all"}}
link.RawQuery = query.Encode() link.RawQuery = query.Encode()
req = NewRequest(t, "GET", link.String()) req = NewRequest(t, "GET", link.String())
resp = session.MakeRequest(t, req, http.StatusOK) resp = session.MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &apiIssues) apiIssues = DecodeJSON(t, resp, []*api.Issue{})
assert.Len(t, apiIssues, 2) assert.Len(t, apiIssues, 2)
query = url.Values{"owner": {"user2"}} // user query = url.Values{"owner": {"user2"}} // user
link.RawQuery = query.Encode() link.RawQuery = query.Encode()
req = NewRequest(t, "GET", link.String()) req = NewRequest(t, "GET", link.String())
resp = session.MakeRequest(t, req, http.StatusOK) resp = session.MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &apiIssues) apiIssues = DecodeJSON(t, resp, []*api.Issue{})
assert.Len(t, apiIssues, 8) assert.Len(t, apiIssues, 8)
query = url.Values{"owner": {"org3"}} // organization query = url.Values{"owner": {"org3"}} // organization
link.RawQuery = query.Encode() link.RawQuery = query.Encode()
req = NewRequest(t, "GET", link.String()) req = NewRequest(t, "GET", link.String())
resp = session.MakeRequest(t, req, http.StatusOK) resp = session.MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &apiIssues) apiIssues = DecodeJSON(t, resp, []*api.Issue{})
assert.Len(t, apiIssues, 5) assert.Len(t, apiIssues, 5)
query = url.Values{"owner": {"org3"}, "team": {"team1"}} // organization + team query = url.Values{"owner": {"org3"}, "team": {"team1"}} // organization + team
link.RawQuery = query.Encode() link.RawQuery = query.Encode()
req = NewRequest(t, "GET", link.String()) req = NewRequest(t, "GET", link.String())
resp = session.MakeRequest(t, req, http.StatusOK) resp = session.MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &apiIssues) apiIssues = DecodeJSON(t, resp, []*api.Issue{})
assert.Len(t, apiIssues, 2) assert.Len(t, apiIssues, 2)
} }
@@ -589,14 +588,14 @@ func TestSearchIssuesWithLabels(t *testing.T) {
link.RawQuery = query.Encode() link.RawQuery = query.Encode()
req := NewRequest(t, "GET", link.String()) req := NewRequest(t, "GET", link.String())
resp := session.MakeRequest(t, req, http.StatusOK) resp := session.MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &apiIssues) apiIssues = DecodeJSON(t, resp, []*api.Issue{})
assert.Len(t, apiIssues, expectedIssueCount) assert.Len(t, apiIssues, expectedIssueCount)
query.Add("labels", "label1") query.Add("labels", "label1")
link.RawQuery = query.Encode() link.RawQuery = query.Encode()
req = NewRequest(t, "GET", link.String()) req = NewRequest(t, "GET", link.String())
resp = session.MakeRequest(t, req, http.StatusOK) resp = session.MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &apiIssues) apiIssues = DecodeJSON(t, resp, []*api.Issue{})
assert.Len(t, apiIssues, 2) assert.Len(t, apiIssues, 2)
// multiple labels // multiple labels
@@ -604,7 +603,7 @@ func TestSearchIssuesWithLabels(t *testing.T) {
link.RawQuery = query.Encode() link.RawQuery = query.Encode()
req = NewRequest(t, "GET", link.String()) req = NewRequest(t, "GET", link.String())
resp = session.MakeRequest(t, req, http.StatusOK) resp = session.MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &apiIssues) apiIssues = DecodeJSON(t, resp, []*api.Issue{})
assert.Len(t, apiIssues, 2) assert.Len(t, apiIssues, 2)
// an org label // an org label
@@ -612,7 +611,7 @@ func TestSearchIssuesWithLabels(t *testing.T) {
link.RawQuery = query.Encode() link.RawQuery = query.Encode()
req = NewRequest(t, "GET", link.String()) req = NewRequest(t, "GET", link.String())
resp = session.MakeRequest(t, req, http.StatusOK) resp = session.MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &apiIssues) apiIssues = DecodeJSON(t, resp, []*api.Issue{})
assert.Len(t, apiIssues, 1) assert.Len(t, apiIssues, 1)
// org and repo label // org and repo label
@@ -621,7 +620,7 @@ func TestSearchIssuesWithLabels(t *testing.T) {
link.RawQuery = query.Encode() link.RawQuery = query.Encode()
req = NewRequest(t, "GET", link.String()) req = NewRequest(t, "GET", link.String())
resp = session.MakeRequest(t, req, http.StatusOK) resp = session.MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &apiIssues) apiIssues = DecodeJSON(t, resp, []*api.Issue{})
assert.Len(t, apiIssues, 2) assert.Len(t, apiIssues, 2)
// org and repo label which share the same issue // org and repo label which share the same issue
@@ -629,7 +628,7 @@ func TestSearchIssuesWithLabels(t *testing.T) {
link.RawQuery = query.Encode() link.RawQuery = query.Encode()
req = NewRequest(t, "GET", link.String()) req = NewRequest(t, "GET", link.String())
resp = session.MakeRequest(t, req, http.StatusOK) resp = session.MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &apiIssues) apiIssues = DecodeJSON(t, resp, []*api.Issue{})
assert.Len(t, apiIssues, 2) assert.Len(t, apiIssues, 2)
} }
@@ -648,11 +647,10 @@ func TestGetIssueInfo(t *testing.T) {
urlStr := fmt.Sprintf("/%s/%s/issues/%d/info", owner.Name, repo.Name, issue.Index) urlStr := fmt.Sprintf("/%s/%s/issues/%d/info", owner.Name, repo.Name, issue.Index)
req := NewRequest(t, "GET", urlStr) req := NewRequest(t, "GET", urlStr)
resp := session.MakeRequest(t, req, http.StatusOK) resp := session.MakeRequest(t, req, http.StatusOK)
var respStruct struct { respStruct := DecodeJSON(t, resp, &struct {
ConvertedIssue api.Issue ConvertedIssue api.Issue
RenderedLabels template.HTML RenderedLabels template.HTML
} }{})
DecodeJSON(t, resp, &respStruct)
assert.Equal(t, issue.ID, respStruct.ConvertedIssue.ID) assert.Equal(t, issue.ID, respStruct.ConvertedIssue.ID)
assert.Contains(t, string(respStruct.RenderedLabels), `"labels-list"`) assert.Contains(t, string(respStruct.RenderedLabels), `"labels-list"`)

View File

@@ -145,8 +145,7 @@ func testLinksAsUser(t *testing.T) {
reqAPI := NewRequestf(t, "GET", "/api/v1/users/user2/repos") reqAPI := NewRequestf(t, "GET", "/api/v1/users/user2/repos")
respAPI := MakeRequest(t, reqAPI, http.StatusOK) respAPI := MakeRequest(t, reqAPI, http.StatusOK)
var apiRepos []*api.Repository apiRepos := DecodeJSON(t, respAPI, []*api.Repository{})
DecodeJSON(t, respAPI, &apiRepos)
repoLinks := []string{ repoLinks := []string{
"", "",
"/issues", "/issues",

View File

@@ -992,8 +992,7 @@ func testOAuth2WellKnown(t *testing.T) {
t.Run("WellKnown", func(t *testing.T) { t.Run("WellKnown", func(t *testing.T) {
req := NewRequest(t, "GET", urlOpenidConfiguration) req := NewRequest(t, "GET", urlOpenidConfiguration)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var respMap map[string]any respMap := DecodeJSON(t, resp, map[string]any{})
DecodeJSON(t, resp, &respMap)
assert.Equal(t, "https://try.gitea.io", respMap["issuer"]) assert.Equal(t, "https://try.gitea.io", respMap["issuer"])
assert.Equal(t, "https://try.gitea.io/login/oauth/authorize", respMap["authorization_endpoint"]) assert.Equal(t, "https://try.gitea.io/login/oauth/authorize", respMap["authorization_endpoint"])
assert.Equal(t, "https://try.gitea.io/login/oauth/access_token", respMap["token_endpoint"]) assert.Equal(t, "https://try.gitea.io/login/oauth/access_token", respMap["token_endpoint"])
@@ -1007,8 +1006,7 @@ func testOAuth2WellKnown(t *testing.T) {
defer test.MockVariableValue(&setting.OAuth2.JWTClaimIssuer, "https://try.gitea.io/")() defer test.MockVariableValue(&setting.OAuth2.JWTClaimIssuer, "https://try.gitea.io/")()
req := NewRequest(t, "GET", urlOpenidConfiguration) req := NewRequest(t, "GET", urlOpenidConfiguration)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var respMap map[string]any respMap := DecodeJSON(t, resp, map[string]any{})
DecodeJSON(t, resp, &respMap)
assert.Equal(t, "https://try.gitea.io/", respMap["issuer"]) // has trailing by JWTClaimIssuer assert.Equal(t, "https://try.gitea.io/", respMap["issuer"]) // has trailing by JWTClaimIssuer
assert.Equal(t, "https://try.gitea.io/login/oauth/authorize", respMap["authorization_endpoint"]) assert.Equal(t, "https://try.gitea.io/login/oauth/authorize", respMap["authorization_endpoint"])
}) })

View File

@@ -182,11 +182,9 @@ func testOrgRestrictedUser(t *testing.T) {
req = NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/orgs/%s/teams", orgName), teamToCreate). req = NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/orgs/%s/teams", orgName), teamToCreate).
AddTokenAuth(token) AddTokenAuth(token)
var apiTeam api.Team
resp := adminSession.MakeRequest(t, req, http.StatusCreated) resp := adminSession.MakeRequest(t, req, http.StatusCreated)
DecodeJSON(t, resp, &apiTeam) apiTeam := DecodeJSON(t, resp, &api.Team{})
checkTeamResponse(t, "CreateTeam_codereader", &apiTeam, teamToCreate.Name, teamToCreate.Description, teamToCreate.IncludesAllRepositories, checkTeamResponse(t, "CreateTeam_codereader", apiTeam, teamToCreate.Name, teamToCreate.Description, teamToCreate.IncludesAllRepositories,
"none", teamToCreate.Units, nil) "none", teamToCreate.Units, nil)
checkTeamBean(t, apiTeam.ID, teamToCreate.Name, teamToCreate.Description, teamToCreate.IncludesAllRepositories, checkTeamBean(t, apiTeam.ID, teamToCreate.Name, teamToCreate.Description, teamToCreate.IncludesAllRepositories,
"none", teamToCreate.Units, nil) "none", teamToCreate.Units, nil)
@@ -209,12 +207,10 @@ func testTeamSearch(t *testing.T) {
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 15}) user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 15})
org := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 17}) org := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 17})
var results TeamSearchResults
session := loginUser(t, user.Name) session := loginUser(t, user.Name)
req := NewRequestf(t, "GET", "/org/%s/teams/-/search?q=%s", org.Name, "_team") req := NewRequestf(t, "GET", "/org/%s/teams/-/search?q=%s", org.Name, "_team")
resp := session.MakeRequest(t, req, http.StatusOK) resp := session.MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &results) results := DecodeJSON(t, resp, &TeamSearchResults{})
assert.NotEmpty(t, results.Data) assert.NotEmpty(t, results.Data)
assert.Len(t, results.Data, 2) assert.Len(t, results.Data, 2)
assert.Equal(t, "review_team", results.Data[0].Name) assert.Equal(t, "review_team", results.Data[0].Name)

View File

@@ -117,8 +117,7 @@ func testPrivateActivityHelperHasHeatmapContentFromPublic(t *testing.T) bool {
req := NewRequestf(t, "GET", "/api/v1/users/%s/heatmap", privateActivityTestUser) req := NewRequestf(t, "GET", "/api/v1/users/%s/heatmap", privateActivityTestUser)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var items []*activities_model.UserHeatmapData items := DecodeJSON(t, resp, []*activities_model.UserHeatmapData{})
DecodeJSON(t, resp, &items)
return len(items) != 0 return len(items) != 0
} }
@@ -130,8 +129,7 @@ func testPrivateActivityHelperHasHeatmapContentFromSession(t *testing.T, session
AddTokenAuth(token) AddTokenAuth(token)
resp := session.MakeRequest(t, req, http.StatusOK) resp := session.MakeRequest(t, req, http.StatusOK)
var items []*activities_model.UserHeatmapData items := DecodeJSON(t, resp, []*activities_model.UserHeatmapData{})
DecodeJSON(t, resp, &items)
return len(items) != 0 return len(items) != 0
} }

View File

@@ -21,11 +21,10 @@ func TestListPullCommits(t *testing.T) {
req := NewRequest(t, "GET", "/user2/repo1/pulls/3/commits/list") req := NewRequest(t, "GET", "/user2/repo1/pulls/3/commits/list")
resp := session.MakeRequest(t, req, http.StatusOK) resp := session.MakeRequest(t, req, http.StatusOK)
var pullCommitList struct { pullCommitList := DecodeJSON(t, resp, &struct {
Commits []pull_service.CommitInfo `json:"commits"` Commits []pull_service.CommitInfo `json:"commits"`
LastReviewCommitSha string `json:"last_review_commit_sha"` LastReviewCommitSha string `json:"last_review_commit_sha"`
} }{})
DecodeJSON(t, resp, &pullCommitList)
require.Len(t, pullCommitList.Commits, 2) require.Len(t, pullCommitList.Commits, 2)
assert.Equal(t, "985f0301dba5e7b34be866819cd15ad3d8f508ee", pullCommitList.Commits[0].ID) assert.Equal(t, "985f0301dba5e7b34be866819cd15ad3d8f508ee", pullCommitList.Commits[0].ID)

View File

@@ -289,8 +289,7 @@ func TestCreatePullRequestFromNestedOrgForks(t *testing.T) {
Readme: "Default", Readme: "Default",
}).AddTokenAuth(token) }).AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusCreated) resp := MakeRequest(t, req, http.StatusCreated)
var baseRepo api.Repository baseRepo := DecodeJSON(t, resp, &api.Repository{})
DecodeJSON(t, resp, &baseRepo)
assert.Equal(t, "main", baseRepo.DefaultBranch) assert.Equal(t, "main", baseRepo.DefaultBranch)
forkIntoOrg := func(srcOrg, dstOrg string) api.Repository { forkIntoOrg := func(srcOrg, dstOrg string) api.Repository {
@@ -298,13 +297,12 @@ func TestCreatePullRequestFromNestedOrgForks(t *testing.T) {
Organization: new(dstOrg), Organization: new(dstOrg),
}).AddTokenAuth(token) }).AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusAccepted) resp := MakeRequest(t, req, http.StatusAccepted)
var forkRepo api.Repository forkRepo := DecodeJSON(t, resp, &api.Repository{})
DecodeJSON(t, resp, &forkRepo)
assert.NotNil(t, forkRepo.Owner) assert.NotNil(t, forkRepo.Owner)
if forkRepo.Owner != nil { if forkRepo.Owner != nil {
assert.Equal(t, dstOrg, forkRepo.Owner.UserName) assert.Equal(t, dstOrg, forkRepo.Owner.UserName)
} }
return forkRepo return *forkRepo
} }
forkIntoOrg(baseOrg, midForkOrg) forkIntoOrg(baseOrg, midForkOrg)
@@ -327,8 +325,7 @@ func TestCreatePullRequestFromNestedOrgForks(t *testing.T) {
} }
req = NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/pulls", baseOrg, repoName), prPayload).AddTokenAuth(token) req = NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/pulls", baseOrg, repoName), prPayload).AddTokenAuth(token)
resp = MakeRequest(t, req, http.StatusCreated) resp = MakeRequest(t, req, http.StatusCreated)
var pr api.PullRequest pr := DecodeJSON(t, resp, &api.PullRequest{})
DecodeJSON(t, resp, &pr)
assert.Equal(t, prPayload["title"], pr.Title) assert.Equal(t, prPayload["title"], pr.Title)
if assert.NotNil(t, pr.Head) { if assert.NotNil(t, pr.Head) {
assert.Equal(t, patchBranch, pr.Head.Ref) assert.Equal(t, patchBranch, pr.Head.Ref)

View File

@@ -131,8 +131,7 @@ func TestRepoMergeUpstream(t *testing.T) {
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
checkFileContent("fork-branch", "test-content-2") checkFileContent("fork-branch", "test-content-2")
var mergeResp api.MergeUpstreamResponse mergeResp := DecodeJSON(t, resp, &api.MergeUpstreamResponse{})
DecodeJSON(t, resp, &mergeResp)
assert.Equal(t, "merge", mergeResp.MergeStyle) assert.Equal(t, "merge", mergeResp.MergeStyle)
// after merge, there should be no "sync fork" button anymore // after merge, there should be no "sync fork" button anymore
@@ -160,8 +159,7 @@ func TestRepoMergeUpstream(t *testing.T) {
}).AddTokenAuth(token) }).AddTokenAuth(token)
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
var mergeResp api.MergeUpstreamResponse mergeResp := DecodeJSON(t, resp, &api.MergeUpstreamResponse{})
DecodeJSON(t, resp, &mergeResp)
assert.Equal(t, "fast-forward", mergeResp.MergeStyle) assert.Equal(t, "fast-forward", mergeResp.MergeStyle)
// ff_only=true when fast-forward is not possible (should fail) // ff_only=true when fast-forward is not possible (should fail)

Some files were not shown because too many files have changed in this diff Show More