@@ -13,32 +13,54 @@ import (
13
13
user_model "code.gitea.io/gitea/models/user"
14
14
15
15
"github.com/stretchr/testify/assert"
16
+ "github.com/stretchr/testify/require"
16
17
)
17
18
18
19
func TestAdminUserCreate (t * testing.T ) {
19
20
app := NewMainApp (AppVersion {})
20
21
21
22
reset := func () {
22
- assert .NoError (t , db .TruncateBeans (db .DefaultContext , & user_model.User {}))
23
- assert .NoError (t , db .TruncateBeans (db .DefaultContext , & user_model.EmailAddress {}))
23
+ require .NoError (t , db .TruncateBeans (db .DefaultContext , & user_model.User {}))
24
+ require .NoError (t , db .TruncateBeans (db .DefaultContext , & user_model.EmailAddress {}))
24
25
}
25
26
26
- type createCheck struct { IsAdmin , MustChangePassword bool }
27
- createUser := func (name , args string ) createCheck {
28
- assert .
NoError (
t ,
app .
Run (
strings .
Fields (
fmt .
Sprintf (
"./gitea admin user create --username %s --email %[email protected] %s --password foobar" ,
name ,
name ,
args ))))
29
- u := unittest .AssertExistsAndLoadBean (t , & user_model.User {LowerName : name })
30
- return createCheck {u .IsAdmin , u .MustChangePassword }
31
- }
32
- reset ()
33
- assert .Equal (t , createCheck {IsAdmin : false , MustChangePassword : false }, createUser ("u" , "" ), "first non-admin user doesn't need to change password" )
34
-
35
- reset ()
36
- assert .Equal (t , createCheck {IsAdmin : true , MustChangePassword : false }, createUser ("u" , "--admin" ), "first admin user doesn't need to change password" )
37
-
38
- reset ()
39
- assert .Equal (t , createCheck {IsAdmin : true , MustChangePassword : true }, createUser ("u" , "--admin --must-change-password" ))
40
- assert .Equal (t , createCheck {IsAdmin : true , MustChangePassword : true }, createUser ("u2" , "--admin" ))
41
- assert .Equal (t , createCheck {IsAdmin : true , MustChangePassword : false }, createUser ("u3" , "--admin --must-change-password=false" ))
42
- assert .Equal (t , createCheck {IsAdmin : false , MustChangePassword : true }, createUser ("u4" , "" ))
43
- assert .Equal (t , createCheck {IsAdmin : false , MustChangePassword : false }, createUser ("u5" , "--must-change-password=false" ))
27
+ t .Run ("MustChangePassword" , func (t * testing.T ) {
28
+ type check struct {
29
+ IsAdmin bool
30
+ MustChangePassword bool
31
+ }
32
+ createCheck := func (name , args string ) check {
33
+ require .
NoError (
t ,
app .
Run (
strings .
Fields (
fmt .
Sprintf (
"./gitea admin user create --username %s --email %[email protected] %s --password foobar" ,
name ,
name ,
args ))))
34
+ u := unittest .AssertExistsAndLoadBean (t , & user_model.User {LowerName : name })
35
+ return check {IsAdmin : u .IsAdmin , MustChangePassword : u .MustChangePassword }
36
+ }
37
+ reset ()
38
+ assert .Equal (t , check {IsAdmin : false , MustChangePassword : false }, createCheck ("u" , "" ), "first non-admin user doesn't need to change password" )
39
+
40
+ reset ()
41
+ assert .Equal (t , check {IsAdmin : true , MustChangePassword : false }, createCheck ("u" , "--admin" ), "first admin user doesn't need to change password" )
42
+
43
+ reset ()
44
+ assert .Equal (t , check {IsAdmin : true , MustChangePassword : true }, createCheck ("u" , "--admin --must-change-password" ))
45
+ assert .Equal (t , check {IsAdmin : true , MustChangePassword : true }, createCheck ("u2" , "--admin" ))
46
+ assert .Equal (t , check {IsAdmin : true , MustChangePassword : false }, createCheck ("u3" , "--admin --must-change-password=false" ))
47
+ assert .Equal (t , check {IsAdmin : false , MustChangePassword : true }, createCheck ("u4" , "" ))
48
+ assert .Equal (t , check {IsAdmin : false , MustChangePassword : false }, createCheck ("u5" , "--must-change-password=false" ))
49
+ })
50
+
51
+ t .Run ("UserType" , func (t * testing.T ) {
52
+ createUser := func (name , args string ) error {
53
+ return app .
Run (
strings .
Fields (
fmt .
Sprintf (
"./gitea admin user create --username %s --email %[email protected] %s" ,
name ,
name ,
args )))
54
+ }
55
+
56
+ reset ()
57
+ assert .ErrorContains (t , createUser ("u" , "--user-type invalid" ), "invalid user type" )
58
+ assert .ErrorContains (t , createUser ("u" , "--user-type bot --password 123" ), "can only be set for individual users" )
59
+ assert .ErrorContains (t , createUser ("u" , "--user-type bot --must-change-password" ), "can only be set for individual users" )
60
+
61
+ assert .NoError (t , createUser ("u" , "--user-type bot" ))
62
+ u := unittest .AssertExistsAndLoadBean (t , & user_model.User {LowerName : "u" })
63
+ assert .Equal (t , user_model .UserTypeBot , u .Type )
64
+ assert .Equal (t , "" , u .Passwd )
65
+ })
44
66
}
0 commit comments