mirror of
https://github.com/aykhans/sarin.git
synced 2026-02-28 06:49:13 +00:00
171 lines
4.0 KiB
Go
171 lines
4.0 KiB
Go
package e2e
|
|
|
|
import (
|
|
"testing"
|
|
)
|
|
|
|
func TestStringToUpper(t *testing.T) {
|
|
t.Parallel()
|
|
cs := newCaptureServer()
|
|
defer cs.Close()
|
|
|
|
res := run("-U", cs.URL, "-r", "1", "-q", "-o", "json",
|
|
"-H", `X-Upper: {{ strings_ToUpper "hello" }}`)
|
|
assertExitCode(t, res, 0)
|
|
|
|
req := cs.lastRequest()
|
|
if v := req.Headers["X-Upper"]; len(v) == 0 || v[0] != "HELLO" {
|
|
t.Errorf("expected X-Upper: HELLO, got %v", v)
|
|
}
|
|
}
|
|
|
|
func TestStringToLower(t *testing.T) {
|
|
t.Parallel()
|
|
cs := newCaptureServer()
|
|
defer cs.Close()
|
|
|
|
res := run("-U", cs.URL, "-r", "1", "-q", "-o", "json",
|
|
"-H", `X-Lower: {{ strings_ToLower "WORLD" }}`)
|
|
assertExitCode(t, res, 0)
|
|
|
|
req := cs.lastRequest()
|
|
if v := req.Headers["X-Lower"]; len(v) == 0 || v[0] != "world" {
|
|
t.Errorf("expected X-Lower: world, got %v", v)
|
|
}
|
|
}
|
|
|
|
func TestStringReplace(t *testing.T) {
|
|
t.Parallel()
|
|
cs := newCaptureServer()
|
|
defer cs.Close()
|
|
|
|
res := run("-U", cs.URL, "-r", "1", "-M", "POST", "-q", "-o", "json",
|
|
"-B", `{{ strings_Replace "foo-bar-baz" "-" "_" -1 }}`)
|
|
assertExitCode(t, res, 0)
|
|
|
|
req := cs.lastRequest()
|
|
if req.Body != "foo_bar_baz" {
|
|
t.Errorf("expected body foo_bar_baz, got %q", req.Body)
|
|
}
|
|
}
|
|
|
|
func TestStringRemoveSpaces(t *testing.T) {
|
|
t.Parallel()
|
|
cs := newCaptureServer()
|
|
defer cs.Close()
|
|
|
|
res := run("-U", cs.URL, "-r", "1", "-M", "POST", "-q", "-o", "json",
|
|
"-B", `{{ strings_RemoveSpaces "hello world foo" }}`)
|
|
assertExitCode(t, res, 0)
|
|
|
|
req := cs.lastRequest()
|
|
if req.Body != "helloworldfoo" {
|
|
t.Errorf("expected body helloworldfoo, got %q", req.Body)
|
|
}
|
|
}
|
|
|
|
func TestStringTrimPrefix(t *testing.T) {
|
|
t.Parallel()
|
|
cs := newCaptureServer()
|
|
defer cs.Close()
|
|
|
|
res := run("-U", cs.URL, "-r", "1", "-M", "POST", "-q", "-o", "json",
|
|
"-B", `{{ strings_TrimPrefix "hello-world" "hello-" }}`)
|
|
assertExitCode(t, res, 0)
|
|
|
|
req := cs.lastRequest()
|
|
if req.Body != "world" {
|
|
t.Errorf("expected body world, got %q", req.Body)
|
|
}
|
|
}
|
|
|
|
func TestStringTrimSuffix(t *testing.T) {
|
|
t.Parallel()
|
|
cs := newCaptureServer()
|
|
defer cs.Close()
|
|
|
|
res := run("-U", cs.URL, "-r", "1", "-M", "POST", "-q", "-o", "json",
|
|
"-B", `{{ strings_TrimSuffix "hello-world" "-world" }}`)
|
|
assertExitCode(t, res, 0)
|
|
|
|
req := cs.lastRequest()
|
|
if req.Body != "hello" {
|
|
t.Errorf("expected body hello, got %q", req.Body)
|
|
}
|
|
}
|
|
|
|
func TestSliceJoin(t *testing.T) {
|
|
t.Parallel()
|
|
cs := newCaptureServer()
|
|
defer cs.Close()
|
|
|
|
res := run("-U", cs.URL, "-r", "1", "-M", "POST", "-q", "-o", "json",
|
|
"-B", `{{ slice_Join (slice_Str "a" "b" "c") ", " }}`)
|
|
assertExitCode(t, res, 0)
|
|
|
|
req := cs.lastRequest()
|
|
if req.Body != "a, b, c" {
|
|
t.Errorf("expected body 'a, b, c', got %q", req.Body)
|
|
}
|
|
}
|
|
|
|
func TestStringFirst(t *testing.T) {
|
|
t.Parallel()
|
|
cs := newCaptureServer()
|
|
defer cs.Close()
|
|
|
|
res := run("-U", cs.URL, "-r", "1", "-M", "POST", "-q", "-o", "json",
|
|
"-B", `{{ strings_First "abcdef" 3 }}`)
|
|
assertExitCode(t, res, 0)
|
|
|
|
req := cs.lastRequest()
|
|
if req.Body != "abc" {
|
|
t.Errorf("expected body abc, got %q", req.Body)
|
|
}
|
|
}
|
|
|
|
func TestStringLast(t *testing.T) {
|
|
t.Parallel()
|
|
cs := newCaptureServer()
|
|
defer cs.Close()
|
|
|
|
res := run("-U", cs.URL, "-r", "1", "-M", "POST", "-q", "-o", "json",
|
|
"-B", `{{ strings_Last "abcdef" 3 }}`)
|
|
assertExitCode(t, res, 0)
|
|
|
|
req := cs.lastRequest()
|
|
if req.Body != "def" {
|
|
t.Errorf("expected body def, got %q", req.Body)
|
|
}
|
|
}
|
|
|
|
func TestStringTruncate(t *testing.T) {
|
|
t.Parallel()
|
|
cs := newCaptureServer()
|
|
defer cs.Close()
|
|
|
|
res := run("-U", cs.URL, "-r", "1", "-M", "POST", "-q", "-o", "json",
|
|
"-B", `{{ strings_Truncate "hello world" 5 }}`)
|
|
assertExitCode(t, res, 0)
|
|
|
|
req := cs.lastRequest()
|
|
if req.Body != "hello..." {
|
|
t.Errorf("expected body 'hello...', got %q", req.Body)
|
|
}
|
|
}
|
|
|
|
func TestSliceStr(t *testing.T) {
|
|
t.Parallel()
|
|
cs := newCaptureServer()
|
|
defer cs.Close()
|
|
|
|
res := run("-U", cs.URL, "-r", "1", "-M", "POST", "-q", "-o", "json",
|
|
"-B", `{{ slice_Join (slice_Str "a" "b" "c") "-" }}`)
|
|
assertExitCode(t, res, 0)
|
|
|
|
req := cs.lastRequest()
|
|
if req.Body != "a-b-c" {
|
|
t.Errorf("expected body a-b-c, got %q", req.Body)
|
|
}
|
|
}
|