无法使用node / express对工作文件上传进行单元测试

时间:2019-09-10 06:46:48

标签: node.js json reactjs mocha chai

我正在尝试对节点/快速上传文件进行单元测试。这是我绑定节点的第一部分工作。我可以在前端完成这项工作,但是当我不得不对其进行测试时,它就下坡了。该文件在前端和单元测试时均被上传,但出现res.json is not a function错误,主要是因为我将CVS更改为writeFile中的JSON文件。

我试图在相当长的时间内更改单元测试,但是我认为我被卡住了。我已经更改了文件参数,附加参数等...

test.js

var request = require("supertest");
const app = require('../routes/file');

describe('/upload file', () => {
    it('Should upload a file', (done) => {
        request(app).post('/upload',function(err,res){
            console.log('asdasdasd');
            done();
        })
         .set('Content-Type', 'multipart/form-data')
         .set('Accept', 'application/json')
         .attach('file', "testdata.csv")
         .end(function(){

          });
    });

file.js

router.post('/upload',function(req, res) {
  upload(req, res, function (err) {
    let filePath = req.file.path;
    let fileExtension = path.extname(filePath);

      if (err instanceof multer.MulterError || fileExtension !== '.csv') {
          return res.status(500).json(err);
      } else if (err || fileExtension !== '.csv') {
          return res.status(500).json(err);
      }

    CSVToJSON({
        headers: ['id', 'name', 'age', 'address', 'team'],
        noheader: true,
      }).fromFile(filePath).then(source => {
        helpers.writeFile('data',filePath,source,res);
        });
    });
});

helpers.js

writeFile(fileName,filePath,source,res){
    if (fs.existsSync(filePath)) {
    fs.writeFile(`../public/files/${fileName}.json`,JSON.stringify(source),'utf-8',function (err) {
         if (err) {
           return res.json({"error" : true, "message" : err,'status':500});
         } else {
        return res.json({"error" : false, "message" : "File Uploaded Successfuly",'status':200});
         }
    });
   }
}

我希望状态为200,并且要定义res.json。

0 个答案:

没有答案