Files
osmedeus/test/e2e/function_test.go

65 lines
1.8 KiB
Go

package e2e
import (
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestFunction_List(t *testing.T) {
log := NewTestLogger(t)
log.Step("Testing function list command")
stdout, _, err := runCLIWithLog(t, log, "function", "list")
require.NoError(t, err)
log.Info("Asserting stdout contains function categories")
assert.Contains(t, stdout, "| File")
assert.Contains(t, stdout, "| String")
log.Success("function list displays all function categories")
}
func TestFunction_Eval_Simple(t *testing.T) {
log := NewTestLogger(t)
log.Step("Testing function eval with simple expression")
log.Info("Evaluating expression: 1+1")
stdout, _, err := runCLIWithLog(t, log, "function", "eval", "-e", "1+1")
require.NoError(t, err)
log.Info("Asserting stdout contains result: 2")
assert.Contains(t, stdout, "2")
log.Success("function eval evaluates simple expressions")
}
func TestFunction_Eval_WithTarget(t *testing.T) {
log := NewTestLogger(t)
log.Step("Testing function eval with target variable")
log.Info("Evaluating expression: target with -t example.com")
stdout, _, err := runCLIWithLog(t, log, "function", "eval", "-e", "target", "-t", "example.com")
require.NoError(t, err)
log.Info("Asserting stdout contains target value")
assert.Contains(t, stdout, "example.com")
log.Success("function eval resolves target variable")
}
func TestFunction_Eval_StringFunc(t *testing.T) {
log := NewTestLogger(t)
log.Step("Testing function eval with string function")
log.Info("Evaluating expression: trim(' hello ')")
stdout, _, err := runCLIWithLog(t, log, "function", "eval", "-e", "trim(' hello ')")
require.NoError(t, err)
log.Info("Asserting stdout contains trimmed result")
assert.Contains(t, stdout, "hello")
log.Success("function eval executes string functions")
}