|
|
'use strict';
const fs = require('fs'); const md5 = require('md5'); const path = require('path'); const assert = require('assert'); const server = require('./server'); const {isFunc} = require('../lib/utilities'); const fileFactory = require('../lib/fileFactory');
const mockFileName = 'basketball.png'; const mockFile = path.join(server.fileDir, mockFileName); const mockBuffer = fs.readFileSync(mockFile); const mockMd5 = md5(mockBuffer);
const mockFileOpts = { name: mockFileName, buffer: mockBuffer, encoding: 'utf-8', mimetype: 'image/png', hash: mockMd5, tempFilePath: mockFile };
describe('Test of the fileFactory factory', function() { beforeEach(() => server.clearUploadsDir());
it('return a file object', () => assert.ok(fileFactory(mockFileOpts)));
describe('Properties', function() { it('contains the name property', () => { assert.equal(fileFactory(mockFileOpts).name, mockFileName); }); it('contains the data property', () => assert.ok(fileFactory(mockFileOpts).data)); it('contains the encoding property', () => { assert.equal(fileFactory(mockFileOpts).encoding, 'utf-8'); }); it('contains the mimetype property', () => { assert.equal(fileFactory(mockFileOpts).mimetype, 'image/png'); }); it('contains the md5 property', () => assert.equal(fileFactory(mockFileOpts).md5, mockMd5)); it('contains the mv method', () => assert.equal(isFunc(fileFactory(mockFileOpts).mv), true)); });
describe('File object behavior for in memory upload', function() { const file = fileFactory(mockFileOpts); it('move the file to the specified folder', (done) => { file.mv(path.join(server.uploadDir, mockFileName), (err) => { assert.ifError(err); done(); }); }); it('reject the mv if the destination does not exists', (done) => { file.mv(path.join(server.uploadDir, 'unknown', mockFileName), (err) => { assert.ok(err); done(); }); }); });
describe('File object behavior for upload into temporary file', function() { const file = fileFactory(mockFileOpts, { useTempFiles: true }); it('move the file to the specified folder', (done) => { file.mv(path.join(server.uploadDir, mockFileName), (err) => { assert.ifError(err); // Place back moved file.
fs.renameSync(path.join(server.uploadDir, mockFileName), mockFile); done(); }); }); it('reject the mv if the destination does not exists', (done) => { file.mv(path.join(server.uploadDir, 'unknown', mockFileName), (err) => { assert.ok(err); done(); }); }); }); });
|