summaryrefslogtreecommitdiff
path: root/std/node/_fs/_fs_chown_test.ts
diff options
context:
space:
mode:
Diffstat (limited to 'std/node/_fs/_fs_chown_test.ts')
-rw-r--r--std/node/_fs/_fs_chown_test.ts50
1 files changed, 50 insertions, 0 deletions
diff --git a/std/node/_fs/_fs_chown_test.ts b/std/node/_fs/_fs_chown_test.ts
new file mode 100644
index 000000000..51a463d88
--- /dev/null
+++ b/std/node/_fs/_fs_chown_test.ts
@@ -0,0 +1,50 @@
+// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
+const { test } = Deno;
+import { fail, assertEquals } from "../../testing/asserts.ts";
+import { chown, chownSync } from "./_fs_chown.ts";
+
+if (Deno.build.os !== "win") {
+ //chown is difficult to test. Best we can do is set the existing user id/group id again
+ test({
+ name: "ASYNC: setting existing uid/gid works as expected (non-Windows)",
+ async fn() {
+ const tempFile: string = await Deno.makeTempFile();
+ const originalUserId: number | null = (await Deno.lstat(tempFile)).uid;
+ const originalGroupId: number | null = (await Deno.lstat(tempFile)).gid;
+ await new Promise((resolve, reject) => {
+ chown(tempFile, originalUserId!, originalGroupId!, err => {
+ if (err) reject(err);
+ else resolve();
+ });
+ })
+ .then(() => {
+ const newUserId: number | null = Deno.lstatSync(tempFile).uid;
+ const newGroupId: number | null = Deno.lstatSync(tempFile).gid;
+ assertEquals(newUserId, originalUserId);
+ assertEquals(newGroupId, originalGroupId);
+ })
+ .catch(() => {
+ fail();
+ })
+ .finally(() => {
+ Deno.removeSync(tempFile);
+ });
+ }
+ });
+
+ test({
+ name: "SYNC: setting existing uid/gid works as expected (non-Windows)",
+ fn() {
+ const tempFile: string = Deno.makeTempFileSync();
+ const originalUserId: number | null = Deno.lstatSync(tempFile).uid;
+ const originalGroupId: number | null = Deno.lstatSync(tempFile).gid;
+ chownSync(tempFile, originalUserId!, originalGroupId!);
+
+ const newUserId: number | null = Deno.lstatSync(tempFile).uid;
+ const newGroupId: number | null = Deno.lstatSync(tempFile).gid;
+ assertEquals(newUserId, originalUserId);
+ assertEquals(newGroupId, originalGroupId);
+ Deno.removeSync(tempFile);
+ }
+ });
+}