feat(server): split generated content into a separate folder (#2047)

* feat: organize media folders

* fix: tests
This commit is contained in:
Jason Rasmussen
2023-03-25 10:50:57 -04:00
committed by GitHub
parent b862c20e8e
commit 2400004f41
19 changed files with 113 additions and 91 deletions

View File

@@ -75,16 +75,15 @@ describe(MediaService.name, () => {
it('should generate a thumbnail for an image', async () => {
await sut.handleGenerateJpegThumbnail({ asset: _.cloneDeep(assetEntityStub.image) });
expect(storageMock.mkdirSync).toHaveBeenCalledWith('upload/user-id/thumb/device-id');
expect(mediaMock.resize).toHaveBeenCalledWith(
'/original/path.ext',
'upload/user-id/thumb/device-id/asset-id.jpeg',
{ size: 1440, format: 'jpeg' },
);
expect(storageMock.mkdirSync).toHaveBeenCalledWith('upload/thumbs/user-id');
expect(mediaMock.resize).toHaveBeenCalledWith('/original/path.ext', 'upload/thumbs/user-id/asset-id.jpeg', {
size: 1440,
format: 'jpeg',
});
expect(mediaMock.extractThumbnailFromExif).not.toHaveBeenCalled();
expect(assetMock.save).toHaveBeenCalledWith({
id: 'asset-id',
resizePath: 'upload/user-id/thumb/device-id/asset-id.jpeg',
resizePath: 'upload/thumbs/user-id/asset-id.jpeg',
});
});
@@ -93,33 +92,32 @@ describe(MediaService.name, () => {
await sut.handleGenerateJpegThumbnail({ asset: _.cloneDeep(assetEntityStub.image) });
expect(storageMock.mkdirSync).toHaveBeenCalledWith('upload/user-id/thumb/device-id');
expect(mediaMock.resize).toHaveBeenCalledWith(
'/original/path.ext',
'upload/user-id/thumb/device-id/asset-id.jpeg',
{ size: 1440, format: 'jpeg' },
);
expect(storageMock.mkdirSync).toHaveBeenCalledWith('upload/thumbs/user-id');
expect(mediaMock.resize).toHaveBeenCalledWith('/original/path.ext', 'upload/thumbs/user-id/asset-id.jpeg', {
size: 1440,
format: 'jpeg',
});
expect(mediaMock.extractThumbnailFromExif).toHaveBeenCalledWith(
'/original/path.ext',
'upload/user-id/thumb/device-id/asset-id.jpeg',
'upload/thumbs/user-id/asset-id.jpeg',
);
expect(assetMock.save).toHaveBeenCalledWith({
id: 'asset-id',
resizePath: 'upload/user-id/thumb/device-id/asset-id.jpeg',
resizePath: 'upload/thumbs/user-id/asset-id.jpeg',
});
});
it('should generate a thumbnail for a video', async () => {
await sut.handleGenerateJpegThumbnail({ asset: _.cloneDeep(assetEntityStub.video) });
expect(storageMock.mkdirSync).toHaveBeenCalledWith('upload/user-id/thumb/device-id');
expect(storageMock.mkdirSync).toHaveBeenCalledWith('upload/thumbs/user-id');
expect(mediaMock.extractVideoThumbnail).toHaveBeenCalledWith(
'/original/path.ext',
'upload/user-id/thumb/device-id/asset-id.jpeg',
'upload/thumbs/user-id/asset-id.jpeg',
);
expect(assetMock.save).toHaveBeenCalledWith({
id: 'asset-id',
resizePath: 'upload/user-id/thumb/device-id/asset-id.jpeg',
resizePath: 'upload/thumbs/user-id/asset-id.jpeg',
});
});