diff options
Diffstat (limited to 'tests/integration/git_push_test.go')
-rw-r--r-- | tests/integration/git_push_test.go | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/tests/integration/git_push_test.go b/tests/integration/git_push_test.go index da254fc88f..dc0b52203a 100644 --- a/tests/integration/git_push_test.go +++ b/tests/integration/git_push_test.go @@ -6,8 +6,10 @@ package integration import ( "fmt" "net/url" + "strings" "testing" + auth_model "code.gitea.io/gitea/models/auth" "code.gitea.io/gitea/models/db" git_model "code.gitea.io/gitea/models/git" "code.gitea.io/gitea/models/unittest" @@ -192,3 +194,23 @@ func runTestGitPush(t *testing.T, u *url.URL, gitOperation func(t *testing.T, gi require.NoError(t, repo_service.DeleteRepositoryDirectly(db.DefaultContext, user, repo.ID)) } + +func TestPushPullRefs(t *testing.T) { + onGiteaRun(t, func(t *testing.T, u *url.URL) { + baseAPITestContext := NewAPITestContext(t, "user2", "repo1", auth_model.AccessTokenScopeWriteRepository, auth_model.AccessTokenScopeWriteUser) + + u.Path = baseAPITestContext.GitPath() + u.User = url.UserPassword("user2", userPassword) + + dstPath := t.TempDir() + doGitClone(dstPath, u)(t) + + cmd := git.NewCommand(git.DefaultContext, "push", "--delete", "origin", "refs/pull/2/head") + stdout, stderr, err := cmd.RunStdString(&git.RunOpts{ + Dir: dstPath, + }) + assert.Error(t, err) + assert.Empty(t, stdout) + assert.False(t, strings.Contains(stderr, "[deleted]"), "stderr: %s", stderr) + }) +} |