feat(server/auth): Register 加 inviteCode + ReferralHook(注册后 best-effort 归因)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
wangjia
2026-07-13 07:33:42 +08:00
parent 2fb7391a17
commit 54d106ca8b
6 changed files with 83 additions and 26 deletions
+4 -4
View File
@@ -43,7 +43,7 @@ func TestService_RegisterDevice_OnRegisterAndLogin(t *testing.T) {
t.Fatalf("SendCode: %v", err)
}
code := codeInRedis(t, svc, email)
if _, e := svc.Register(ctx, email, code, pw, "1.2.3.4", meta); e != nil {
if _, e := svc.Register(ctx, email, code, pw, "1.2.3.4", meta, ""); e != nil {
t.Fatalf("Register: %v", e)
}
if len(reg.calls) != 1 || reg.calls[0].meta.DeviceID != "dev-uuid-1" || reg.calls[0].meta.Platform != "macos" {
@@ -79,7 +79,7 @@ func TestService_Login_SurfacesDeviceLimit(t *testing.T) {
t.Fatalf("SendCode: %v", err)
}
code := codeInRedis(t, svc, email)
if _, e := svc.Register(ctx, email, code, pw, "", meta); e != nil {
if _, e := svc.Register(ctx, email, code, pw, "", meta, ""); e != nil {
t.Fatalf("Register: %v", e)
}
out, _, e := svc.Login(ctx, email, pw, "", meta)
@@ -104,7 +104,7 @@ func TestService_RegisterDevice_BestEffort(t *testing.T) {
t.Fatalf("SendCode: %v", err)
}
code := codeInRedis(t, svc, email)
if _, e := svc.Register(ctx, email, code, "supersecret", "", DeviceMeta{DeviceID: "x", Platform: "windows"}); e != nil {
if _, e := svc.Register(ctx, email, code, "supersecret", "", DeviceMeta{DeviceID: "x", Platform: "windows"}, ""); e != nil {
t.Fatalf("Register must succeed despite registrar error: %v", e)
}
}
@@ -120,7 +120,7 @@ func TestService_RegisterDevice_NoMeta(t *testing.T) {
t.Fatalf("SendCode: %v", err)
}
code := codeInRedis(t, svc, email)
if _, e := svc.Register(ctx, email, code, "supersecret", "", DeviceMeta{}); e != nil {
if _, e := svc.Register(ctx, email, code, "supersecret", "", DeviceMeta{}, ""); e != nil {
t.Fatalf("Register: %v", e)
}
if len(reg.calls) != 0 {