spark-server/internal/module/user/logic/account_send_test.go
2026-09-29 16:37:36 +08:00

56 lines
1.4 KiB
Go

package logic
import (
"context"
"errors"
"testing"
"time"
"spark-server/internal/infrastructure/id"
"spark-server/internal/module/user/entity"
usermodel "spark-server/internal/module/user/model"
"spark-server/internal/pkg/errs"
)
func TestAssertCanSendMuted(t *testing.T) {
ids, err := id.New(1)
if err != nil {
t.Fatal(err)
}
repo := usermodel.NewMemoryRepo()
users := NewService(repo, nil, ids, nil)
ctx := context.Background()
u, err := users.AuthenticateEmail(ctx, "test11@spark.com", "1", &entity.LoginDevice{DeviceID: 11, DeviceType: entity.DeviceWeb})
if err != nil {
t.Fatal(err)
}
until := time.Now().Add(time.Hour)
if err := repo.ExtendSendMutedUntil(ctx, u.ID, until); err != nil {
t.Fatal(err)
}
if err := users.AssertCanSend(ctx, u.ID); !errors.Is(err, errs.ErrSendMuted) {
t.Fatalf("muted %v", err)
}
}
func TestDisableAccount(t *testing.T) {
ids, err := id.New(2)
if err != nil {
t.Fatal(err)
}
repo := usermodel.NewMemoryRepo()
users := NewService(repo, nil, ids, nil)
ctx := context.Background()
u, err := users.AuthenticateEmail(ctx, "test12@spark.com", "1", &entity.LoginDevice{DeviceID: 12, DeviceType: entity.DeviceWeb})
if err != nil {
t.Fatal(err)
}
if err := users.DisableAccount(ctx, u.ID); err != nil {
t.Fatal(err)
}
got, err := repo.GetByID(ctx, u.ID)
if err != nil || got.Status != entity.StatusDisabled {
t.Fatalf("status %+v %v", got, err)
}
}