gitea源码

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. // Copyright 2024 The Gitea Authors. All rights reserved.
  2. // SPDX-License-Identifier: MIT
  3. package auth
  4. import (
  5. "testing"
  6. "code.gitea.io/gitea/models/unittest"
  7. user_model "code.gitea.io/gitea/models/user"
  8. "code.gitea.io/gitea/modules/reqctx"
  9. "code.gitea.io/gitea/services/actions"
  10. "github.com/stretchr/testify/assert"
  11. )
  12. func TestUserIDFromToken(t *testing.T) {
  13. assert.NoError(t, unittest.PrepareTestDatabase())
  14. t.Run("Actions JWT", func(t *testing.T) {
  15. const RunningTaskID = 47
  16. token, err := actions.CreateAuthorizationToken(RunningTaskID, 1, 2)
  17. assert.NoError(t, err)
  18. ds := make(reqctx.ContextData)
  19. o := OAuth2{}
  20. uid := o.userIDFromToken(t.Context(), token, ds)
  21. assert.Equal(t, user_model.ActionsUserID, uid)
  22. assert.Equal(t, true, ds["IsActionsToken"])
  23. assert.Equal(t, ds["ActionsTaskID"], int64(RunningTaskID))
  24. })
  25. }
  26. func TestCheckTaskIsRunning(t *testing.T) {
  27. assert.NoError(t, unittest.PrepareTestDatabase())
  28. cases := map[string]struct {
  29. TaskID int64
  30. Expected bool
  31. }{
  32. "Running": {TaskID: 47, Expected: true},
  33. "Missing": {TaskID: 1, Expected: false},
  34. "Cancelled": {TaskID: 46, Expected: false},
  35. }
  36. for name := range cases {
  37. c := cases[name]
  38. t.Run(name, func(t *testing.T) {
  39. actual := CheckTaskIsRunning(t.Context(), c.TaskID)
  40. assert.Equal(t, c.Expected, actual)
  41. })
  42. }
  43. }