package authblock import ( "testing" "time" "galaxy/user/internal/domain/common" "github.com/stretchr/testify/require" ) func TestBlockedEmailSubjectValidate(t *testing.T) { t.Parallel() tests := []struct { name string record BlockedEmailSubject wantErr bool }{ { name: "valid without actor or user", record: BlockedEmailSubject{ Email: common.Email("pilot@example.com"), ReasonCode: common.ReasonCode("policy_blocked"), BlockedAt: time.Unix(1_775_240_000, 0).UTC(), }, }, { name: "valid with actor and user", record: BlockedEmailSubject{ Email: common.Email("pilot@example.com"), ReasonCode: common.ReasonCode("policy_blocked"), BlockedAt: time.Unix(1_775_240_000, 0).UTC(), Actor: common.ActorRef{Type: common.ActorType("admin"), ID: common.ActorID("admin-1")}, ResolvedUserID: common.UserID("user-123"), }, }, { name: "missing blocked at", record: BlockedEmailSubject{ Email: common.Email("pilot@example.com"), ReasonCode: common.ReasonCode("policy_blocked"), }, wantErr: true, }, } for _, tt := range tests { tt := tt t.Run(tt.name, func(t *testing.T) { t.Parallel() err := tt.record.Validate() if tt.wantErr { require.Error(t, err) return } require.NoError(t, err) }) } }