| // Flags: --experimental-vfs |
| 'use strict'; |
| |
| // fs.writeFile and fs.appendFile callbacks dispatch through VFS. |
| |
| const common = require('../common'); |
| const assert = require('assert'); |
| const fs = require('fs'); |
| const path = require('path'); |
| const vfs = require('node:vfs'); |
| |
| const baseMountPoint = path.resolve('/tmp/vfs-writeFile-cb-' + process.pid); |
| let counter = 0; |
| function mounted() { |
| const mountPoint = baseMountPoint + '-' + (counter++); |
| const myVfs = vfs.create(); |
| myVfs.mkdirSync('/src', { recursive: true }); |
| myVfs.mount(mountPoint); |
| return { myVfs, mountPoint }; |
| } |
| |
| // writeFile (cb) |
| { |
| const { myVfs, mountPoint } = mounted(); |
| const target = path.join(mountPoint, 'src/cb-w.txt'); |
| fs.writeFile(target, 'cbw', common.mustSucceed(() => { |
| assert.strictEqual(fs.readFileSync(target, 'utf8'), 'cbw'); |
| myVfs.unmount(); |
| })); |
| } |
| |
| // appendFile (cb) |
| { |
| const { myVfs, mountPoint } = mounted(); |
| const target = path.join(mountPoint, 'src/cb-a.txt'); |
| fs.writeFileSync(target, 'base'); |
| fs.appendFile(target, ' more', common.mustSucceed(() => { |
| assert.strictEqual(fs.readFileSync(target, 'utf8'), 'base more'); |
| myVfs.unmount(); |
| })); |
| } |