38 lines
1.3 KiB
Go
38 lines
1.3 KiB
Go
package activity_test
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
|
|
"hyapp/pkg/xerr"
|
|
activitydomain "hyapp/services/activity-service/internal/domain/activity"
|
|
activityservice "hyapp/services/activity-service/internal/service/activity"
|
|
"hyapp/services/activity-service/internal/testutil/mysqltest"
|
|
)
|
|
|
|
// TestGetActivityStatusUsesRepository 验证活动状态读取不依赖 gRPC transport。
|
|
func TestGetActivityStatusUsesRepository(t *testing.T) {
|
|
repository := mysqltest.NewRepository(t)
|
|
repository.PutActivity(activitydomain.Activity{ActivityID: "lucky-gift", Status: activitydomain.StatusActive})
|
|
svc := activityservice.New(activityservice.Config{NodeID: "activity-a"}, repository)
|
|
|
|
activity, err := svc.GetActivityStatus(context.Background(), "lucky-gift")
|
|
if err != nil {
|
|
t.Fatalf("GetActivityStatus failed: %v", err)
|
|
}
|
|
|
|
if activity.Status != activitydomain.StatusActive {
|
|
t.Fatalf("unexpected activity: %+v", activity)
|
|
}
|
|
}
|
|
|
|
// TestGetActivityStatusValidatesID 锁定空 activity_id 的错误 reason。
|
|
func TestGetActivityStatusValidatesID(t *testing.T) {
|
|
svc := activityservice.New(activityservice.Config{NodeID: "activity-a"}, nil)
|
|
|
|
_, err := svc.GetActivityStatus(context.Background(), "")
|
|
if !xerr.IsCode(err, xerr.InvalidArgument) {
|
|
t.Fatalf("expected INVALID_ARGUMENT, got %v", err)
|
|
}
|
|
}
|