/** * Created by Julin on 2021/04/02. */ 'use strict'; const path = require('path'); const client = require('supertest'); const expect = require('chai').expect; const scaffold = require('fs-web-server-scaffold'); const config = require('./config-restapi'); describe('@fs/attament mv test', function () { this.timeout(10000); const app = scaffold(config); const request = client.agent(app.server); const routePrefix = '/_file-server'; let jpgpath = path.posix.join(__dirname, 'files', 'beer.jpg'); let jpgkey; let post_expect_200 = function (path, params) { return request .post(path) .set('Content-Type', 'application/json') .send(params) .expect(200) .then(res => { expect(res.body).to.be.an('object').that.has.all.keys('id'); expect(res.body.id).to.be.a('number'); return res.body; }); } let post_expect_400 = function (path, params) { return request .post(path) .set('Content-Type', 'application/json') .send(params) .expect(400) .then(res => { expect(res.body).to.be.an('object').that.has.all.keys('name', 'message'); }); } let delete_expect_204 = function (path) { return request.delete(path).expect(204); } let delete_expect_400 = function (path) { return request.delete(path).expect(400); } before(async () => { }); after(async () => { app.server.close(); }); // upload restapi test for local file center it('upload file successfully', function (done) { request .post(`${routePrefix}/attachments/avatar`) .attach('f_avatar', jpgpath) .expect(200, (err, res) => { if (err) { done(err) } else { jpgkey = res.body.uploaded; done() } }); }) // // upload restapi test for local file center // it('can\'t upload file with inexistent file', function (done) { // let src = 'static/000.txt'; // request // .post('/attachments/avatar') // .attach('f_avatar', src) // .expect(500, done); // }); // download restapi test for local file center it('can\'t download file with incorrect src query parameter', function () { let src = 'static/000.txt'; return request .get(`${routePrefix}/attachments?src=${src}`) .expect(400); }); // download restapi test for local file center it('download file with incorrect src query parameter successfully', function () { return request .get(`${routePrefix}/attachments?src=${jpgkey}`) .expect(200); }); // delete restapi test for local file center it('delete file successfully', function () { return delete_expect_204(`${routePrefix}/attachments?src=${jpgkey}`); }); // delete restapi test for local file center it('can\'t delete file with inexistent src query parameter', function () { let src = 'static/000.txt'; return delete_expect_400(`${routePrefix}/attachments?src=${src}`); }); // bulk delete restapi test for local file center it('can\'t bulk delete files with inexistent srcs', function () { const fkeys = ['upload/avatar/000.txt', 'upload/avatar/001.txt']; return post_expect_400(`${routePrefix}/attachments`, { srcs: fkeys }); }); })