Skip to content

Commit 59dedf4

Browse files
committed
add tests for new functionality in auth/oauth.go
1 parent 6e876cc commit 59dedf4

File tree

2 files changed

+70
-0
lines changed

2 files changed

+70
-0
lines changed

models/fixtures/action_task.yml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,21 @@
1+
-
2+
attempt: 3
3+
runner_id: 1
4+
status: 3 # 3 is the status code for "cancelled"
5+
started: 1683636528
6+
stopped: 1683636626
7+
repo_id: 4
8+
owner_id: 1
9+
commit_sha: c2d72f548424103f01ee1dc02889c1e2bff816b0
10+
is_fork_pull_request: 0
11+
token_hash: 6d8ef48297195edcc8e22c70b3020eaa06c52976db67d39b4260c64a69a2cc1508825121b7b8394e48e00b1bf8718b2aaaaa
12+
token_salt: eeeeeeee
13+
token_last_eight: eeeeeeee
14+
log_filename: artifact-test2/2f/47.log
15+
log_in_storage: 1
16+
log_length: 707
17+
log_size: 90179
18+
log_expired: 0
119
-
220
id: 47
321
job_id: 192

services/auth/oauth2_test.go

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
package auth
2+
3+
import (
4+
"context"
5+
"testing"
6+
7+
"code.gitea.io/gitea/models/unittest"
8+
user_model "code.gitea.io/gitea/models/user"
9+
"code.gitea.io/gitea/modules/web/middleware"
10+
"code.gitea.io/gitea/services/actions"
11+
12+
"github.com/stretchr/testify/assert"
13+
)
14+
15+
func TestUserIDFromToken(t *testing.T) {
16+
assert.NoError(t, unittest.PrepareTestDatabase())
17+
18+
t.Run("Actions JWT", func(t *testing.T) {
19+
const RunningTaskID = 47
20+
token, err := actions.CreateAuthorizationToken(RunningTaskID, 1, 2)
21+
assert.NoError(t, err)
22+
23+
ds := make(middleware.ContextData)
24+
25+
o := OAuth2{}
26+
uid := o.userIDFromToken(context.Background(), token, ds)
27+
assert.Equal(t, int64(user_model.ActionsUserID), uid)
28+
assert.Equal(t, ds["IsActionsToken"], true)
29+
assert.Equal(t, ds["ActionsTaskID"], int64(RunningTaskID))
30+
})
31+
}
32+
33+
func TestCheckTaskID(t *testing.T) {
34+
assert.NoError(t, unittest.PrepareTestDatabase())
35+
36+
cases := map[string]struct {
37+
TaskID int64
38+
Expected bool
39+
}{
40+
"Running": {TaskID: 47, Expected: true},
41+
"Missing": {TaskID: 1, Expected: false},
42+
"Cancelled": {TaskID: 46, Expected: false},
43+
}
44+
45+
for name := range cases {
46+
c := cases[name]
47+
t.Run(name, func(t *testing.T) {
48+
actual := CheckTaskID(context.Background(), c.TaskID)
49+
assert.Equal(t, c.Expected, actual)
50+
})
51+
}
52+
}

0 commit comments

Comments
 (0)