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 }