修改页面
This commit is contained in:
@@ -0,0 +1,102 @@
|
||||
package services
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/suite"
|
||||
)
|
||||
|
||||
type UserServiceTestSuite struct {
|
||||
ServiceTestSuite
|
||||
}
|
||||
|
||||
func TestUserServiceSuite(t *testing.T) {
|
||||
suite.Run(t, new(UserServiceTestSuite))
|
||||
}
|
||||
|
||||
func (s *UserServiceTestSuite) TestRegisterByPhone() {
|
||||
user, err := s.svc.RegisterByPhone("13800138000")
|
||||
s.Require().NoError(err)
|
||||
s.NotEmpty(user.ID)
|
||||
s.Equal("13800138000", *user.Phone)
|
||||
s.Equal(0, user.Points)
|
||||
}
|
||||
|
||||
func (s *UserServiceTestSuite) TestRegisterByPhone_Duplicate() {
|
||||
_, err := s.svc.RegisterByPhone("13800138001")
|
||||
s.Require().NoError(err)
|
||||
|
||||
_, err = s.svc.RegisterByPhone("13800138001")
|
||||
s.Error(err)
|
||||
s.Contains(err.Error(), "已注册")
|
||||
}
|
||||
|
||||
func (s *UserServiceTestSuite) TestGetByPhone() {
|
||||
created, err := s.svc.RegisterByPhone("13800138002")
|
||||
s.Require().NoError(err)
|
||||
|
||||
found, err := s.svc.GetByPhone("13800138002")
|
||||
s.Require().NoError(err)
|
||||
s.Equal(created.ID, found.ID)
|
||||
}
|
||||
|
||||
func (s *UserServiceTestSuite) TestGetByPhone_NotFound() {
|
||||
_, err := s.svc.GetByPhone("13800999999")
|
||||
s.Error(err)
|
||||
}
|
||||
|
||||
func (s *UserServiceTestSuite) TestGetByID() {
|
||||
created, err := s.svc.RegisterByPhone("13800138003")
|
||||
s.Require().NoError(err)
|
||||
|
||||
found, err := s.svc.GetByID(created.ID)
|
||||
s.Require().NoError(err)
|
||||
s.Equal(*created.Phone, *found.Phone)
|
||||
}
|
||||
|
||||
func (s *UserServiceTestSuite) TestUpdateProfile() {
|
||||
user, err := s.svc.RegisterByPhone("13800138004")
|
||||
s.Require().NoError(err)
|
||||
|
||||
updated, err := s.svc.UpdateProfile(user.ID, map[string]interface{}{
|
||||
"nickname": "TestUser",
|
||||
"bio": "Hello",
|
||||
})
|
||||
s.Require().NoError(err)
|
||||
s.Equal("TestUser", *updated.Nickname)
|
||||
s.Equal("Hello", *updated.Bio)
|
||||
}
|
||||
|
||||
func (s *UserServiceTestSuite) TestUpdateProfile_RejectInvalidFields() {
|
||||
user, err := s.svc.RegisterByPhone("13800138005")
|
||||
s.Require().NoError(err)
|
||||
|
||||
updated, err := s.svc.UpdateProfile(user.ID, map[string]interface{}{
|
||||
"points": 9999, // points is not in the allowed list
|
||||
})
|
||||
s.Require().NoError(err)
|
||||
s.Equal(0, updated.Points) // should not have changed
|
||||
}
|
||||
|
||||
func (s *UserServiceTestSuite) TestDeleteAccount() {
|
||||
user, err := s.svc.RegisterByPhone("13800138006")
|
||||
s.Require().NoError(err)
|
||||
|
||||
err = s.svc.DeleteAccount(user.ID)
|
||||
s.Require().NoError(err)
|
||||
|
||||
// After delete, the user still exists but fields are cleared
|
||||
deleted, err := s.svc.GetByID(user.ID)
|
||||
s.Require().NoError(err)
|
||||
s.Nil(deleted.Phone)
|
||||
s.Nil(deleted.Nickname)
|
||||
}
|
||||
|
||||
func (s *UserServiceTestSuite) TestHashAndCheckPassword() {
|
||||
hash, err := HashPassword("my-secret-pwd")
|
||||
s.Require().NoError(err)
|
||||
s.NotEmpty(hash)
|
||||
|
||||
s.True(CheckPassword(hash, "my-secret-pwd"))
|
||||
s.False(CheckPassword(hash, "wrong-password"))
|
||||
}
|
||||
Reference in New Issue
Block a user