You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

fork_test.go 1.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. // Copyright 2017 The Gitea Authors. All rights reserved.
  2. // SPDX-License-Identifier: MIT
  3. package repository
  4. import (
  5. "testing"
  6. repo_model "code.gitea.io/gitea/models/repo"
  7. "code.gitea.io/gitea/models/unittest"
  8. user_model "code.gitea.io/gitea/models/user"
  9. "code.gitea.io/gitea/modules/git"
  10. "code.gitea.io/gitea/modules/setting"
  11. "github.com/stretchr/testify/assert"
  12. )
  13. func TestForkRepository(t *testing.T) {
  14. assert.NoError(t, unittest.PrepareTestDatabase())
  15. // user 13 has already forked repo10
  16. user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 13})
  17. repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 10})
  18. fork, err := ForkRepository(git.DefaultContext, user, user, ForkRepoOptions{
  19. BaseRepo: repo,
  20. Name: "test",
  21. Description: "test",
  22. })
  23. assert.Nil(t, fork)
  24. assert.Error(t, err)
  25. assert.True(t, IsErrForkAlreadyExist(err))
  26. // user not reached maximum limit of repositories
  27. assert.False(t, repo_model.IsErrReachLimitOfRepo(err))
  28. // change AllowForkWithoutMaximumLimit to false for the test
  29. setting.Repository.AllowForkWithoutMaximumLimit = false
  30. // user has reached maximum limit of repositories
  31. user.MaxRepoCreation = 0
  32. fork2, err := ForkRepository(git.DefaultContext, user, user, ForkRepoOptions{
  33. BaseRepo: repo,
  34. Name: "test",
  35. Description: "test",
  36. })
  37. assert.Nil(t, fork2)
  38. assert.True(t, repo_model.IsErrReachLimitOfRepo(err))
  39. }