mirror of
https://github.com/denoland/deno.git
synced 2024-12-17 21:03:01 -05:00
33 lines
835 B
TypeScript
33 lines
835 B
TypeScript
|
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());
|
||
|
},
|
||
|
});
|