"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const assert = require("assert"); const stats_1 = require("./stats"); const uid = process.platform === 'win32' ? undefined : process.getuid(); const gid = process.platform === 'win32' ? undefined : process.getgid(); describe('Stats', () => { it('should create a fake instance without options', () => { const stats = new stats_1.default(); const date = stats._date; assert.strictEqual(stats.dev, 0); assert.strictEqual(stats.ino, 0); assert.strictEqual(stats.mode, 0); assert.strictEqual(stats.nlink, 0); assert.strictEqual(stats.uid, uid); assert.strictEqual(stats.gid, gid); assert.strictEqual(stats.rdev, 0); assert.strictEqual(stats.size, 0); assert.strictEqual(stats.blksize, 0); assert.strictEqual(stats.blocks, 0); assert.strictEqual(stats.atimeMs, date.getTime()); assert.strictEqual(stats.mtimeMs, date.getTime()); assert.strictEqual(stats.ctimeMs, date.getTime()); assert.strictEqual(stats.birthtimeMs, date.getTime()); assert.strictEqual(stats.atime, date); assert.strictEqual(stats.mtime, date); assert.strictEqual(stats.ctime, date); assert.strictEqual(stats.birthtime, date); assert.ok(stats.isFile()); assert.ok(!stats.isDirectory()); assert.ok(!stats.isSymbolicLink()); assert.ok(!stats.isBlockDevice()); assert.ok(!stats.isCharacterDevice()); assert.ok(!stats.isFIFO()); assert.ok(!stats.isSocket()); }); it('should create a fake instance with empty options', () => { const stats = new stats_1.default(); const date = stats._date; assert.strictEqual(stats.dev, 0); assert.strictEqual(stats.ino, 0); assert.strictEqual(stats.mode, 0); assert.strictEqual(stats.nlink, 0); assert.strictEqual(stats.uid, uid); assert.strictEqual(stats.gid, gid); assert.strictEqual(stats.rdev, 0); assert.strictEqual(stats.size, 0); assert.strictEqual(stats.blksize, 0); assert.strictEqual(stats.blocks, 0); assert.strictEqual(stats.atimeMs, date.getTime()); assert.strictEqual(stats.mtimeMs, date.getTime()); assert.strictEqual(stats.ctimeMs, date.getTime()); assert.strictEqual(stats.birthtimeMs, date.getTime()); assert.strictEqual(stats.atime, date); assert.strictEqual(stats.mtime, date); assert.strictEqual(stats.ctime, date); assert.strictEqual(stats.birthtime, date); assert.ok(stats.isFile()); assert.ok(!stats.isDirectory()); assert.ok(!stats.isSymbolicLink()); assert.ok(!stats.isBlockDevice()); assert.ok(!stats.isCharacterDevice()); assert.ok(!stats.isFIFO()); assert.ok(!stats.isSocket()); }); it('should create a fake instance with options', () => { const date = new Date(); const stats = new stats_1.default({ dev: 1, ino: 1, mode: 1, nlink: 1, uid: 1, gid: 1, rdev: 1, size: 1, blksize: 1, blocks: 1, atimeMs: date.getTime(), mtimeMs: date.getTime(), ctimeMs: date.getTime(), birthtimeMs: date.getTime(), atime: date, mtime: date, ctime: date, birthtime: date, isDirectory: true, isFile: false, isSymbolicLink: true, isBlockDevice: true, isCharacterDevice: true, isFIFO: true, isSocket: true }); assert.strictEqual(stats.dev, 1); assert.strictEqual(stats.ino, 1); assert.strictEqual(stats.mode, 1); assert.strictEqual(stats.nlink, 1); assert.strictEqual(stats.uid, 1); assert.strictEqual(stats.gid, 1); assert.strictEqual(stats.rdev, 1); assert.strictEqual(stats.size, 1); assert.strictEqual(stats.blksize, 1); assert.strictEqual(stats.blocks, 1); assert.strictEqual(stats.atimeMs, date.getTime()); assert.strictEqual(stats.mtimeMs, date.getTime()); assert.strictEqual(stats.ctimeMs, date.getTime()); assert.strictEqual(stats.birthtimeMs, date.getTime()); assert.strictEqual(stats.atime, date); assert.strictEqual(stats.mtime, date); assert.strictEqual(stats.ctime, date); assert.strictEqual(stats.birthtime, date); assert.ok(!stats.isFile()); assert.ok(stats.isDirectory()); assert.ok(stats.isSymbolicLink()); assert.ok(stats.isBlockDevice()); assert.ok(stats.isCharacterDevice()); assert.ok(stats.isFIFO()); assert.ok(stats.isSocket()); }); it('should create a fake instance with undefined as values', () => { const stats = new stats_1.default({ uid: undefined }); assert.strictEqual(stats.uid, undefined); }); });