summaryrefslogtreecommitdiff
path: root/std/node/_fs/_fs_watch_test.ts
blob: e85b4c9bc1725eb66714c8778e11f6a018622fc2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import { watch } from "./_fs_watch.ts";
import { assertEquals, fail } from "../../testing/asserts.ts";

function wait(time: number) {
  return new Promise((resolve) => {
    setTimeout(resolve, time);
  });
}

Deno.test({
  name: "watching a file",
  async fn() {
    const file = Deno.makeTempFileSync();
    const result: Array<[string, string]> = [];
    await new Promise((resolve) => {
      const watcher = watch(
        file,
        (eventType, filename) => result.push([eventType, filename]),
      );
      wait(100)
        .then(() => Deno.writeTextFileSync(file, "something"))
        .then(() => wait(100))
        .then(() => watcher.close())
        .then(() => wait(100))
        .then(resolve);
    })
      .then(() => {
        assertEquals(result.length >= 1, true);
      })
      .catch(() => fail());
  },
});