Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

test: increase test coverage for fs.promises read #22800

Closed
wants to merge 4 commits into from
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