Testing
So we have one more function to define, which is the query
function, but before we do, let's talk about tests. The
NDC specification repository provides a
test runner executable called ndc-test
, which can be used to
implement a test suite for a connector.
We can also use ndc-test
to run some automatic tests and validate the work we've done so far.
Back in your ndc-typescript-learn-course
directory that we cloned during setup, you have a configuration.json
file
which you can use to run the connector against your sample database.
Now, let's run the tests. (You will need to have the ndc test runner installed on your machine.)
ndc-test test --endpoint http://localhost:8080
OR
cargo run --bin ndc-test -- test --endpoint http://localhost:8080
Some tests fail, but we expected them to fail, but we can already see that our schema response is good.
cargo run --bin ndc-test -- test --endpoint http://localhost:8080
Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.23s
Running `/Users/sean/ProjectsHasura/ndc-spec/target/debug/ndc-test test --endpoint 'http://localhost:8080'`
├ Capabilities ...
│ ├ Fetching /capabilities ... OK
│ ├ Validating capabilities ... OK
├ Schema ...
│ ├ Fetching schema ... OK
│ ├ Validating schema ...
│ │ ├ scalar_types ... OK
│ │ ├ object_types ... OK
│ │ ├ Collections ...
│ │ │ ├ albums ...
│ │ │ │ ├ Arguments ... OK
│ │ │ │ ├ Collection type ... OK
│ │ │ ├ artists ...
│ │ │ │ ├ Arguments ... OK
│ │ │ │ ├ Collection type ... OK
│ │ ├ Functions ...
│ │ │ ├ Procedures ...
├ Query ...
│ ├ albums ...
│ │ ├ Simple queries ...
│ │ │ ├ Select top N ... FAIL
│ ├ artists ...
│ │ ├ Simple queries ...
│ │ │ ├ Select top N ... FAIL
Failed with 2 test failures:
[1] Select top N
in Query
in albums
in Simple queries
in Select top N
Details: error communicating with the connector: error in response: status code 500 Internal Server Error
[2] Select top N
in Query
in artists
in Simple queries
in Select top N
Details: error communicating with the connector: error in response: status code 500 Internal Server Error
In the next section, we'll start to implement the query function, and see some of these tests pass.