package telegram import ( "log/slog" "net/http" "testing" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "git.vakhrushev.me/av/transcriber/internal/contract" ) // Заглушка отдаёт «канал не поднят» и молчит: записать недоставку ей нечем — // идентификатора задачи контракт отправки не несёт, и пишет её шаг конвейера. func TestAbsentSenderReportsChannelDown(t *testing.T) { sender := NewAbsentMessageSender() err := sender.Send("расшифровка записи", 100, nil) require.ErrorIs(t, err, contract.ErrDeliveryChannelDown) } // Непустой годный токен по-прежнему даёт настоящего отправителя: прежний путь // сохранён, и меняется только то, что клиента теперь отдают готовым. func TestSenderIsBuiltFromLiveBot(t *testing.T) { bot, _ := newProbeBot(t, func(w http.ResponseWriter, _ *http.Request) { if _, err := w.Write([]byte(getMeResponse)); err != nil { t.Errorf("подставной Telegram не смог ответить: %v", err) } }) sender := NewTelegramMessageSender(bot, slog.New(slog.DiscardHandler)) require.NotNil(t, sender) assert.Same(t, bot, sender.bot, "отправитель говорит с тем же клиентом, что и транспорт") }