test(stor): add failure test
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
/* eslint no-unused-expressions: 0 */
|
/* eslint no-unused-expressions: 0 */
|
||||||
const {expect} = require('chai');
|
const {expect} = require('chai');
|
||||||
|
const sinon = require('sinon');
|
||||||
const bunyan = require('bunyan');
|
const bunyan = require('bunyan');
|
||||||
const fs = require('fs');
|
const fs = require('fs');
|
||||||
|
|
||||||
@@ -10,10 +11,13 @@ before(() => require('dotenv').load());
|
|||||||
|
|
||||||
describe('FtpServer', function () {
|
describe('FtpServer', function () {
|
||||||
this.timeout(2000);
|
this.timeout(2000);
|
||||||
|
let sandbox;
|
||||||
let log = bunyan.createLogger({name: 'test'});
|
let log = bunyan.createLogger({name: 'test'});
|
||||||
let server;
|
let server;
|
||||||
let client;
|
let client;
|
||||||
|
|
||||||
|
let connection;
|
||||||
|
|
||||||
before(() => {
|
before(() => {
|
||||||
server = new FtpServer(process.env.FTP_URL, {
|
server = new FtpServer(process.env.FTP_URL, {
|
||||||
log,
|
log,
|
||||||
@@ -26,11 +30,18 @@ describe('FtpServer', function () {
|
|||||||
greeting: ['hello', 'world']
|
greeting: ['hello', 'world']
|
||||||
});
|
});
|
||||||
server.on('login', (data, resolve) => {
|
server.on('login', (data, resolve) => {
|
||||||
|
connection = data.connection;
|
||||||
resolve({root: process.cwd()});
|
resolve({root: process.cwd()});
|
||||||
});
|
});
|
||||||
|
|
||||||
return server.listen();
|
return server.listen();
|
||||||
});
|
});
|
||||||
|
beforeEach(() => {
|
||||||
|
sandbox = sinon.sandbox.create();
|
||||||
|
});
|
||||||
|
afterEach(() => {
|
||||||
|
sandbox.restore();
|
||||||
|
});
|
||||||
after(() => {
|
after(() => {
|
||||||
server.close();
|
server.close();
|
||||||
});
|
});
|
||||||
@@ -109,6 +120,22 @@ describe('FtpServer', function () {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('STOR fail.txt', done => {
|
||||||
|
sandbox.stub(connection.fs, 'write').callsFake(function () {
|
||||||
|
const fsPath = './test/fail.txt';
|
||||||
|
const stream = require('fs').createWriteStream(fsPath, {flags: 'w+'});
|
||||||
|
stream.once('error', () => fs.unlink(fsPath));
|
||||||
|
setTimeout(() => stream.emit('error', new Error('STOR fail test'), 1));
|
||||||
|
return stream;
|
||||||
|
});
|
||||||
|
const buffer = Buffer.from('test text file');
|
||||||
|
client.put(buffer, 'fail.txt', err => {
|
||||||
|
expect(err).to.exist;
|
||||||
|
expect(fs.existsSync('./test/fail.txt')).to.equal(false);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
it('STOR tést.txt', done => {
|
it('STOR tést.txt', done => {
|
||||||
const buffer = Buffer.from('test text file');
|
const buffer = Buffer.from('test text file');
|
||||||
client.put(buffer, 'tést.txt', err => {
|
client.put(buffer, 'tést.txt', err => {
|
||||||
|
|||||||
Reference in New Issue
Block a user