Files
osmedeus/internal/functions/telegram_functions_test.go
T
j3ssie 1403d20a4d feat: add LLM step executor with vision and tool support, event workflow system, and inheritance
- Add LLM executor supporting OpenAI vision, tool calling, embeddings, and structured outputs
- Introduce event emitter/receiver workflows with deduplication and filtering (generate_event functions)
- Add workflow extends/override system enabling inheritance chains and step merge modes
- Update function naming to snake_case across all testdata (fileExists→file_exists, etc.)
- Add comprehensive test fixtures for linter, events, CDN, step dependencies, and extends workflows
2026-01-20 18:23:57 +08:00

107 lines
2.6 KiB
Go

package functions
import (
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestNotifyTelegram_EmptyMessage(t *testing.T) {
registry := NewRegistry()
result, err := registry.Execute(
`notify_telegram("")`,
map[string]interface{}{},
)
require.NoError(t, err)
assert.Equal(t, false, result)
}
func TestNotifyTelegram_UndefinedMessage(t *testing.T) {
registry := NewRegistry()
result, err := registry.Execute(
`notify_telegram()`,
map[string]interface{}{},
)
require.NoError(t, err)
assert.Equal(t, false, result)
}
func TestSendTelegramFile_EmptyPath(t *testing.T) {
registry := NewRegistry()
result, err := registry.Execute(
`send_telegram_file("")`,
map[string]interface{}{},
)
require.NoError(t, err)
assert.Equal(t, false, result)
}
func TestSendTelegramFile_UndefinedPath(t *testing.T) {
registry := NewRegistry()
result, err := registry.Execute(
`send_telegram_file()`,
map[string]interface{}{},
)
require.NoError(t, err)
assert.Equal(t, false, result)
}
func TestSendTelegramFile_NonExistentFile(t *testing.T) {
registry := NewRegistry()
result, err := registry.Execute(
`send_telegram_file("/nonexistent/path/to/file.txt")`,
map[string]interface{}{},
)
require.NoError(t, err)
// Returns false because either Telegram is not configured
// or the file doesn't exist (checked first in notify package)
assert.Equal(t, false, result)
}
func TestNotifyTelegram_Whitespace(t *testing.T) {
registry := NewRegistry()
result, err := registry.Execute(
`notify_telegram(" ")`,
map[string]interface{}{},
)
// Whitespace-only message is not empty string, so it tries to send
// but will fail because Telegram is not configured
require.NoError(t, err)
assert.Equal(t, false, result)
}
func TestSendTelegramFile_WithCaption(t *testing.T) {
registry := NewRegistry()
result, err := registry.Execute(
`send_telegram_file("/nonexistent/file.txt", "My caption")`,
map[string]interface{}{},
)
require.NoError(t, err)
// Returns false because Telegram is not configured
assert.Equal(t, false, result)
}
func TestSendTelegramFile_WithEmptyCaption(t *testing.T) {
registry := NewRegistry()
result, err := registry.Execute(
`send_telegram_file("/nonexistent/file.txt", "")`,
map[string]interface{}{},
)
require.NoError(t, err)
// Returns false because Telegram is not configured
assert.Equal(t, false, result)
}
// Note: Actual Telegram message/file sending tests require a configured
// Telegram bot and are not included here. The functions will return false
// when Telegram is not configured, which is the expected behavior.