gitea源码

api_user_variables_test.go 3.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. // Copyright 2024 The Gitea Authors. All rights reserved.
  2. // SPDX-License-Identifier: MIT
  3. package integration
  4. import (
  5. "net/http"
  6. "testing"
  7. auth_model "code.gitea.io/gitea/models/auth"
  8. api "code.gitea.io/gitea/modules/structs"
  9. "code.gitea.io/gitea/tests"
  10. )
  11. func TestAPIUserVariables(t *testing.T) {
  12. defer tests.PrepareTestEnv(t)()
  13. session := loginUser(t, "user1")
  14. token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteUser)
  15. t.Run("CreateUserVariable", func(t *testing.T) {
  16. cases := []struct {
  17. Name string
  18. ExpectedStatus int
  19. }{
  20. {
  21. Name: "-",
  22. ExpectedStatus: http.StatusBadRequest,
  23. },
  24. {
  25. Name: "_",
  26. ExpectedStatus: http.StatusCreated,
  27. },
  28. {
  29. Name: "TEST_VAR",
  30. ExpectedStatus: http.StatusCreated,
  31. },
  32. {
  33. Name: "test_var",
  34. ExpectedStatus: http.StatusConflict,
  35. },
  36. {
  37. Name: "ci",
  38. ExpectedStatus: http.StatusBadRequest,
  39. },
  40. {
  41. Name: "123var",
  42. ExpectedStatus: http.StatusBadRequest,
  43. },
  44. {
  45. Name: "var@test",
  46. ExpectedStatus: http.StatusBadRequest,
  47. },
  48. {
  49. Name: "github_var",
  50. ExpectedStatus: http.StatusBadRequest,
  51. },
  52. {
  53. Name: "gitea_var",
  54. ExpectedStatus: http.StatusBadRequest,
  55. },
  56. }
  57. for _, c := range cases {
  58. req := NewRequestWithJSON(t, "POST", "/api/v1/user/actions/variables/"+c.Name, api.CreateVariableOption{
  59. Value: "value",
  60. }).AddTokenAuth(token)
  61. MakeRequest(t, req, c.ExpectedStatus)
  62. }
  63. })
  64. t.Run("UpdateUserVariable", func(t *testing.T) {
  65. variableName := "test_update_var"
  66. url := "/api/v1/user/actions/variables/" + variableName
  67. req := NewRequestWithJSON(t, "POST", url, api.CreateVariableOption{
  68. Value: "initial_val",
  69. }).AddTokenAuth(token)
  70. MakeRequest(t, req, http.StatusCreated)
  71. cases := []struct {
  72. Name string
  73. UpdateName string
  74. ExpectedStatus int
  75. }{
  76. {
  77. Name: "not_found_var",
  78. ExpectedStatus: http.StatusNotFound,
  79. },
  80. {
  81. Name: variableName,
  82. UpdateName: "1invalid",
  83. ExpectedStatus: http.StatusBadRequest,
  84. },
  85. {
  86. Name: variableName,
  87. UpdateName: "invalid@name",
  88. ExpectedStatus: http.StatusBadRequest,
  89. },
  90. {
  91. Name: variableName,
  92. UpdateName: "ci",
  93. ExpectedStatus: http.StatusBadRequest,
  94. },
  95. {
  96. Name: variableName,
  97. UpdateName: "updated_var_name",
  98. ExpectedStatus: http.StatusNoContent,
  99. },
  100. {
  101. Name: variableName,
  102. ExpectedStatus: http.StatusNotFound,
  103. },
  104. {
  105. Name: "updated_var_name",
  106. ExpectedStatus: http.StatusNoContent,
  107. },
  108. }
  109. for _, c := range cases {
  110. req := NewRequestWithJSON(t, "PUT", "/api/v1/user/actions/variables/"+c.Name, api.UpdateVariableOption{
  111. Name: c.UpdateName,
  112. Value: "updated_val",
  113. }).AddTokenAuth(token)
  114. MakeRequest(t, req, c.ExpectedStatus)
  115. }
  116. })
  117. t.Run("DeleteRepoVariable", func(t *testing.T) {
  118. variableName := "test_delete_var"
  119. url := "/api/v1/user/actions/variables/" + variableName
  120. req := NewRequestWithJSON(t, "POST", url, api.CreateVariableOption{
  121. Value: "initial_val",
  122. }).AddTokenAuth(token)
  123. MakeRequest(t, req, http.StatusCreated)
  124. req = NewRequest(t, "DELETE", url).AddTokenAuth(token)
  125. MakeRequest(t, req, http.StatusNoContent)
  126. req = NewRequest(t, "DELETE", url).AddTokenAuth(token)
  127. MakeRequest(t, req, http.StatusNotFound)
  128. })
  129. }