56 lines
1.4 KiB
Go
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)
|
|
}
|
|
}
|