From 776ef11732edb2bcafdcc53f626c7ecdf0140599 Mon Sep 17 00:00:00 2001 From: Darshan Sen Date: Mon, 15 Feb 2021 20:25:17 +0530 Subject: [PATCH] test: clarify usage of tmpdir.refresh() This emphasizes that `tmpdir.refresh()` must be called only once in each test file when needed. PR-URL: https://github.com/nodejs/node/pull/37383 Reviewed-By: Rich Trott Reviewed-By: Zijian Liu Reviewed-By: James M Snell Reviewed-By: Luigi Pinca Reviewed-By: Gireesh Punathil --- test/common/README.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/test/common/README.md b/test/common/README.md index a71b37ee935740..f064ab6e7e14be 100644 --- a/test/common/README.md +++ b/test/common/README.md @@ -944,13 +944,18 @@ The realpath of the testing temporary directory. Deletes and recreates the testing temporary directory. -The first time `refresh()` runs, it adds a listener to process `'exit'` that +The first time `refresh()` runs, it adds a listener to process `'exit'` that cleans the temporary directory. Thus, every file under `tmpdir.path` needs to be closed before the test completes. A good way to do this is to add a listener to process `'beforeExit'`. If a file needs to be left open until Node.js completes, use a child process and call `refresh()` only in the parent. +It is usually only necessary to call `refresh()` once in a test file. +Avoid calling it more than once in an asynchronous context as one call +might refresh the temporary directory of a different context, causing +the test to fail somewhat mysteriously. + ## UDP pair helper The `common/udppair` module exports a function `makeUDPPair` and a class