test(stor): add failure test
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
/* eslint no-unused-expressions: 0 */
|
||||
const {expect} = require('chai');
|
||||
const sinon = require('sinon');
|
||||
const bunyan = require('bunyan');
|
||||
const fs = require('fs');
|
||||
|
||||
@@ -10,10 +11,13 @@ before(() => require('dotenv').load());
|
||||
|
||||
describe('FtpServer', function () {
|
||||
this.timeout(2000);
|
||||
let sandbox;
|
||||
let log = bunyan.createLogger({name: 'test'});
|
||||
let server;
|
||||
let client;
|
||||
|
||||
let connection;
|
||||
|
||||
before(() => {
|
||||
server = new FtpServer(process.env.FTP_URL, {
|
||||
log,
|
||||
@@ -26,11 +30,18 @@ describe('FtpServer', function () {
|
||||
greeting: ['hello', 'world']
|
||||
});
|
||||
server.on('login', (data, resolve) => {
|
||||
connection = data.connection;
|
||||
resolve({root: process.cwd()});
|
||||
});
|
||||
|
||||
return server.listen();
|
||||
});
|
||||
beforeEach(() => {
|
||||
sandbox = sinon.sandbox.create();
|
||||
});
|
||||
afterEach(() => {
|
||||
sandbox.restore();
|
||||
});
|
||||
after(() => {
|
||||
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 => {
|
||||
const buffer = Buffer.from('test text file');
|
||||
client.put(buffer, 'tést.txt', err => {
|
||||
|
||||
Reference in New Issue
Block a user