mirror of
https://github.com/j3ssie/osmedeus.git
synced 2026-08-31 20:29:38 +02:00
- 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
107 lines
2.6 KiB
Go
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.
|