github.com/HaswinVidanage/gqlgen@v0.8.1-0.20220609041233-69528c1bf712/example/starwars/benchmarks_test.go (about)

     1  package starwars
     2  
     3  import (
     4  	"net/http/httptest"
     5  	"strings"
     6  	"testing"
     7  
     8  	"github.com/HaswinVidanage/gqlgen/example/starwars/generated"
     9  	"github.com/HaswinVidanage/gqlgen/handler"
    10  )
    11  
    12  func BenchmarkSimpleQueryNoArgs(b *testing.B) {
    13  	server := handler.GraphQL(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  
    20  	b.ResetTimer()
    21  	rec := httptest.NewRecorder()
    22  	for i := 0; i < b.N; i++ {
    23  		body.Reset(q)
    24  		rec.Body.Reset()
    25  		server.ServeHTTP(rec, r)
    26  		if rec.Body.String() != `{"data":{"search":[{"starships":[{"name":"X-Wing"},{"name":"Imperial shuttle"}]}]}}` {
    27  			b.Fatalf("Unexpected response")
    28  		}
    29  
    30  	}
    31  }