summaryrefslogtreecommitdiff
path: root/cli/tests/node_compat/test/parallel/test-fs-watch.js
diff options
context:
space:
mode:
Diffstat (limited to 'cli/tests/node_compat/test/parallel/test-fs-watch.js')
-rw-r--r--cli/tests/node_compat/test/parallel/test-fs-watch.js105
1 files changed, 0 insertions, 105 deletions
diff --git a/cli/tests/node_compat/test/parallel/test-fs-watch.js b/cli/tests/node_compat/test/parallel/test-fs-watch.js
deleted file mode 100644
index 785d42911..000000000
--- a/cli/tests/node_compat/test/parallel/test-fs-watch.js
+++ /dev/null
@@ -1,105 +0,0 @@
-// deno-fmt-ignore-file
-// deno-lint-ignore-file
-
-// Copyright Joyent and Node contributors. All rights reserved. MIT license.
-// Taken from Node 18.12.1
-// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually
-
-'use strict';
-const common = require('../common');
-
-if (common.isIBMi)
- common.skip('IBMi does not support `fs.watch()`');
-
-// Tests if `filename` is provided to watcher on supported platforms
-
-const fs = require('fs');
-const assert = require('assert');
-const { join } = require('path');
-
-class WatchTestCase {
- constructor(shouldInclude, dirName, fileName, field) {
- this.dirName = dirName;
- this.fileName = fileName;
- this.field = field;
- this.shouldSkip = !shouldInclude;
- }
- get dirPath() { return join(tmpdir.path, this.dirName); }
- get filePath() { return join(this.dirPath, this.fileName); }
-}
-
-const cases = [
- // Watch on a file should callback with a filename on supported systems
- new WatchTestCase(
- common.isLinux || common.isOSX || common.isWindows || common.isAIX,
- 'watch1',
- 'foo',
- 'filePath'
- ),
- // Watch on a directory should callback with a filename on supported systems
- new WatchTestCase(
- common.isLinux || common.isOSX || common.isWindows,
- 'watch2',
- 'bar',
- 'dirPath'
- ),
-];
-
-const tmpdir = require('../common/tmpdir');
-tmpdir.refresh();
-
-for (const testCase of cases) {
- if (testCase.shouldSkip) continue;
- fs.mkdirSync(testCase.dirPath);
- // Long content so it's actually flushed.
- const content1 = Date.now() + testCase.fileName.toLowerCase().repeat(1e4);
- fs.writeFileSync(testCase.filePath, content1);
-
- let interval;
- const pathToWatch = testCase[testCase.field];
- const watcher = fs.watch(pathToWatch);
- watcher.on('error', (err) => {
- if (interval) {
- clearInterval(interval);
- interval = null;
- }
- assert.fail(err);
- });
- watcher.on('close', common.mustCall(() => {
- watcher.close(); // Closing a closed watcher should be a noop
- }));
- watcher.on('change', common.mustCall(function(eventType, argFilename) {
- if (interval) {
- clearInterval(interval);
- interval = null;
- }
- if (common.isOSX)
- assert.strictEqual(['rename', 'change'].includes(eventType), true);
- else
- assert.strictEqual(eventType, 'change');
- assert.strictEqual(argFilename, testCase.fileName);
-
- watcher.close();
-
- // We document that watchers cannot be used anymore when it's closed,
- // here we turn the methods into noops instead of throwing
- watcher.close(); // Closing a closed watcher should be a noop
- }));
-
- // Long content so it's actually flushed. toUpperCase so there's real change.
- const content2 = Date.now() + testCase.fileName.toUpperCase().repeat(1e4);
- interval = setInterval(() => {
- fs.writeFileSync(testCase.filePath, '');
- fs.writeFileSync(testCase.filePath, content2);
- }, 100);
-}
-
-[false, 1, {}, [], null, undefined].forEach((input) => {
- assert.throws(
- () => fs.watch(input, common.mustNotCall()),
- {
- code: 'ERR_INVALID_ARG_TYPE',
- name: 'TypeError'
- }
- );
-});