四好公路
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

119 lines
3.5 KiB

/**
* 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 });
});
})