Mocha. Не до конца правильно отрабатывает проверка на существование файла

На node.js создал простейший сервер, который отвечает на запросы get, post и delete. По логике, у меня при post запросе, парсится урл, вытягивается название файла с этого урла и в определённой дирректории, создаётся файл c названием fileName. Если файл, с таким названием, уже есть, должна выбрасываться соотв. ошибка. Вот код:

module.exports = http.createServer((req, res) => {
    switch(req.method){
case 'POST':
            if(req.url !== '/') {
                let fileName = url.parse(req.url, true).pathname.slice(1);
                let pathToFile = path.join( 'files', fileName );
                
                let streamWrite = fs.createWriteStream(pathToFile, {flags: 'wx'});
                streamWrite.on('error', (err) => {
                    if(err.code === 'EEXIST'){
                        res.statusCode= 409;
                        console.error(`Error code: ${err.code}. This means, that file already exists`);
                        
                        }
                })
                res.end()
                break;
        }
      
        default:
            res.statusCode = 500;
            res.statusMessage = 'Ups, something went wrong';
            break;
    }
}

А вот тест, на Mocha, который проверяет кейсы описанные выше:

describe('POST test:', () => {
  it('should create file after request', done => {
    let options = {url: 'http://localhost:4001/index.ddd', method: 'POST'}
    let req =  request(options, (err, res, body) => {
    
      let data = ''
       let stream = fs.createReadStream(path.join('files', url.parse(options.url).pathname.slice(1)), {encoding: 'utf-8'})
       stream.on('data', chunk => data += chunk);
       stream.on('end', () =>{
          assert.strictEqual(body, data)
          console.log(res.statusCode);
          console.log(res.statusMessage);
      })    
  })
  
  req.end()
  done();
})

Проблема в том, что когда я запускаю тест, и если файл уже есть, и код фейлится, респонс всегда 200, ОК. А я хотел бы, чтобы когда файл был, то был код ошибки 409. Т.е. не работает вот этот момент res.statusCode= 409;


Ответы (0 шт):