|
|
|
|
import { create_images_directory } from '../src/logic';
|
|
|
|
|
|
|
|
|
|
beforeEach(jest.restoreAllMocks);
|
|
|
|
|
|
|
|
|
|
const fs = require('fs').promises;
|
|
|
|
|
const filesystem = require('fs');
|
|
|
|
|
|
|
|
|
|
describe('create_images_directory', () => {
|
|
|
|
|
it('creates images directory', () => {
|
|
|
|
|
const mock = jest
|
|
|
|
|
.spyOn(fs, 'mkdir')
|
|
|
|
|
.mockImplementation(() => Promise.resolve());
|
|
|
|
|
jest.spyOn(filesystem, 'existsSync').mockImplementation(() => false);
|
|
|
|
|
const dir = 'new directory';
|
|
|
|
|
expect.assertions(2);
|
|
|
|
|
return create_images_directory(dir).then(() => {
|
|
|
|
|
expect(mock).toHaveBeenCalledTimes(1);
|
|
|
|
|
expect(mock).toHaveBeenCalledWith(dir, { recursive: true });
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it('it skips creating images directory', () => {
|
|
|
|
|
const fs_mock = jest
|
|
|
|
|
.spyOn(fs, 'mkdir')
|
|
|
|
|
.mockImplementation(() => Promise.resolve());
|
|
|
|
|
const exist_mock = jest
|
|
|
|
|
.spyOn(filesystem, 'existsSync')
|
|
|
|
|
.mockImplementation(() => true);
|
|
|
|
|
const dir = 'new directory';
|
|
|
|
|
expect.assertions(3);
|
|
|
|
|
return create_images_directory(dir).then(() => {
|
|
|
|
|
expect(fs_mock).toHaveBeenCalledTimes(0);
|
|
|
|
|
expect(exist_mock).toHaveBeenCalledTimes(1);
|
|
|
|
|
expect(exist_mock).toHaveBeenCalledWith(dir);
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
[undefined, null].forEach((dir) =>
|
|
|
|
|
it('throws if directory is not set', () => {
|
|
|
|
|
const mock = jest
|
|
|
|
|
.spyOn(filesystem, 'existsSync')
|
|
|
|
|
.mockImplementation(() => true);
|
|
|
|
|
expect.assertions(2);
|
|
|
|
|
return create_images_directory(dir).catch((error) => {
|
|
|
|
|
expect(mock).toHaveBeenCalledTimes(0);
|
|
|
|
|
expect(error).toEqual('Image path was not set');
|
|
|
|
|
});
|
|
|
|
|
}),
|
|
|
|
|
);
|
|
|
|
|
});
|