code.gitea.io/gitea@v1.21.7/routers/api/v1/repo/repo_test.go (about)

     1  // Copyright 2019 The Gitea Authors. All rights reserved.
     2  // SPDX-License-Identifier: MIT
     3  
     4  package repo
     5  
     6  import (
     7  	"net/http"
     8  	"testing"
     9  
    10  	repo_model "code.gitea.io/gitea/models/repo"
    11  	"code.gitea.io/gitea/models/unittest"
    12  	"code.gitea.io/gitea/modules/contexttest"
    13  	api "code.gitea.io/gitea/modules/structs"
    14  	"code.gitea.io/gitea/modules/web"
    15  
    16  	"github.com/stretchr/testify/assert"
    17  )
    18  
    19  func TestRepoEdit(t *testing.T) {
    20  	unittest.PrepareTestEnv(t)
    21  
    22  	ctx, _ := contexttest.MockAPIContext(t, "user2/repo1")
    23  	contexttest.LoadRepo(t, ctx, 1)
    24  	contexttest.LoadUser(t, ctx, 2)
    25  	ctx.Repo.Owner = ctx.Doer
    26  	description := "new description"
    27  	website := "http://wwww.newwebsite.com"
    28  	private := true
    29  	hasIssues := false
    30  	hasWiki := false
    31  	defaultBranch := "master"
    32  	hasPullRequests := true
    33  	ignoreWhitespaceConflicts := true
    34  	allowMerge := false
    35  	allowRebase := false
    36  	allowRebaseMerge := false
    37  	allowSquashMerge := false
    38  	archived := true
    39  	opts := api.EditRepoOption{
    40  		Name:                      &ctx.Repo.Repository.Name,
    41  		Description:               &description,
    42  		Website:                   &website,
    43  		Private:                   &private,
    44  		HasIssues:                 &hasIssues,
    45  		HasWiki:                   &hasWiki,
    46  		DefaultBranch:             &defaultBranch,
    47  		HasPullRequests:           &hasPullRequests,
    48  		IgnoreWhitespaceConflicts: &ignoreWhitespaceConflicts,
    49  		AllowMerge:                &allowMerge,
    50  		AllowRebase:               &allowRebase,
    51  		AllowRebaseMerge:          &allowRebaseMerge,
    52  		AllowSquash:               &allowSquashMerge,
    53  		Archived:                  &archived,
    54  	}
    55  
    56  	web.SetForm(ctx, &opts)
    57  	Edit(ctx)
    58  
    59  	assert.EqualValues(t, http.StatusOK, ctx.Resp.Status())
    60  	unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{
    61  		ID: 1,
    62  	}, unittest.Cond("name = ? AND is_archived = 1", *opts.Name))
    63  }
    64  
    65  func TestRepoEditNameChange(t *testing.T) {
    66  	unittest.PrepareTestEnv(t)
    67  
    68  	ctx, _ := contexttest.MockAPIContext(t, "user2/repo1")
    69  	contexttest.LoadRepo(t, ctx, 1)
    70  	contexttest.LoadUser(t, ctx, 2)
    71  	ctx.Repo.Owner = ctx.Doer
    72  	name := "newname"
    73  	opts := api.EditRepoOption{
    74  		Name: &name,
    75  	}
    76  
    77  	web.SetForm(ctx, &opts)
    78  	Edit(ctx)
    79  	assert.EqualValues(t, http.StatusOK, ctx.Resp.Status())
    80  
    81  	unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{
    82  		ID: 1,
    83  	}, unittest.Cond("name = ?", opts.Name))
    84  }