WitNote / internal /handlers /navigation_test.go
AUXteam's picture
Upload folder using huggingface_hub
6a7089a verified
package handlers
import (
"bytes"
"net/http/httptest"
"testing"
"github.com/pinchtab/pinchtab/internal/config"
)
func TestHandleNavigate_InvalidJSON(t *testing.T) {
h := New(&mockBridge{}, &config.RuntimeConfig{}, nil, nil, nil)
req := httptest.NewRequest("POST", "/navigate", bytes.NewReader([]byte(`not json`)))
w := httptest.NewRecorder()
h.HandleNavigate(w, req)
if w.Code != 400 {
t.Errorf("expected 400, got %d", w.Code)
}
}
func TestHandleTabNavigate_MissingTabID(t *testing.T) {
h := New(&mockBridge{}, &config.RuntimeConfig{}, nil, nil, nil)
req := httptest.NewRequest("POST", "/tabs//navigate", bytes.NewReader([]byte(`{"url":"https://pinchtab.com"}`)))
w := httptest.NewRecorder()
h.HandleTabNavigate(w, req)
if w.Code != 400 {
t.Errorf("expected 400, got %d", w.Code)
}
}
func TestHandleTabNavigate_TabIDMismatch(t *testing.T) {
h := New(&mockBridge{}, &config.RuntimeConfig{}, nil, nil, nil)
req := httptest.NewRequest("POST", "/tabs/tab_abc/navigate", bytes.NewReader([]byte(`{"tabId":"tab_other","url":"https://pinchtab.com"}`)))
req.SetPathValue("id", "tab_abc")
w := httptest.NewRecorder()
h.HandleTabNavigate(w, req)
if w.Code != 400 {
t.Errorf("expected 400, got %d", w.Code)
}
}
func TestHandleTab_InvalidJSON(t *testing.T) {
h := New(&mockBridge{}, &config.RuntimeConfig{}, nil, nil, nil)
req := httptest.NewRequest("POST", "/tab", bytes.NewReader([]byte(`not json`)))
w := httptest.NewRecorder()
h.HandleTab(w, req)
if w.Code != 400 {
t.Errorf("expected 400, got %d", w.Code)
}
}
func TestHandleTab_InvalidAction(t *testing.T) {
h := New(&mockBridge{}, &config.RuntimeConfig{}, nil, nil, nil)
body := `{"action":"invalid"}`
req := httptest.NewRequest("POST", "/tab", bytes.NewReader([]byte(body)))
w := httptest.NewRecorder()
h.HandleTab(w, req)
if w.Code != 400 {
t.Errorf("expected 400, got %d", w.Code)
}
}
func TestHandleTab_CloseMissingID(t *testing.T) {
h := New(&mockBridge{}, &config.RuntimeConfig{}, nil, nil, nil)
body := `{"action":"close"}`
req := httptest.NewRequest("POST", "/tab", bytes.NewReader([]byte(body)))
w := httptest.NewRecorder()
h.HandleTab(w, req)
if w.Code != 400 {
t.Errorf("expected 400, got %d", w.Code)
}
}