| 'use strict'; |
| |
| // Test of fs.readFile with different flags. |
| const common = require('../common'); |
| const fs = require('fs'); |
| const assert = require('assert'); |
| const tmpdir = require('../common/tmpdir'); |
| |
| tmpdir.refresh(); |
| |
| { |
| const emptyFile = tmpdir.resolve('empty.txt'); |
| fs.closeSync(fs.openSync(emptyFile, 'w')); |
| |
| fs.readFile( |
| emptyFile, |
| // With `a+` the file is created if it does not exist |
| common.mustNotMutateObjectDeep({ encoding: 'utf8', flag: 'a+' }), |
| common.mustCall((err, data) => { assert.strictEqual(data, ''); }) |
| ); |
| |
| fs.readFile( |
| emptyFile, |
| // Like `a+` but fails if the path exists. |
| common.mustNotMutateObjectDeep({ encoding: 'utf8', flag: 'ax+' }), |
| common.mustCall((err, data) => { assert.strictEqual(err.code, 'EEXIST'); }) |
| ); |
| } |
| |
| { |
| const willBeCreated = tmpdir.resolve('will-be-created'); |
| |
| fs.readFile( |
| willBeCreated, |
| // With `a+` the file is created if it does not exist |
| common.mustNotMutateObjectDeep({ encoding: 'utf8', flag: 'a+' }), |
| common.mustCall((err, data) => { assert.strictEqual(data, ''); }) |
| ); |
| } |
| |
| { |
| const willNotBeCreated = tmpdir.resolve('will-not-be-created'); |
| |
| fs.readFile( |
| willNotBeCreated, |
| // Default flag is `r`. An exception occurs if the file does not exist. |
| common.mustNotMutateObjectDeep({ encoding: 'utf8' }), |
| common.mustCall((err, data) => { assert.strictEqual(err.code, 'ENOENT'); }) |
| ); |
| } |