MIRROR: javascript for 馃悳's, a tiny runtime with big ambitions
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at master 35 lines 1.6 kB view raw
1const fs = require('node:fs'); 2 3function assert(condition, message) { 4 if (!condition) throw new Error(message); 5} 6 7function expectThrow(fn, label) { 8 try { 9 fn(); 10 } catch (error) { 11 return error; 12 } 13 throw new Error(`${label} did not throw`); 14} 15 16const missingPath = 'tests/.fs_missing_file'; 17const renameDest = `${missingPath}.renamed`; 18 19const readError = expectThrow(() => fs.readFileSync(missingPath, 'utf8'), 'readFileSync'); 20assert(readError.code === 'ENOENT', `expected readFileSync code ENOENT, got ${readError.code}`); 21assert(readError.syscall === 'open', `expected readFileSync syscall open, got ${readError.syscall}`); 22assert(readError.path === missingPath, `expected readFileSync path ${missingPath}, got ${readError.path}`); 23assert(readError.message === `ENOENT: no such file or directory, open '${missingPath}'`, `unexpected readFileSync message: ${readError.message}`); 24 25const renameError = expectThrow(() => fs.renameSync(missingPath, renameDest), 'renameSync'); 26assert(renameError.code === 'ENOENT', `expected renameSync code ENOENT, got ${renameError.code}`); 27assert(renameError.syscall === 'rename', `expected renameSync syscall rename, got ${renameError.syscall}`); 28assert(renameError.path === missingPath, `expected renameSync path ${missingPath}, got ${renameError.path}`); 29assert(renameError.dest === renameDest, `expected renameSync dest ${renameDest}, got ${renameError.dest}`); 30assert( 31 renameError.message === `ENOENT: no such file or directory, rename '${missingPath}' -> '${renameDest}'`, 32 `unexpected renameSync message: ${renameError.message}` 33); 34 35console.log('fs error message test passed');