MCPcopy
hub / github.com/gotify/server / TestUser

Method TestUser

database/user_test.go:9–75  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

7)
8
9func (s *DatabaseSuite) TestUser() {
10 user, err := s.db.GetUserByID(55)
11 require.NoError(s.T(), err)
12 assert.Nil(s.T(), user, "not existing user")
13
14 user, err = s.db.GetUserByName("nicories")
15 require.NoError(s.T(), err)
16 assert.Nil(s.T(), user, "not existing user")
17
18 jmattheis, err := s.db.GetUserByID(1)
19 require.NoError(s.T(), err)
20 assert.NotNil(s.T(), jmattheis, "on bootup the first user should be automatically created")
21
22 adminCount, err := s.db.CountUser("admin = ?", true)
23 require.NoError(s.T(), err)
24 assert.Equal(s.T(), int64(1), adminCount, "there is initially one admin")
25
26 users, err := s.db.GetUsers()
27 require.NoError(s.T(), err)
28 assert.Len(s.T(), users, 1)
29 assert.Contains(s.T(), users, jmattheis)
30
31 nicories := &model.User{Name: "nicories", Pass: []byte{1, 2, 3, 4}, Admin: false}
32 s.db.CreateUser(nicories)
33 assert.NotEqual(s.T(), 0, nicories.ID, "on create user a new id should be assigned")
34 userCount, err := s.db.CountUser()
35 require.NoError(s.T(), err)
36 assert.Equal(s.T(), int64(2), userCount, "two users should exist")
37
38 user, err = s.db.GetUserByName("nicories")
39 require.NoError(s.T(), err)
40 assert.Equal(s.T(), nicories, user)
41
42 users, err = s.db.GetUsers()
43 require.NoError(s.T(), err)
44 assert.Len(s.T(), users, 2)
45 assert.Contains(s.T(), users, jmattheis)
46 assert.Contains(s.T(), users, nicories)
47
48 nicories.Name = "tom"
49 nicories.Pass = []byte{12}
50 nicories.Admin = true
51 require.NoError(s.T(), s.db.UpdateUser(nicories))
52
53 tom, err := s.db.GetUserByID(nicories.ID)
54 require.NoError(s.T(), err)
55 assert.Equal(s.T(), &model.User{ID: nicories.ID, Name: "tom", Pass: []byte{12}, Admin: true}, tom)
56
57 users, err = s.db.GetUsers()
58 require.NoError(s.T(), err)
59 assert.Len(s.T(), users, 2)
60
61 adminCount, err = s.db.CountUser(&model.User{Admin: true})
62 require.NoError(s.T(), err)
63 assert.Equal(s.T(), int64(2), adminCount, "two admins exist")
64
65 require.NoError(s.T(), s.db.DeleteUserByID(tom.ID))
66 users, err = s.db.GetUsers()

Callers

nothing calls this directly

Calls 7

GetUserByIDMethod · 0.65
GetUserByNameMethod · 0.65
CountUserMethod · 0.65
GetUsersMethod · 0.65
CreateUserMethod · 0.65
UpdateUserMethod · 0.65
DeleteUserByIDMethod · 0.65

Tested by

no test coverage detected