package store import ( "context" "testing" ) // 微信首次登录建号:无邮箱、按 openid 可查回。 func TestCreateAndGetWechatUser(t *testing.T) { p := newTestStore(t) ctx := context.Background() // 不存在时返回 (nil, nil),不报错 if u, err := p.GetUserByWechatOpenID(ctx, "openid-x"); err != nil || u != nil { t.Fatalf("未建号应返回 nil,nil,得 %v,%v", u, err) } u, err := p.CreateWechatUser(ctx, "openid-x", "微信用户") if err != nil { t.Fatalf("建号失败: %v", err) } if u.Email != "" { t.Fatalf("微信用户不该有邮箱,得 %q", u.Email) } got, err := p.GetUserByWechatOpenID(ctx, "openid-x") if err != nil || got == nil || got.ID != u.ID { t.Fatalf("按 openid 查不回: %v,%v", got, err) } // 空 openid 查询不匹配任何人(避免存量邮箱用户的空串被 openid 查询命中) if got, _ := p.GetUserByWechatOpenID(ctx, ""); got != nil { t.Fatalf("空 openid 不该命中任何用户,得 %+v", got) } }