fix: avoid company writes for employee serials
This commit is contained in:
@@ -33,6 +33,34 @@ func TestUsersService_Create_Success(t *testing.T) {
|
||||
database.DB.Unscoped().Where("employee_name = ?", "新技术员").Delete(&models.EmployeeSerial{})
|
||||
}
|
||||
|
||||
func TestUsersService_Create_DoesNotTouchCompanyTable(t *testing.T) {
|
||||
database.DB.Unscoped().Where("company_name = ?", "内部员工").Delete(&models.Company{})
|
||||
company := models.Company{CompanyName: "内部员工", IsActive: true}
|
||||
assert.NoError(t, database.DB.Create(&company).Error)
|
||||
assert.NoError(t, database.DB.Delete(&company).Error)
|
||||
|
||||
svc := UsersService{}
|
||||
dto, err := svc.Create(models.CreateUserDTO{
|
||||
Password: "password123",
|
||||
Name: "软删公司员工",
|
||||
Phone: "13800000008",
|
||||
EmployeeNo: "users_create_restore_company",
|
||||
Position: "硬件工程师",
|
||||
Role: "hardware_engineer",
|
||||
})
|
||||
assert.NoError(t, err)
|
||||
assert.NotNil(t, dto)
|
||||
assert.Len(t, dto.EmployeeSerials, 1)
|
||||
|
||||
var count int64
|
||||
database.DB.Model(&models.Company{}).Where("company_name = ?", "内部员工").Count(&count)
|
||||
assert.Equal(t, int64(0), count)
|
||||
|
||||
database.DB.Unscoped().Where("username = ?", "users_create_restore_company").Delete(&models.User{})
|
||||
database.DB.Unscoped().Where("employee_name = ?", "软删公司员工").Delete(&models.EmployeeSerial{})
|
||||
database.DB.Unscoped().Where("company_name = ?", "内部员工").Delete(&models.Company{})
|
||||
}
|
||||
|
||||
func TestUsersService_Create_BlocksEmployeeRole(t *testing.T) {
|
||||
svc := UsersService{}
|
||||
_, err := svc.Create(models.CreateUserDTO{
|
||||
|
||||
Reference in New Issue
Block a user