mirror of
https://github.com/j3ssie/osmedeus.git
synced 2026-08-23 16:12:29 +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
108 lines
2.6 KiB
Go
108 lines
2.6 KiB
Go
package functions
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestNotifyWebhook_EmptyMessage(t *testing.T) {
|
|
registry := NewRegistry()
|
|
result, err := registry.Execute(
|
|
`notify_webhook("")`,
|
|
map[string]interface{}{},
|
|
)
|
|
|
|
require.NoError(t, err)
|
|
assert.Equal(t, false, result)
|
|
}
|
|
|
|
func TestNotifyWebhook_UndefinedMessage(t *testing.T) {
|
|
registry := NewRegistry()
|
|
result, err := registry.Execute(
|
|
`notify_webhook()`,
|
|
map[string]interface{}{},
|
|
)
|
|
|
|
require.NoError(t, err)
|
|
assert.Equal(t, false, result)
|
|
}
|
|
|
|
func TestNotifyWebhook_WhitespaceMessage(t *testing.T) {
|
|
registry := NewRegistry()
|
|
result, err := registry.Execute(
|
|
`notify_webhook(" ")`,
|
|
map[string]interface{}{},
|
|
)
|
|
|
|
// Whitespace-only message is not empty string, so it tries to send
|
|
// but will fail because webhook is not configured
|
|
require.NoError(t, err)
|
|
assert.Equal(t, false, result)
|
|
}
|
|
|
|
func TestSendWebhookEvent_EmptyEventType(t *testing.T) {
|
|
registry := NewRegistry()
|
|
result, err := registry.Execute(
|
|
`send_webhook_event("")`,
|
|
map[string]interface{}{},
|
|
)
|
|
|
|
require.NoError(t, err)
|
|
assert.Equal(t, false, result)
|
|
}
|
|
|
|
func TestSendWebhookEvent_UndefinedEventType(t *testing.T) {
|
|
registry := NewRegistry()
|
|
result, err := registry.Execute(
|
|
`send_webhook_event()`,
|
|
map[string]interface{}{},
|
|
)
|
|
|
|
require.NoError(t, err)
|
|
assert.Equal(t, false, result)
|
|
}
|
|
|
|
func TestSendWebhookEvent_WithData(t *testing.T) {
|
|
registry := NewRegistry()
|
|
// Even with valid event type and data, it will fail because webhook is not configured
|
|
result, err := registry.Execute(
|
|
`send_webhook_event("test_event", {key: "value", count: 42})`,
|
|
map[string]interface{}{},
|
|
)
|
|
|
|
require.NoError(t, err)
|
|
// Returns false because webhook is not configured in global config
|
|
assert.Equal(t, false, result)
|
|
}
|
|
|
|
func TestSendWebhookEvent_WithEmptyData(t *testing.T) {
|
|
registry := NewRegistry()
|
|
result, err := registry.Execute(
|
|
`send_webhook_event("test_event", {})`,
|
|
map[string]interface{}{},
|
|
)
|
|
|
|
require.NoError(t, err)
|
|
// Returns false because webhook is not configured
|
|
assert.Equal(t, false, result)
|
|
}
|
|
|
|
func TestSendWebhookEvent_WithoutData(t *testing.T) {
|
|
registry := NewRegistry()
|
|
// Event type provided but no data object
|
|
result, err := registry.Execute(
|
|
`send_webhook_event("test_event")`,
|
|
map[string]interface{}{},
|
|
)
|
|
|
|
require.NoError(t, err)
|
|
// Returns false because webhook is not configured
|
|
assert.Equal(t, false, result)
|
|
}
|
|
|
|
// Note: Actual webhook message/event sending tests require configured webhooks
|
|
// and are not included here. The functions will return false when webhooks
|
|
// are not configured, which is the expected behavior.
|