Skip to main content
Module

std/node/_fs/_fs_chown_test.ts

Deno standard library
Go to Latest
File
// 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";
//chown is difficult to test. Best we can do is set the existing user id/group id againconst ignore = Deno.build.os == "win";
test({ ignore, 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({ ignore, 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); },});