graphql / graphql/graphql-http

Allow Deno to clean up leaked test resources

Open
#65 1 comment 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
TypeScript
Stars
363
Forks
38
PR merge metrics
No merged PRs in 30d

Description

**Screenshot**

```
SHOULD use 4xx or 5xx status codes on document validation failure when accepting application/graphql-response+json => ./test.ts:9:8
error: AssertionError: Test case is leaking 1 resource:

- A fetch response body (rid 380) was created during the test, but not consumed during the test. Consume or close the response body `ReadableStream`, e.g `await resp.text()` or `await resp.body.cancel()`.

at assert (ext:deno_web/00_infra.js:353:11)
at resourceSanitizer (ext:cli/40_testing.js:417:5)
at async Object.exitSanitizer [as fn] (ext:cli/40_testing.js:435:7)
at async runTest (ext:cli/40_testing.js:840:5)
at async runTests (ext:cli/40_testing.js:1098:20)
```

**Expected Behaviour**

It should be possible to use the server audits in `Deno.test()` in a way that does not leak resources.

**Actual Behaviour**

As discussed in https://github.com/graphql/graphql-http/pull/63#discussion_r1143599460, the tests leak resources.
I am not sure why, but the fix I added to the PR now does not work (fully) in my project.

**Debug Information**

The following run shows what happens without any cleanup: https://github.com/nuwave/lighthouse/actions/runs/4488866245/jobs/7893989167.

With a cleanup step, some portion of the tests is fixed (I think the failing ones), but others still leak: https://github.com/nuwave/lighthouse/actions/runs/4488817464/jobs/7893880714.

**Further Information**

Here is the link to the PR where I try to run the audit in my project: https://github.com/nuwave/lighthouse/pull/2359.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.