fix(guilds): фон комнаты в READY и без дублей категорий в шаблонах
- ReadyChannel отдаёт background_file_id: после перезагрузки фон комнаты больше не теряется до REST-запроса (AGENT.md 7.5) - шаблон больше не создаёт категории дважды: они перечислены в шаблоне и раньше создавались ещё и по ссылке из комнаты - тест: структура «Сообщества» ровно 7 комнат без повторов
This commit is contained in:
@@ -157,3 +157,36 @@ func contains(list []string, value string) bool {
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func TestGuildFromTemplateCreatesNoDuplicates(t *testing.T) {
|
||||
srv, _ := newTestServer(t)
|
||||
owner := registerAndLogin(t, srv, "tpl_dup", "tpl-dup@example.com")
|
||||
created := doJSON(t, srv, http.MethodPost, "/api/v1/guilds",
|
||||
`{"name":"Дубли","template_id":"community"}`, owner)
|
||||
guildID := decodeResponse[struct {
|
||||
Guild struct {
|
||||
ID string `json:"id"`
|
||||
} `json:"guild"`
|
||||
}](t, created).Guild.ID
|
||||
|
||||
channels := doJSON(t, srv, http.MethodGet, "/api/v1/guilds/"+guildID+"/channels", "", owner)
|
||||
list := decodeResponse[struct {
|
||||
Channels []struct {
|
||||
Name string `json:"name"`
|
||||
Type string `json:"type"`
|
||||
} `json:"channels"`
|
||||
}](t, channels)
|
||||
seen := map[string]int{}
|
||||
for _, channel := range list.Channels {
|
||||
seen[channel.Type+":"+channel.Name]++
|
||||
}
|
||||
for key, count := range seen {
|
||||
if count > 1 {
|
||||
t.Fatalf("комната %s создана %d раза", key, count)
|
||||
}
|
||||
}
|
||||
// «Сообщество»: 2 категории, 4 текстовые и 1 голосовая.
|
||||
if len(list.Channels) != 7 {
|
||||
t.Fatalf("комнат %d, ожидалось 7", len(list.Channels))
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user