summaryrefslogtreecommitdiff
path: root/test/parallel/test-fs-stat.js
diff options
context:
space:
mode:
authorRefael Ackermann <refack@gmail.com>2017-05-23 12:15:56 -0400
committerRefael Ackermann <refack@gmail.com>2017-06-07 16:15:45 -0400
commit47b9772f52aba7693eed4df535b35de65ac22c49 (patch)
treecd2af4ccdc5f2e569074e80f093187a07aa27870 /test/parallel/test-fs-stat.js
parent324f1115b3a3c28d19261772442ea52bd191ed85 (diff)
downloadandroid-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.js57
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`);
+ });
}));