package tgbot import ( "strings" "testing" "git.vakhrushev.me/av/jellybit/internal/store" ) // Карточка ревью без плана называет причину: иначе владелец видит «Нужно // подтверждение» без плана и без кнопки «Применить» и не знает, что чинить. // Причина показа старше записанной — она про текущий план. func TestReviewCard_NamesPreviewProblem(t *testing.T) { t.Run("причина показа", func(t *testing.T) { b, _, _, _ := newTestBot(t, []int64{7}) rd := reviewData(store.StateReview) rd.Preview = nil rd.PreviewError = `layout: имя не помещается: "ЫЫЫ…ЫЫЫ" — 400 байт при пределе 255` rd.Download.ErrorMsg = store.NullString("устаревшая причина прошлого перехода") text, _ := b.renderCard(rd) if !strings.Contains(text, "не помещается") { t.Errorf("карточка не назвала причину:\n%s", text) } if strings.Contains(text, "устаревшая") { t.Errorf("записанная причина не должна перебивать посчитанную на показе:\n%s", text) } }) t.Run("записанная причина, когда посчитанной нет", func(t *testing.T) { b, _, _, _ := newTestBot(t, []int64{7}) rd := reviewData(store.StateReview) rd.Preview = nil rd.Download.ErrorMsg = store.NullString("целевой файл уже существует") text, _ := b.renderCard(rd) if !strings.Contains(text, "уже существует") { t.Errorf("карточка не назвала записанную причину:\n%s", text) } }) t.Run("причины нет — строки нет", func(t *testing.T) { b, _, _, _ := newTestBot(t, []int64{7}) rd := reviewData(store.StateReview) rd.Preview = nil text, _ := b.renderCard(rd) if strings.Contains(text, "Не удаётся построить план") { t.Errorf("без причины строки быть не должно:\n%s", text) } }) }