diff options
author | Refael Ackermann <refack@gmail.com> | 2017-05-23 12:15:56 -0400 |
---|---|---|
committer | Refael Ackermann <refack@gmail.com> | 2017-06-07 16:15:45 -0400 |
commit | 47b9772f52aba7693eed4df535b35de65ac22c49 (patch) | |
tree | cd2af4ccdc5f2e569074e80f093187a07aa27870 /test/parallel/test-fs-stat.js | |
parent | 324f1115b3a3c28d19261772442ea52bd191ed85 (diff) | |
download | android-node-v8-47b9772f52aba7693eed4df535b35de65ac22c49.tar.gz android-node-v8-47b9772f52aba7693eed4df535b35de65ac22c49.tar.bz2 android-node-v8-47b9772f52aba7693eed4df535b35de65ac22c49.zip |
fs: expose Stats times as Numbers
PR-URL: https://github.com/nodejs/node/pull/13173
Fixes: https://github.com/nodejs/node/issues/8276
Refs: https://github.com/nodejs/node/pull/12607
Refs: https://github.com/nodejs/node/pull/12818
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Brian White <mscdex@mscdex.net>
Diffstat (limited to 'test/parallel/test-fs-stat.js')
-rw-r--r-- | test/parallel/test-fs-stat.js | 57 |
1 files changed, 37 insertions, 20 deletions
diff --git a/test/parallel/test-fs-stat.js b/test/parallel/test-fs-stat.js index 6ed27806b9..c12af535fa 100644 --- a/test/parallel/test-fs-stat.js +++ b/test/parallel/test-fs-stat.js @@ -65,38 +65,55 @@ fs.open('.', 'r', undefined, common.mustCall(function(err, fd) { assert.fail(err); } if (stats) { - console.dir(stats); assert.ok(stats.mtime instanceof Date); } fs.close(fd, assert.ifError); })); -console.log(`stating: ${__filename}`); fs.stat(__filename, common.mustCall(function(err, s) { assert.ifError(err); - - console.dir(s); - - console.log(`isDirectory: ${JSON.stringify(s.isDirectory())}`); assert.strictEqual(false, s.isDirectory()); - - console.log(`isFile: ${JSON.stringify(s.isFile())}`); assert.strictEqual(true, s.isFile()); - - console.log(`isSocket: ${JSON.stringify(s.isSocket())}`); assert.strictEqual(false, s.isSocket()); - - console.log(`isBlockDevice: ${JSON.stringify(s.isBlockDevice())}`); assert.strictEqual(false, s.isBlockDevice()); - - console.log(`isCharacterDevice: ${JSON.stringify(s.isCharacterDevice())}`); assert.strictEqual(false, s.isCharacterDevice()); - - console.log(`isFIFO: ${JSON.stringify(s.isFIFO())}`); assert.strictEqual(false, s.isFIFO()); - - console.log(`isSymbolicLink: ${JSON.stringify(s.isSymbolicLink())}`); assert.strictEqual(false, s.isSymbolicLink()); - - assert.ok(s.mtime instanceof Date); + const keys = [ + 'dev', 'mode', 'nlink', 'uid', + 'gid', 'rdev', 'ino', 'size', + 'atime', 'mtime', 'ctime', 'birthtime', + 'atimeMs', 'mtimeMs', 'ctimeMs', 'birthtimeMs' + ]; + if (!common.isWindows) { + keys.push('blocks', 'blksize'); + } + const numberFields = [ + 'dev', 'mode', 'nlink', 'uid', 'gid', 'rdev', 'ino', 'size', + 'atimeMs', 'mtimeMs', 'ctimeMs', 'birthtimeMs' + ]; + const dateFields = ['atime', 'mtime', 'ctime', 'birthtime']; + keys.forEach(function(k) { + assert.ok(k in s, `${k} should be in Stats`); + assert.notStrictEqual(s[k], undefined, `${k} should not be undefined`); + assert.notStrictEqual(s[k], null, `${k} should not be null`); + }); + numberFields.forEach((k) => { + assert.strictEqual(typeof s[k], 'number', `${k} should be a number`); + }); + dateFields.forEach((k) => { + assert.ok(s[k] instanceof Date, `${k} should be a Date`); + }); + const jsonString = JSON.stringify(s); + const parsed = JSON.parse(jsonString); + keys.forEach(function(k) { + assert.notStrictEqual(parsed[k], undefined, `${k} should not be undefined`); + assert.notStrictEqual(parsed[k], null, `${k} should not be null`); + }); + numberFields.forEach((k) => { + assert.strictEqual(typeof parsed[k], 'number', `${k} should be a number`); + }); + dateFields.forEach((k) => { + assert.strictEqual(typeof parsed[k], 'string', `${k} should be a string`); + }); })); |