From 9c5ddf7c69f0d3ddaa93b194f0020944569e0e3e Mon Sep 17 00:00:00 2001 From: Divy Srivastava Date: Fri, 15 Mar 2024 21:14:47 -0700 Subject: [PATCH] fix(ext/node): pass normalized watchFile handler to StatWatcher (#22940) Fixes https://github.com/denoland/deno/issues/22939 --- ext/node/polyfills/_fs/_fs_watch.ts | 2 +- tests/unit_node/_fs/_fs_watch_test.ts | 15 ++++++++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/ext/node/polyfills/_fs/_fs_watch.ts b/ext/node/polyfills/_fs/_fs_watch.ts index 78903cd553..e94818da9c 100644 --- a/ext/node/polyfills/_fs/_fs_watch.ts +++ b/ext/node/polyfills/_fs/_fs_watch.ts @@ -211,7 +211,7 @@ export function watchFile( statWatchers.set(watchPath, stat); } - stat.addListener("change", listener!); + stat.addListener("change", handler); return stat; } diff --git a/tests/unit_node/_fs/_fs_watch_test.ts b/tests/unit_node/_fs/_fs_watch_test.ts index 01df80f97f..01236a493b 100644 --- a/tests/unit_node/_fs/_fs_watch_test.ts +++ b/tests/unit_node/_fs/_fs_watch_test.ts @@ -1,5 +1,5 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -import { watch } from "node:fs"; +import { unwatchFile, watch, watchFile } from "node:fs"; import { assertEquals } from "@std/assert/mod.ts"; function wait(time: number) { @@ -25,3 +25,16 @@ Deno.test({ assertEquals(result.length >= 1, true); }, }); + +Deno.test({ + name: "watching a file with options", + async fn() { + const file = Deno.makeTempFileSync(); + watchFile( + file, + () => {}, + ); + await wait(100); + unwatchFile(file); + }, +});