Files
upstream-traggo/graphql/handler_test.go
upstream-mirror cda7c1a474
Some checks failed
build / build (push) Failing after 3s
snapshot of https://github.com/traggo/server.git (master, 2026-09-16; blobs > 131072B omitted)
2026-09-16 05:24:45 +05:00

43 lines
1.2 KiB
Go

package graphql
import (
"net/http/httptest"
"net/url"
"strings"
"testing"
"github.com/stretchr/testify/require"
"github.com/traggo/server/model"
"github.com/traggo/server/test"
)
func TestHandler_jsonOverHtml(t *testing.T) {
db := test.InMemoryDB(t)
defer db.Close()
resolver := NewResolver(db.DB, 4, model.Version{})
handler := Handler("/gql", resolver, NewDirective())
req := httptest.NewRequest("GET", "/gql?query="+url.QueryEscape("query {currentUser {name}}"), strings.NewReader(""))
req.Header.Set("Accept", "text/html;application/json")
recorder := httptest.NewRecorder()
handler.ServeHTTP(recorder, req)
require.Equal(t, "application/graphql-response+json", recorder.Header().Get("Content-Type"))
require.JSONEq(t, `
{
"data": { "currentUser": null }
}
`, recorder.Body.String())
}
func TestHandler_htmlIfNotJson(t *testing.T) {
db := test.InMemoryDB(t)
defer db.Close()
resolver := NewResolver(db.DB, 4, model.Version{})
handler := Handler("/gql", resolver, NewDirective())
req := httptest.NewRequest("get", "/gql", strings.NewReader(""))
req.Header.Set("Accept", "text/html;application/xml")
recorder := httptest.NewRecorder()
handler.ServeHTTP(recorder, req)
require.Contains(t, recorder.Body.String(), "Traggo Playground")
}