Skip to content

Commit 15a5ff1

Browse files
jbgomondGiteaBot
authored andcommitted
Add user secrets API integration tests (go-gitea#27832)
Adds the missing user secrets API integration tests so go-gitea#27829 does not happen again
1 parent d282f5d commit 15a5ff1

File tree

1 file changed

+98
-0
lines changed

1 file changed

+98
-0
lines changed
+98
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
// Copyright 2023 The Gitea Authors. All rights reserved.
2+
// SPDX-License-Identifier: MIT
3+
4+
package integration
5+
6+
import (
7+
"fmt"
8+
"net/http"
9+
"testing"
10+
11+
auth_model "code.gitea.io/gitea/models/auth"
12+
api "code.gitea.io/gitea/modules/structs"
13+
"code.gitea.io/gitea/tests"
14+
)
15+
16+
func TestAPIUserSecrets(t *testing.T) {
17+
defer tests.PrepareTestEnv(t)()
18+
19+
session := loginUser(t, "user1")
20+
token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteUser)
21+
22+
t.Run("Create", func(t *testing.T) {
23+
cases := []struct {
24+
Name string
25+
ExpectedStatus int
26+
}{
27+
{
28+
Name: "",
29+
ExpectedStatus: http.StatusNotFound,
30+
},
31+
{
32+
Name: "-",
33+
ExpectedStatus: http.StatusBadRequest,
34+
},
35+
{
36+
Name: "_",
37+
ExpectedStatus: http.StatusCreated,
38+
},
39+
{
40+
Name: "secret",
41+
ExpectedStatus: http.StatusCreated,
42+
},
43+
{
44+
Name: "2secret",
45+
ExpectedStatus: http.StatusBadRequest,
46+
},
47+
{
48+
Name: "GITEA_secret",
49+
ExpectedStatus: http.StatusBadRequest,
50+
},
51+
{
52+
Name: "GITHUB_secret",
53+
ExpectedStatus: http.StatusBadRequest,
54+
},
55+
}
56+
57+
for _, c := range cases {
58+
req := NewRequestWithJSON(t, "PUT", fmt.Sprintf("/api/v1/user/actions/secrets/%s?token=%s", c.Name, token), api.CreateOrUpdateSecretOption{
59+
Data: "data",
60+
})
61+
MakeRequest(t, req, c.ExpectedStatus)
62+
}
63+
})
64+
65+
t.Run("Update", func(t *testing.T) {
66+
name := "update_secret"
67+
url := fmt.Sprintf("/api/v1/user/actions/secrets/%s?token=%s", name, token)
68+
69+
req := NewRequestWithJSON(t, "PUT", url, api.CreateOrUpdateSecretOption{
70+
Data: "initial",
71+
})
72+
MakeRequest(t, req, http.StatusCreated)
73+
74+
req = NewRequestWithJSON(t, "PUT", url, api.CreateOrUpdateSecretOption{
75+
Data: "changed",
76+
})
77+
MakeRequest(t, req, http.StatusNoContent)
78+
})
79+
80+
t.Run("Delete", func(t *testing.T) {
81+
name := "delete_secret"
82+
url := fmt.Sprintf("/api/v1/user/actions/secrets/%s?token=%s", name, token)
83+
84+
req := NewRequestWithJSON(t, "PUT", url, api.CreateOrUpdateSecretOption{
85+
Data: "initial",
86+
})
87+
MakeRequest(t, req, http.StatusCreated)
88+
89+
req = NewRequest(t, "DELETE", url)
90+
MakeRequest(t, req, http.StatusNoContent)
91+
92+
req = NewRequest(t, "DELETE", url)
93+
MakeRequest(t, req, http.StatusNotFound)
94+
95+
req = NewRequest(t, "DELETE", fmt.Sprintf("/api/v1/user/actions/secrets/000?token=%s", token))
96+
MakeRequest(t, req, http.StatusBadRequest)
97+
})
98+
}

0 commit comments

Comments
 (0)