diff --git a/internal/domain/table_name_test.go b/internal/domain/table_name_test.go new file mode 100644 index 0000000..760eacb --- /dev/null +++ b/internal/domain/table_name_test.go @@ -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 +}