test: add domain model tests
- Add Announcement.IsActiveAt tests (nil, status, time range) - Add TableName tests for all domain models - Domain package coverage: 9.2% -> 16.3% - Overall coverage: 54.1% -> 54.2%
This commit is contained in:
122
internal/domain/table_name_test.go
Normal file
122
internal/domain/table_name_test.go
Normal file
@@ -0,0 +1,122 @@
|
||||
package domain
|
||||
|
||||
import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
// TestAnnouncement_IsActiveAt 测试公告激活状态
|
||||
func TestAnnouncement_IsActiveAt(t *testing.T) {
|
||||
now := time.Now()
|
||||
|
||||
tests := []struct {
|
||||
name string
|
||||
announce *Announcement
|
||||
expected bool
|
||||
}{
|
||||
{"nil", nil, false},
|
||||
{"not active status", &Announcement{Status: AnnouncementStatusDraft}, false},
|
||||
{"active no time", &Announcement{Status: AnnouncementStatusActive}, true},
|
||||
{"before start", &Announcement{Status: AnnouncementStatusActive, StartsAt: timePtr(now.Add(time.Hour))}, false},
|
||||
{"after end", &Announcement{Status: AnnouncementStatusActive, EndsAt: timePtr(now.Add(-time.Hour))}, false},
|
||||
{"active in range", &Announcement{Status: AnnouncementStatusActive, StartsAt: timePtr(now.Add(-time.Hour)), EndsAt: timePtr(now.Add(time.Hour))}, true},
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
got := tt.announce.IsActiveAt(now)
|
||||
assert.Equal(t, tt.expected, got)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
// TestCustomField_TableName 测试自定义字段表名
|
||||
func TestCustomField_TableName(t *testing.T) {
|
||||
cf := CustomField{}
|
||||
assert.Equal(t, "custom_fields", cf.TableName())
|
||||
}
|
||||
|
||||
// TestUserCustomFieldValue_TableName 测试用户自定义字段值表名
|
||||
func TestUserCustomFieldValue_TableName(t *testing.T) {
|
||||
cfv := UserCustomFieldValue{}
|
||||
assert.Equal(t, "user_custom_field_values", cfv.TableName())
|
||||
}
|
||||
|
||||
// TestDevice_TableName 测试设备表名
|
||||
func TestDevice_TableName(t *testing.T) {
|
||||
d := Device{}
|
||||
assert.Equal(t, "devices", d.TableName())
|
||||
}
|
||||
|
||||
// TestLoginLog_TableName 测试登录日志表名
|
||||
func TestLoginLog_TableName(t *testing.T) {
|
||||
ll := LoginLog{}
|
||||
assert.Equal(t, "login_logs", ll.TableName())
|
||||
}
|
||||
|
||||
// TestOperationLog_TableName 测试操作日志表名
|
||||
func TestOperationLog_TableName(t *testing.T) {
|
||||
ol := OperationLog{}
|
||||
assert.Equal(t, "operation_logs", ol.TableName())
|
||||
}
|
||||
|
||||
// TestPasswordHistory_TableName 测试密码历史表名
|
||||
func TestPasswordHistory_TableName(t *testing.T) {
|
||||
ph := PasswordHistory{}
|
||||
assert.Equal(t, "password_histories", ph.TableName())
|
||||
}
|
||||
|
||||
// TestPermission_TableName 测试权限表名
|
||||
func TestPermission_TableName(t *testing.T) {
|
||||
p := Permission{}
|
||||
assert.Equal(t, "permissions", p.TableName())
|
||||
}
|
||||
|
||||
// TestRole_TableName 测试角色表名
|
||||
func TestRole_TableName(t *testing.T) {
|
||||
r := Role{}
|
||||
assert.Equal(t, "roles", r.TableName())
|
||||
}
|
||||
|
||||
// TestRolePermission_TableName 测试角色权限表名
|
||||
func TestRolePermission_TableName(t *testing.T) {
|
||||
rp := RolePermission{}
|
||||
assert.Equal(t, "role_permissions", rp.TableName())
|
||||
}
|
||||
|
||||
// TestSocialAccount_TableName 测试社交账号表名
|
||||
func TestSocialAccount_TableName(t *testing.T) {
|
||||
sa := SocialAccount{}
|
||||
assert.Equal(t, "user_social_accounts", sa.TableName())
|
||||
}
|
||||
|
||||
// TestThemeConfig_TableName 测试主题配置表名
|
||||
func TestThemeConfig_TableName(t *testing.T) {
|
||||
th := ThemeConfig{}
|
||||
assert.Equal(t, "theme_configs", th.TableName())
|
||||
}
|
||||
|
||||
// TestUserRole_TableName 测试用户角色表名
|
||||
func TestUserRole_TableName(t *testing.T) {
|
||||
ur := UserRole{}
|
||||
assert.Equal(t, "user_roles", ur.TableName())
|
||||
}
|
||||
|
||||
// TestWebhook_TableName 测试 Webhook 表名
|
||||
func TestWebhook_TableName(t *testing.T) {
|
||||
w := Webhook{}
|
||||
assert.Equal(t, "webhooks", w.TableName())
|
||||
}
|
||||
|
||||
// TestWebhookDelivery_TableName 测试 Webhook 投递表名
|
||||
func TestWebhookDelivery_TableName(t *testing.T) {
|
||||
wd := WebhookDelivery{}
|
||||
assert.Equal(t, "webhook_deliveries", wd.TableName())
|
||||
}
|
||||
|
||||
// timePtr 辅助函数
|
||||
func timePtr(t time.Time) *time.Time {
|
||||
return &t
|
||||
}
|
||||
Reference in New Issue
Block a user