From 0db04d6a429eb498e854a5fc1ef905b87dea5e4d Mon Sep 17 00:00:00 2001 From: Parker Gabel Date: Fri, 3 Apr 2020 12:20:40 -0700 Subject: fix(#4546) Added Math.trunc to toSecondsFromEpoch to conform the result to u64 (#4575) --- cli/js/tests/utime_test.ts | 51 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) (limited to 'cli/js/tests') diff --git a/cli/js/tests/utime_test.ts b/cli/js/tests/utime_test.ts index 917b8b8b6..a81600e54 100644 --- a/cli/js/tests/utime_test.ts +++ b/cli/js/tests/utime_test.ts @@ -58,6 +58,31 @@ unitTest( } ); +unitTest( + { perms: { read: true, write: true } }, + function utimeSyncFileDateSuccess() { + const testDir = Deno.makeTempDirSync(); + const filename = testDir + "/file.txt"; + Deno.writeFileSync(filename, new TextEncoder().encode("hello"), { + mode: 0o666, + }); + const atime = new Date(); + const mtime = new Date(); + Deno.utimeSync(filename, atime, mtime); + + const fileInfo = Deno.statSync(filename); + // atime and mtime must be scaled by a factor of 1000 to be recorded in seconds + assertFuzzyTimestampEquals( + fileInfo.accessed, + Math.trunc(atime.valueOf() / 1000) + ); + assertFuzzyTimestampEquals( + fileInfo.modified, + Math.trunc(mtime.valueOf() / 1000) + ); + } +); + unitTest( { perms: { read: true, write: true } }, function utimeSyncLargeNumberSuccess(): void { @@ -158,6 +183,32 @@ unitTest( } ); +unitTest( + { perms: { read: true, write: true } }, + async function utimeFileDateSuccess(): Promise { + const testDir = Deno.makeTempDirSync(); + const filename = testDir + "/file.txt"; + Deno.writeFileSync(filename, new TextEncoder().encode("hello"), { + mode: 0o666, + }); + + const atime = new Date(); + const mtime = new Date(); + await Deno.utime(filename, atime, mtime); + + const fileInfo = Deno.statSync(filename); + // The dates must be scaled by a factored of 1000 to make them seconds + assertFuzzyTimestampEquals( + fileInfo.accessed, + Math.trunc(atime.valueOf() / 1000) + ); + assertFuzzyTimestampEquals( + fileInfo.modified, + Math.trunc(mtime.valueOf() / 1000) + ); + } +); + unitTest( { perms: { read: true, write: true } }, async function utimeNotFound(): Promise { -- cgit v1.2.3