github.com/maeglindeveloper/gqlgen@v0.13.1-0.20210413081235-57808b12a0a0/example/starwars/benchmarks_test.go (about)

     1  package starwars
     2  
     3  import (
     4  	"net/http/httptest"
     5  	"strings"
     6  	"testing"
     7  
     8  	"github.com/99designs/gqlgen/example/starwars/generated"
     9  	"github.com/99designs/gqlgen/graphql/handler"
    10  )
    11  
    12  func BenchmarkSimpleQueryNoArgs(b *testing.B) {
    13  	server := handler.NewDefaultServer(generated.NewExecutableSchema(NewResolver()))
    14  
    15  	q := `{"query":"{ search(text:\"Luke\") { ... on Human { starships { name } } } }"}`
    16  
    17  	var body strings.Reader
    18  	r := httptest.NewRequest("POST", "/graphql", &body)
    19  	r.Header.Set("Content-Type", "application/json")
    20  
    21  	b.ReportAllocs()
    22  	b.ResetTimer()
    23  
    24  	rec := httptest.NewRecorder()
    25  	for i := 0; i < b.N; i++ {
    26  		body.Reset(q)
    27  		rec.Body.Reset()
    28  		server.ServeHTTP(rec, r)
    29  		if rec.Body.String() != `{"data":{"search":[{"starships":[{"name":"X-Wing"},{"name":"Imperial shuttle"}]}]}}` {
    30  			b.Fatalf("Unexpected response: %s", rec.Body.String())
    31  		}
    32  
    33  	}
    34  }