1'use strict';
2const common = require('../common');
3const assert = require('assert');
4const fs = require('fs');
5const path = require('path');
6const { promisify } = require('util');
7
8const read = promisify(fs.read);
9const write = promisify(fs.write);
10const exists = promisify(fs.exists);
11
12{
13  const fd = fs.openSync(__filename, 'r');
14  read(fd, Buffer.alloc(1024), 0, 1024, null).then(common.mustCall((obj) => {
15    assert.strictEqual(typeof obj.bytesRead, 'number');
16    assert(obj.buffer instanceof Buffer);
17    fs.closeSync(fd);
18  }));
19}
20
21const tmpdir = require('../common/tmpdir');
22tmpdir.refresh();
23{
24  const filename = path.join(tmpdir.path, 'write-promise.txt');
25  const fd = fs.openSync(filename, 'w');
26  write(fd, Buffer.from('foobar')).then(common.mustCall((obj) => {
27    assert.strictEqual(typeof obj.bytesWritten, 'number');
28    assert.strictEqual(obj.buffer.toString(), 'foobar');
29    fs.closeSync(fd);
30  }));
31}
32
33{
34  exists(__filename).then(common.mustCall((x) => {
35    assert.strictEqual(x, true);
36  }));
37}
38