Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 36 additions & 7 deletions test/parallel/test-fs-promises.js
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,13 @@ function verifyStatObject(stat) {
assert.strictEqual(typeof stat.mode, 'number');
}

async function getHandle(dest) {
await copyFile(fixtures.path('baz.js'), dest);
await access(dest, 'r');

return open(dest, 'r+');
}

{
async function doTest() {
tmpdir.refresh();
Expand Down Expand Up @@ -93,6 +100,19 @@ function verifyStatObject(stat) {
await handle.datasync();
await handle.sync();

// test fs.read promises when length to read is zero bytes
{
const dest = path.resolve(tmpDir, 'test1.js');
const handle = await getHandle(dest);
const buf = Buffer.from('DAWGS WIN');
const bufLen = buf.length;
await handle.write(buf);
const ret = await handle.read(Buffer.alloc(bufLen), 0, 0, 0);
assert.strictEqual(ret.bytesRead, 0);

await unlink(dest);
}

const buf = Buffer.from('hello fsPromises');
const bufLen = buf.length;
await handle.write(buf);
Expand Down Expand Up @@ -203,13 +223,22 @@ function verifyStatObject(stat) {

await unlink(newLink2);

const newdir = path.resolve(tmpDir, 'dir');
await mkdir(newdir);
stats = await stat(newdir);
assert(stats.isDirectory());
const list = await readdir(tmpDir);
assert.deepStrictEqual(list, ['baz2.js', 'dir']);
await rmdir(newdir);
// testing readdir lists both files and directories
{
const newDir = path.resolve(tmpDir, 'dir');
const newFile = path.resolve(tmpDir, 'foo.js');

await mkdir(newDir);
await writeFile(newFile, 'DAWGS WIN!', 'utf8');

stats = await stat(newDir);
assert(stats.isDirectory());
const list = await readdir(tmpDir);
assert.notStrictEqual(list.indexOf('dir'), -1);
assert.notStrictEqual(list.indexOf('foo.js'), -1);
await rmdir(newDir);
await unlink(newFile);
}

// mkdir when options is number.
{
Expand Down