summaryrefslogtreecommitdiff
path: root/tests/node_compat/test/parallel/test-fs-lchown.js
diff options
context:
space:
mode:
Diffstat (limited to 'tests/node_compat/test/parallel/test-fs-lchown.js')
-rw-r--r--tests/node_compat/test/parallel/test-fs-lchown.js71
1 files changed, 71 insertions, 0 deletions
diff --git a/tests/node_compat/test/parallel/test-fs-lchown.js b/tests/node_compat/test/parallel/test-fs-lchown.js
new file mode 100644
index 000000000..ce3333745
--- /dev/null
+++ b/tests/node_compat/test/parallel/test-fs-lchown.js
@@ -0,0 +1,71 @@
+// 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 `tests/node_compat/runner/setup.ts`. Do not modify this file manually.
+
+'use strict';
+
+const common = require('../common');
+const tmpdir = require('../common/tmpdir');
+const assert = require('assert');
+const fs = require('fs');
+const path = require('path');
+const { promises } = fs;
+
+// Validate the path argument.
+[false, 1, {}, [], null, undefined].forEach((i) => {
+ const err = { name: 'TypeError', code: 'ERR_INVALID_ARG_TYPE' };
+
+ assert.throws(() => fs.lchown(i, 1, 1, common.mustNotCall()), err);
+ assert.throws(() => fs.lchownSync(i, 1, 1), err);
+ promises.lchown(false, 1, 1)
+ .then(common.mustNotCall())
+ .catch(common.expectsError(err));
+});
+
+// Validate the uid and gid arguments.
+[false, 'test', {}, [], null, undefined].forEach((i) => {
+ const err = { name: 'TypeError', code: 'ERR_INVALID_ARG_TYPE' };
+
+ assert.throws(
+ () => fs.lchown('not_a_file_that_exists', i, 1, common.mustNotCall()),
+ err
+ );
+ assert.throws(
+ () => fs.lchown('not_a_file_that_exists', 1, i, common.mustNotCall()),
+ err
+ );
+ assert.throws(() => fs.lchownSync('not_a_file_that_exists', i, 1), err);
+ assert.throws(() => fs.lchownSync('not_a_file_that_exists', 1, i), err);
+
+ promises.lchown('not_a_file_that_exists', i, 1)
+ .then(common.mustNotCall())
+ .catch(common.expectsError(err));
+
+ promises.lchown('not_a_file_that_exists', 1, i)
+ .then(common.mustNotCall())
+ .catch(common.expectsError(err));
+});
+
+// Validate the callback argument.
+[false, 1, 'test', {}, [], null, undefined].forEach((i) => {
+ assert.throws(() => fs.lchown('not_a_file_that_exists', 1, 1, i), {
+ name: 'TypeError',
+ code: 'ERR_INVALID_ARG_TYPE'
+ });
+});
+
+if (!common.isWindows) {
+ const testFile = tmpdir.resolve(path.basename(__filename));
+ const uid = process.geteuid();
+ const gid = process.getegid();
+
+ tmpdir.refresh();
+ fs.copyFileSync(__filename, testFile);
+ fs.lchownSync(testFile, uid, gid);
+ fs.lchown(testFile, uid, gid, common.mustSucceed(async (err) => {
+ await promises.lchown(testFile, uid, gid);
+ }));
+}