Files
plainleaf/server/runtime_api_test.go
T
Zef Hemel c04d7c332f First pass at "Remote API" (see docs)
Note: this is highly experimental and will likely change in the future.
2026-03-17 09:57:08 +01:00

57 lines
1.4 KiB
Go

package server
import (
"net/http"
"net/http/httptest"
"strings"
"testing"
"github.com/stretchr/testify/assert"
)
func TestHandleLuaAPI_EmptyBody(t *testing.T) {
bridge := NewRuntimeBridge(nil)
req := httptest.NewRequest(http.MethodPost, "/.runtime/lua", strings.NewReader(""))
w := httptest.NewRecorder()
bridge.HandleLuaAPI(w, req)
assert.Equal(t, http.StatusBadRequest, w.Code)
}
func TestHandleLuaAPI_NoBrowser(t *testing.T) {
bridge := NewRuntimeBridge(nil)
req := httptest.NewRequest(http.MethodPost, "/.runtime/lua", strings.NewReader("1 + 1"))
w := httptest.NewRecorder()
bridge.HandleLuaAPI(w, req)
assert.Equal(t, http.StatusServiceUnavailable, w.Code)
assert.Contains(t, w.Body.String(), "No headless browser running")
}
func TestHandleLuaScriptAPI_EmptyBody(t *testing.T) {
bridge := NewRuntimeBridge(nil)
req := httptest.NewRequest(http.MethodPost, "/.runtime/lua_script", strings.NewReader(""))
w := httptest.NewRecorder()
bridge.HandleLuaScriptAPI(w, req)
assert.Equal(t, http.StatusBadRequest, w.Code)
}
func TestHandleLuaScriptAPI_NoBrowser(t *testing.T) {
bridge := NewRuntimeBridge(nil)
req := httptest.NewRequest(http.MethodPost, "/.runtime/lua_script", strings.NewReader("local x = 1\nreturn x"))
w := httptest.NewRecorder()
bridge.HandleLuaScriptAPI(w, req)
assert.Equal(t, http.StatusServiceUnavailable, w.Code)
assert.Contains(t, w.Body.String(), "No headless browser running")
}