• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1'use strict';
2require('../common');
3const assert = require('assert');
4const fixtures = require('../common/fixtures');
5const tmpdir = require('../common/tmpdir');
6
7const { access, copyFile, open } = require('fs').promises;
8const path = require('path');
9
10async function validate() {
11  tmpdir.refresh();
12  const dest = path.resolve(tmpdir.path, 'baz.js');
13  await assert.rejects(
14    copyFile(fixtures.path('baz.js'), dest, 'r'),
15    {
16      code: 'ERR_INVALID_ARG_TYPE',
17      message: /mode.*integer.*string/
18    }
19  );
20  await copyFile(fixtures.path('baz.js'), dest);
21  await assert.rejects(
22    access(dest, 'r'),
23    { code: 'ERR_INVALID_ARG_TYPE', message: /mode/ }
24  );
25  await access(dest);
26  const handle = await open(dest, 'r+');
27  await handle.datasync();
28  await handle.sync();
29  const buf = Buffer.from('hello world');
30  await handle.write(buf);
31  const ret = await handle.read(Buffer.alloc(11), 0, 11, 0);
32  assert.strictEqual(ret.bytesRead, 11);
33  assert.deepStrictEqual(ret.buffer, buf);
34  await handle.close();
35}
36
37validate();
38