Testing generated code is a little tricky, heres how its currently set up.
There is a server in codegen/testserver
that is generated as part
of go generate ./...
, and tests written against it.
There are also a bunch of tests in against the examples, feel free to take examples from there.
These tests are really slow, because they need to run the whole codegen step. Use them very sparingly. If you can, find a way to unit test it instead.
Take a look at codegen/testserver/input_test.go
for an example.
Introspection is tested by diffing the output of graphql get-schema
against an expected output.
Setting up the integration environment is a little tricky:
cd integration
go generate ./...
go run ./server/server.go
in another terminal
cd integration
npm install
SERVER_URL=http://localhost:8080/query ./node_modules/.bin/graphql get-schema
will write the schema to integration/schema-fetched.graphql
, compare that with schema-expected.graphql
CI will run this and fail the build if the two files dont match.