DEV Community

Rivier Grullon
Rivier Grullon

Posted on

4 3

Leaking resources in deno test

Recently I was working on the Trex project: Trex testing manually a new version that we gonna release but the fact to test all the functions manually to see that works it was tedious so I decide to see the test documentation of testing in Deno.

First I thought that the unit test was easy because I had not done a test before in Deno and I say How difficult could be do a test?

a few hours passed and the same error appeared that was

AssertionError: Test case is leaking resources.
Before: {
  "0": "stdin",
  "1": "stdout",
  "2": "stderr"
}
After: {
  "0": "stdin",
  "1": "stdout",
  "2": "stderr",
  "4": "child"
}

Make sure to close all open resource handles returned from Deno APIs before
finishing test case.
    at Object.assert ($deno$/util.ts:35:11)
    at Object.resourceSanitizer [as fn] ($deno$/testing.ts:78:5)
    at async TestRunner.[Symbol.asyncIterator] ($deno$/testing.ts:275:11)
    at async Object.runTests ($deno$/testing.ts:358:20)
Enter fullscreen mode Exit fullscreen mode

there are two solutions to this:

  1. Close all the processes when the package was already install with .close()

Alt Text

  1. Reading the testing documentation found this to personalize the test function, by default this options comes to true the sanitizeResources, sanitizeOps
Deno.test({
    name: "Install Package #1",

    fn: async () =>{

        await delay(1000)
        const response = await installPakages(["i","--map","oak"])
        assertEquals(response, { oak: "https://deno.land/x/oak/mod.ts" })
    },
    sanitizeResources: false,
    sanitizeOps: false
});

Enter fullscreen mode Exit fullscreen mode

Remember Guys read documentation :) I hope this post was helpful for u

AWS Security LIVE!

Join us for AWS Security LIVE!

Discover the future of cloud security. Tune in live for trends, tips, and solutions from AWS and AWS Partners.

Learn More

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay