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.

api_user_star_test.go 2.0KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. // Copyright 2022 The Gitea Authors. All rights reserved.
  2. // SPDX-License-Identifier: MIT
  3. package integration
  4. import (
  5. "fmt"
  6. "net/http"
  7. "testing"
  8. api "code.gitea.io/gitea/modules/structs"
  9. "code.gitea.io/gitea/tests"
  10. "github.com/stretchr/testify/assert"
  11. )
  12. func TestAPIStar(t *testing.T) {
  13. defer tests.PrepareTestEnv(t)()
  14. user := "user1"
  15. repo := "user2/repo1"
  16. session := loginUser(t, user)
  17. token := getTokenForLoggedInUser(t, session)
  18. t.Run("Star", func(t *testing.T) {
  19. defer tests.PrintCurrentTest(t)()
  20. req := NewRequest(t, "PUT", fmt.Sprintf("/api/v1/user/starred/%s?token=%s", repo, token))
  21. MakeRequest(t, req, http.StatusNoContent)
  22. })
  23. t.Run("GetStarredRepos", func(t *testing.T) {
  24. defer tests.PrintCurrentTest(t)()
  25. req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/users/%s/starred?token=%s", user, token))
  26. resp := MakeRequest(t, req, http.StatusOK)
  27. assert.Equal(t, "1", resp.Header().Get("X-Total-Count"))
  28. var repos []api.Repository
  29. DecodeJSON(t, resp, &repos)
  30. assert.Len(t, repos, 1)
  31. assert.Equal(t, repo, repos[0].FullName)
  32. })
  33. t.Run("GetMyStarredRepos", func(t *testing.T) {
  34. defer tests.PrintCurrentTest(t)()
  35. req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/user/starred?token=%s", token))
  36. resp := MakeRequest(t, req, http.StatusOK)
  37. assert.Equal(t, "1", resp.Header().Get("X-Total-Count"))
  38. var repos []api.Repository
  39. DecodeJSON(t, resp, &repos)
  40. assert.Len(t, repos, 1)
  41. assert.Equal(t, repo, repos[0].FullName)
  42. })
  43. t.Run("IsStarring", func(t *testing.T) {
  44. defer tests.PrintCurrentTest(t)()
  45. req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/user/starred/%s?token=%s", repo, token))
  46. MakeRequest(t, req, http.StatusNoContent)
  47. req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/user/starred/%s?token=%s", repo+"notexisting", token))
  48. MakeRequest(t, req, http.StatusNotFound)
  49. })
  50. t.Run("Unstar", func(t *testing.T) {
  51. defer tests.PrintCurrentTest(t)()
  52. req := NewRequest(t, "DELETE", fmt.Sprintf("/api/v1/user/starred/%s?token=%s", repo, token))
  53. MakeRequest(t, req, http.StatusNoContent)
  54. })
  55. }