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.

unit_test.go 5.0KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. // Copyright 2023 The Gitea Authors. All rights reserved.
  2. // SPDX-License-Identifier: MIT
  3. package unit
  4. import (
  5. "testing"
  6. "code.gitea.io/gitea/modules/setting"
  7. "github.com/stretchr/testify/assert"
  8. )
  9. func TestLoadUnitConfig(t *testing.T) {
  10. t.Run("regular", func(t *testing.T) {
  11. defer func(disabledRepoUnits, defaultRepoUnits, defaultForkRepoUnits []Type) {
  12. DisabledRepoUnits = disabledRepoUnits
  13. DefaultRepoUnits = defaultRepoUnits
  14. DefaultForkRepoUnits = defaultForkRepoUnits
  15. }(DisabledRepoUnits, DefaultRepoUnits, DefaultForkRepoUnits)
  16. defer func(disabledRepoUnits, defaultRepoUnits, defaultForkRepoUnits []string) {
  17. setting.Repository.DisabledRepoUnits = disabledRepoUnits
  18. setting.Repository.DefaultRepoUnits = defaultRepoUnits
  19. setting.Repository.DefaultForkRepoUnits = defaultForkRepoUnits
  20. }(setting.Repository.DisabledRepoUnits, setting.Repository.DefaultRepoUnits, setting.Repository.DefaultForkRepoUnits)
  21. setting.Repository.DisabledRepoUnits = []string{"repo.issues"}
  22. setting.Repository.DefaultRepoUnits = []string{"repo.code", "repo.releases", "repo.issues", "repo.pulls"}
  23. setting.Repository.DefaultForkRepoUnits = []string{"repo.releases"}
  24. assert.NoError(t, LoadUnitConfig())
  25. assert.Equal(t, []Type{TypeIssues}, DisabledRepoUnits)
  26. assert.Equal(t, []Type{TypeCode, TypeReleases, TypePullRequests}, DefaultRepoUnits)
  27. assert.Equal(t, []Type{TypeReleases}, DefaultForkRepoUnits)
  28. })
  29. t.Run("invalid", func(t *testing.T) {
  30. defer func(disabledRepoUnits, defaultRepoUnits, defaultForkRepoUnits []Type) {
  31. DisabledRepoUnits = disabledRepoUnits
  32. DefaultRepoUnits = defaultRepoUnits
  33. DefaultForkRepoUnits = defaultForkRepoUnits
  34. }(DisabledRepoUnits, DefaultRepoUnits, DefaultForkRepoUnits)
  35. defer func(disabledRepoUnits, defaultRepoUnits, defaultForkRepoUnits []string) {
  36. setting.Repository.DisabledRepoUnits = disabledRepoUnits
  37. setting.Repository.DefaultRepoUnits = defaultRepoUnits
  38. setting.Repository.DefaultForkRepoUnits = defaultForkRepoUnits
  39. }(setting.Repository.DisabledRepoUnits, setting.Repository.DefaultRepoUnits, setting.Repository.DefaultForkRepoUnits)
  40. setting.Repository.DisabledRepoUnits = []string{"repo.issues", "invalid.1"}
  41. setting.Repository.DefaultRepoUnits = []string{"repo.code", "invalid.2", "repo.releases", "repo.issues", "repo.pulls"}
  42. setting.Repository.DefaultForkRepoUnits = []string{"invalid.3", "repo.releases"}
  43. assert.NoError(t, LoadUnitConfig())
  44. assert.Equal(t, []Type{TypeIssues}, DisabledRepoUnits)
  45. assert.Equal(t, []Type{TypeCode, TypeReleases, TypePullRequests}, DefaultRepoUnits)
  46. assert.Equal(t, []Type{TypeReleases}, DefaultForkRepoUnits)
  47. })
  48. t.Run("duplicate", func(t *testing.T) {
  49. defer func(disabledRepoUnits, defaultRepoUnits, defaultForkRepoUnits []Type) {
  50. DisabledRepoUnits = disabledRepoUnits
  51. DefaultRepoUnits = defaultRepoUnits
  52. DefaultForkRepoUnits = defaultForkRepoUnits
  53. }(DisabledRepoUnits, DefaultRepoUnits, DefaultForkRepoUnits)
  54. defer func(disabledRepoUnits, defaultRepoUnits, defaultForkRepoUnits []string) {
  55. setting.Repository.DisabledRepoUnits = disabledRepoUnits
  56. setting.Repository.DefaultRepoUnits = defaultRepoUnits
  57. setting.Repository.DefaultForkRepoUnits = defaultForkRepoUnits
  58. }(setting.Repository.DisabledRepoUnits, setting.Repository.DefaultRepoUnits, setting.Repository.DefaultForkRepoUnits)
  59. setting.Repository.DisabledRepoUnits = []string{"repo.issues", "repo.issues"}
  60. setting.Repository.DefaultRepoUnits = []string{"repo.code", "repo.releases", "repo.issues", "repo.pulls", "repo.code"}
  61. setting.Repository.DefaultForkRepoUnits = []string{"repo.releases", "repo.releases"}
  62. assert.NoError(t, LoadUnitConfig())
  63. assert.Equal(t, []Type{TypeIssues}, DisabledRepoUnits)
  64. assert.Equal(t, []Type{TypeCode, TypeReleases, TypePullRequests}, DefaultRepoUnits)
  65. assert.Equal(t, []Type{TypeReleases}, DefaultForkRepoUnits)
  66. })
  67. t.Run("empty_default", func(t *testing.T) {
  68. defer func(disabledRepoUnits, defaultRepoUnits, defaultForkRepoUnits []Type) {
  69. DisabledRepoUnits = disabledRepoUnits
  70. DefaultRepoUnits = defaultRepoUnits
  71. DefaultForkRepoUnits = defaultForkRepoUnits
  72. }(DisabledRepoUnits, DefaultRepoUnits, DefaultForkRepoUnits)
  73. defer func(disabledRepoUnits, defaultRepoUnits, defaultForkRepoUnits []string) {
  74. setting.Repository.DisabledRepoUnits = disabledRepoUnits
  75. setting.Repository.DefaultRepoUnits = defaultRepoUnits
  76. setting.Repository.DefaultForkRepoUnits = defaultForkRepoUnits
  77. }(setting.Repository.DisabledRepoUnits, setting.Repository.DefaultRepoUnits, setting.Repository.DefaultForkRepoUnits)
  78. setting.Repository.DisabledRepoUnits = []string{"repo.issues", "repo.issues"}
  79. setting.Repository.DefaultRepoUnits = []string{}
  80. setting.Repository.DefaultForkRepoUnits = []string{"repo.releases", "repo.releases"}
  81. assert.NoError(t, LoadUnitConfig())
  82. assert.Equal(t, []Type{TypeIssues}, DisabledRepoUnits)
  83. assert.ElementsMatch(t, []Type{TypeCode, TypePullRequests, TypeReleases, TypeWiki, TypePackages, TypeProjects}, DefaultRepoUnits)
  84. assert.Equal(t, []Type{TypeReleases}, DefaultForkRepoUnits)
  85. })
  86. }