Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions src/modules/backups/backup.usecase.ts
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,6 @@ export class BackupUseCase {
bucket = backupsBucket;
}

const encryptedName = this.cryptoService.encryptName(deviceName, bucket);
const folders = await this.folderUsecases.getFolders(user.id, {
bucket,
plainName: deviceName,
Expand All @@ -110,7 +109,6 @@ export class BackupUseCase {
}

const createdFolder = await this.folderUsecases.createFolderDevice(user, {
name: encryptedName,
plainName: deviceName,
bucket,
});
Expand Down
51 changes: 45 additions & 6 deletions src/modules/folder/folder.usecase.spec.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
import { Test, TestingModule } from '@nestjs/testing';
import { createMock } from '@golevelup/ts-jest';
import { FolderUseCases, SortParamsFolder } from './folder.usecase';
import {
SequelizeFolderRepository,
FolderRepository,
} from './folder.repository';
import { SequelizeFolderRepository } from './folder.repository';
import {
BadRequestException,
ConflictException,
Expand Down Expand Up @@ -40,7 +37,7 @@ const user = newUser();

describe('FolderUseCases', () => {
let service: FolderUseCases;
let folderRepository: FolderRepository;
let folderRepository: SequelizeFolderRepository;
let cryptoService: CryptoService;
let sharingService: SharingService;
let fileUsecases: FileUseCases;
Expand Down Expand Up @@ -86,7 +83,9 @@ describe('FolderUseCases', () => {
.compile();

service = module.get<FolderUseCases>(FolderUseCases);
folderRepository = module.get<FolderRepository>(SequelizeFolderRepository);
folderRepository = module.get<SequelizeFolderRepository>(
SequelizeFolderRepository,
);
cryptoService = module.get<CryptoService>(CryptoService);
sharingService = module.get<SharingService>(SharingService);
fileUsecases = module.get<FileUseCases>(FileUseCases);
Expand Down Expand Up @@ -2066,4 +2065,44 @@ describe('FolderUseCases', () => {
expect(result).toEqual(folders);
});
});
describe('createFolderDevice', () => {
it('When plain name is not given, then it should throw an error', async () => {
const mockFolderData: Partial<FolderAttributes> = {
bucket: 'mock bucket',
};
await expect(
service.createFolderDevice(userMocked, mockFolderData),
).rejects.toThrow(BadRequestException);
expect(folderRepository.createFolder).not.toHaveBeenCalled();
});

it('When bucket is not given, then it should throw an error', async () => {
const mockFolderData: Partial<FolderAttributes> = {
plainName: 'mock plain name',
};

await expect(
service.createFolderDevice(userMocked, mockFolderData),
).rejects.toThrow(BadRequestException);
expect(folderRepository.createFolder).not.toHaveBeenCalled();
});

it('When both plain and foilder are given, then it should create a folder', async () => {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Typo here, is folder, not foilder

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh, it should be 'plain name and bucket'. Fixed

const mockFolder = newFolder();
const mockFolderData: Partial<FolderAttributes> = {
plainName: 'mock plain name',
bucket: 'mock bucket',
};
jest
.spyOn(folderRepository, 'createFolder')
.mockResolvedValue(mockFolder);
const result = await service.createFolderDevice(
userMocked,
mockFolderData,
);

expect(result).toBe(mockFolder);
expect(folderRepository.createFolder).toHaveBeenCalledTimes(1);
});
});
});
2 changes: 1 addition & 1 deletion src/modules/folder/folder.usecase.ts
Original file line number Diff line number Diff line change
Expand Up @@ -334,7 +334,7 @@ export class FolderUseCases {
}

async createFolderDevice(user: User, folderData: Partial<FolderAttributes>) {
if (!folderData.name || !folderData.bucket) {
if (!folderData.plainName || !folderData.bucket) {
throw new BadRequestException('Folder name and bucket are required');
}
return this.folderRepository.createFolder(user.id, folderData);
Expand Down
Loading