• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1'use strict';
2
3// Test of fs.readFile with different flags.
4const common = require('../common');
5const fs = require('fs');
6const assert = require('assert');
7const path = require('path');
8const tmpdir = require('../common/tmpdir');
9
10tmpdir.refresh();
11
12{
13  const emptyFile = path.join(tmpdir.path, 'empty.txt');
14  fs.closeSync(fs.openSync(emptyFile, 'w'));
15
16  fs.readFile(
17    emptyFile,
18    // With `a+` the file is created if it does not exist
19    { encoding: 'utf8', flag: 'a+' },
20    common.mustCall((err, data) => { assert.strictEqual(data, ''); })
21  );
22
23  fs.readFile(
24    emptyFile,
25    // Like `a+` but fails if the path exists.
26    { encoding: 'utf8', flag: 'ax+' },
27    common.mustCall((err, data) => { assert.strictEqual(err.code, 'EEXIST'); })
28  );
29}
30
31{
32  const willBeCreated = path.join(tmpdir.path, 'will-be-created');
33
34  fs.readFile(
35    willBeCreated,
36    // With `a+` the file is created if it does not exist
37    { encoding: 'utf8', flag: 'a+' },
38    common.mustCall((err, data) => { assert.strictEqual(data, ''); })
39  );
40}
41
42{
43  const willNotBeCreated = path.join(tmpdir.path, 'will-not-be-created');
44
45  fs.readFile(
46    willNotBeCreated,
47    // Default flag is `r`. An exception occurs if the file does not exist.
48    { encoding: 'utf8' },
49    common.mustCall((err, data) => { assert.strictEqual(err.code, 'ENOENT'); })
50  );
51}
52