summaryrefslogtreecommitdiffstats
path: root/services/auth/oauth2_test.go
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--services/auth/oauth2_test.go55
1 files changed, 55 insertions, 0 deletions
diff --git a/services/auth/oauth2_test.go b/services/auth/oauth2_test.go
new file mode 100644
index 0000000..c9b4ed0
--- /dev/null
+++ b/services/auth/oauth2_test.go
@@ -0,0 +1,55 @@
+// Copyright 2024 The Gitea Authors. All rights reserved.
+// SPDX-License-Identifier: MIT
+
+package auth
+
+import (
+ "context"
+ "testing"
+
+ "code.gitea.io/gitea/models/unittest"
+ user_model "code.gitea.io/gitea/models/user"
+ "code.gitea.io/gitea/modules/web/middleware"
+ "code.gitea.io/gitea/services/actions"
+
+ "github.com/stretchr/testify/assert"
+ "github.com/stretchr/testify/require"
+)
+
+func TestUserIDFromToken(t *testing.T) {
+ require.NoError(t, unittest.PrepareTestDatabase())
+
+ t.Run("Actions JWT", func(t *testing.T) {
+ const RunningTaskID = 47
+ token, err := actions.CreateAuthorizationToken(RunningTaskID, 1, 2)
+ require.NoError(t, err)
+
+ ds := make(middleware.ContextData)
+
+ o := OAuth2{}
+ uid := o.userIDFromToken(context.Background(), token, ds)
+ assert.Equal(t, int64(user_model.ActionsUserID), uid)
+ assert.Equal(t, true, ds["IsActionsToken"])
+ assert.Equal(t, ds["ActionsTaskID"], int64(RunningTaskID))
+ })
+}
+
+func TestCheckTaskIsRunning(t *testing.T) {
+ require.NoError(t, unittest.PrepareTestDatabase())
+ cases := map[string]struct {
+ TaskID int64
+ Expected bool
+ }{
+ "Running": {TaskID: 47, Expected: true},
+ "Missing": {TaskID: 1, Expected: false},
+ "Cancelled": {TaskID: 46, Expected: false},
+ }
+
+ for name := range cases {
+ c := cases[name]
+ t.Run(name, func(t *testing.T) {
+ actual := CheckTaskIsRunning(context.Background(), c.TaskID)
+ assert.Equal(t, c.Expected, actual)
+ })
+ }
+}