package memory import ( "context" "testing" "telesrv/internal/domain" ) func TestCheckUsernameReportsReservedAsTaken(t *testing.T) { ctx := context.Background() reserved := NewReservedUsernameStore() if _, err := reserved.ReserveUsername(ctx, "support", "official", "ops"); err != nil { t.Fatalf("seed reserve: %v", err) } registry := NewCollectibleUsernameStore().WithReservedUsernames(reserved) users := NewUserStore() users.AttachUsernameRegistry(registry) u, _ := users.Create(ctx, domain.User{AccessHash: 1, Phone: "15550001000", FirstName: "A"}) if ok, err := users.CheckUsername(ctx, u.ID, "support"); err != nil || ok { t.Fatalf("CheckUsername(reserved) = %v, %v; want false, nil", ok, err) } if ok, err := users.CheckUsername(ctx, u.ID, "freename"); err != nil || !ok { t.Fatalf("CheckUsername(free) = %v, %v; want true, nil", ok, err) } channels := NewChannelStore() channels.AttachUsernameRegistry(registry) created, err := channels.CreateChannel(ctx, domain.CreateChannelRequest{CreatorUserID: u.ID, Title: "C", Megagroup: true, Date: 1}) if err != nil { t.Fatalf("create channel: %v", err) } if ok, err := channels.CheckUsername(ctx, u.ID, created.Channel.ID, "support"); err != nil || ok { t.Fatalf("channel CheckUsername(reserved) = %v, %v; want false, nil", ok, err) } }