website refactor
This commit is contained in:
@@ -16,28 +16,30 @@ describe('MediaService', () => {
|
||||
};
|
||||
|
||||
const service = new MediaService(
|
||||
requestAvatarGenerationUseCase as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
logger as any,
|
||||
requestAvatarGenerationPresenter as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
requestAvatarGenerationUseCase as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
logger as never,
|
||||
requestAvatarGenerationPresenter as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
);
|
||||
|
||||
await expect(
|
||||
service.requestAvatarGeneration({ userId: 'u1', facePhotoData: {} as any, suitColor: 'red' as any }),
|
||||
service.requestAvatarGeneration({ userId: 'u1', facePhotoData: {} as never, suitColor: 'red' as never }),
|
||||
).resolves.toEqual({ success: true, requestId: 'r1', avatarUrls: ['u1'], errorMessage: '' });
|
||||
|
||||
expect(requestAvatarGenerationUseCase.execute).toHaveBeenCalledWith({
|
||||
userId: 'u1',
|
||||
facePhotoData: {} as any,
|
||||
facePhotoData: {} as never,
|
||||
suitColor: 'red',
|
||||
});
|
||||
expect(requestAvatarGenerationPresenter.transform).toHaveBeenCalledWith({ requestId: 'r1', status: 'completed', avatarUrls: ['u1'] });
|
||||
@@ -45,23 +47,25 @@ describe('MediaService', () => {
|
||||
|
||||
it('requestAvatarGeneration returns failure DTO on error', async () => {
|
||||
const service = new MediaService(
|
||||
{ execute: vi.fn(async () => Result.err({ code: 'REPOSITORY_ERROR', details: { message: 'fail' } })) } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
logger as any,
|
||||
{ responseModel: { success: true } } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ execute: vi.fn(async () => Result.err({ code: 'REPOSITORY_ERROR', details: { message: 'fail' } })) } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
logger as never,
|
||||
{ responseModel: { success: true } } as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
);
|
||||
|
||||
await expect(
|
||||
service.requestAvatarGeneration({ userId: 'u1', facePhotoData: {} as any, suitColor: 'red' as any }),
|
||||
service.requestAvatarGeneration({ userId: 'u1', facePhotoData: {} as never, suitColor: 'red' as never }),
|
||||
).resolves.toEqual({
|
||||
success: false,
|
||||
requestId: '',
|
||||
@@ -78,30 +82,32 @@ describe('MediaService', () => {
|
||||
const uploadMediaUseCase = { execute: vi.fn(async () => Result.ok({ mediaId: 'm1', url: 'https://example.com/m1.png' })) };
|
||||
|
||||
const service = new MediaService(
|
||||
{ execute: vi.fn() } as any,
|
||||
uploadMediaUseCase as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
logger as any,
|
||||
{ responseModel: {} } as any,
|
||||
uploadMediaPresenter as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ execute: vi.fn() } as never,
|
||||
uploadMediaUseCase as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
logger as never,
|
||||
{ responseModel: {} } as never,
|
||||
uploadMediaPresenter as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
);
|
||||
|
||||
await expect(
|
||||
service.uploadMedia({ file: {} as any, userId: 'u1', metadata: { a: 1 } } as any),
|
||||
service.uploadMedia({ file: {} as never, userId: 'u1', metadata: { a: 1 } } as never),
|
||||
).resolves.toEqual({
|
||||
success: true,
|
||||
mediaId: 'm1',
|
||||
});
|
||||
|
||||
expect(uploadMediaUseCase.execute).toHaveBeenCalledWith({
|
||||
file: {} as any,
|
||||
file: {} as never,
|
||||
uploadedBy: 'u1',
|
||||
metadata: { a: 1 },
|
||||
});
|
||||
@@ -116,23 +122,25 @@ describe('MediaService', () => {
|
||||
};
|
||||
|
||||
const service = new MediaService(
|
||||
{ execute: vi.fn() } as any,
|
||||
uploadMediaUseCase as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
logger as any,
|
||||
{ responseModel: {} } as any,
|
||||
uploadMediaPresenter as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ execute: vi.fn() } as never,
|
||||
uploadMediaUseCase as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
logger as never,
|
||||
{ responseModel: {} } as never,
|
||||
uploadMediaPresenter as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
);
|
||||
|
||||
await expect(service.uploadMedia({ file: {} as any } as any)).resolves.toEqual({ success: true, mediaId: 'm1' });
|
||||
expect(uploadMediaUseCase.execute).toHaveBeenCalledWith({ file: {} as any, uploadedBy: '', metadata: {} });
|
||||
await expect(service.uploadMedia({ file: {} as never } as never)).resolves.toEqual({ success: true, mediaId: 'm1' });
|
||||
expect(uploadMediaUseCase.execute).toHaveBeenCalledWith({ file: {} as never, uploadedBy: '', metadata: {} });
|
||||
expect(uploadMediaPresenter.transform).toHaveBeenCalledWith({ mediaId: 'm1', url: 'https://example.com/m1.png' });
|
||||
});
|
||||
|
||||
@@ -142,22 +150,24 @@ describe('MediaService', () => {
|
||||
};
|
||||
|
||||
const service = new MediaService(
|
||||
{ execute: vi.fn() } as any,
|
||||
uploadMediaUseCase as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
logger as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: { success: true } } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ execute: vi.fn() } as never,
|
||||
uploadMediaUseCase as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
logger as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: { success: true } } as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
);
|
||||
|
||||
await expect(service.uploadMedia({ file: {} as any, userId: 'u1' } as any)).resolves.toEqual({
|
||||
await expect(service.uploadMedia({ file: {} as never, userId: 'u1' } as never)).resolves.toEqual({
|
||||
success: false,
|
||||
error: 'nope',
|
||||
});
|
||||
@@ -172,19 +182,21 @@ describe('MediaService', () => {
|
||||
};
|
||||
|
||||
const service = new MediaService(
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
getMediaUseCase as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
logger as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
getMediaPresenter as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
getMediaUseCase as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
logger as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
getMediaPresenter as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
);
|
||||
|
||||
const result = await service.getMedia('m1');
|
||||
@@ -195,19 +207,21 @@ describe('MediaService', () => {
|
||||
|
||||
it('getMedia returns null on MEDIA_NOT_FOUND', async () => {
|
||||
const service = new MediaService(
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn(async () => Result.err({ code: 'MEDIA_NOT_FOUND', details: { message: 'n/a' } })) } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
logger as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn(async () => Result.err({ code: 'MEDIA_NOT_FOUND', details: { message: 'n/a' } })) } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
logger as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
);
|
||||
|
||||
await expect(service.getMedia('m1')).resolves.toBeNull();
|
||||
@@ -215,19 +229,21 @@ describe('MediaService', () => {
|
||||
|
||||
it('getMedia throws on non-not-found error', async () => {
|
||||
const service = new MediaService(
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn(async () => Result.err({ code: 'REPOSITORY_ERROR', details: { message: 'boom' } })) } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
logger as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn(async () => Result.err({ code: 'REPOSITORY_ERROR', details: { message: 'boom' } })) } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
logger as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
);
|
||||
|
||||
await expect(service.getMedia('m1')).rejects.toThrow('boom');
|
||||
@@ -241,19 +257,21 @@ describe('MediaService', () => {
|
||||
};
|
||||
|
||||
const service = new MediaService(
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
deleteMediaUseCase as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
logger as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
deleteMediaPresenter as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
deleteMediaUseCase as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
logger as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
deleteMediaPresenter as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
);
|
||||
|
||||
await expect(service.deleteMedia('m1')).resolves.toEqual({ success: true });
|
||||
@@ -263,19 +281,21 @@ describe('MediaService', () => {
|
||||
|
||||
it('deleteMedia returns failure DTO on error', async () => {
|
||||
const service = new MediaService(
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn(async () => Result.err({ code: 'REPOSITORY_ERROR', details: { message: 'nope' } })) } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
logger as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: { success: true } } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn(async () => Result.err({ code: 'REPOSITORY_ERROR', details: { message: 'nope' } })) } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
logger as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: { success: true } } as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
);
|
||||
|
||||
await expect(service.deleteMedia('m1')).resolves.toEqual({ success: false, error: 'nope' });
|
||||
@@ -290,19 +310,21 @@ describe('MediaService', () => {
|
||||
};
|
||||
|
||||
const service = new MediaService(
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
getAvatarUseCase as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
logger as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
getAvatarPresenter as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
getAvatarUseCase as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
logger as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
getAvatarPresenter as never,
|
||||
{ responseModel: {} } as never,
|
||||
);
|
||||
|
||||
await expect(service.getAvatar('d1')).resolves.toEqual({ avatarUrl: 'https://example.com/avatar.png' });
|
||||
@@ -312,19 +334,21 @@ describe('MediaService', () => {
|
||||
|
||||
it('getAvatar returns null on AVATAR_NOT_FOUND', async () => {
|
||||
const service = new MediaService(
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn(async () => Result.err({ code: 'AVATAR_NOT_FOUND', details: { message: 'n/a' } })) } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
logger as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn(async () => Result.err({ code: 'AVATAR_NOT_FOUND', details: { message: 'n/a' } })) } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
logger as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
);
|
||||
|
||||
await expect(service.getAvatar('d1')).resolves.toBeNull();
|
||||
@@ -332,19 +356,21 @@ describe('MediaService', () => {
|
||||
|
||||
it('getAvatar throws on non-not-found error', async () => {
|
||||
const service = new MediaService(
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn(async () => Result.err({ code: 'REPOSITORY_ERROR', details: { message: 'boom' } })) } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
logger as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn(async () => Result.err({ code: 'REPOSITORY_ERROR', details: { message: 'boom' } })) } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
logger as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
);
|
||||
|
||||
await expect(service.getAvatar('d1')).rejects.toThrow('boom');
|
||||
@@ -358,44 +384,48 @@ describe('MediaService', () => {
|
||||
};
|
||||
|
||||
const service = new MediaService(
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
updateAvatarUseCase as any,
|
||||
logger as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
updateAvatarPresenter as any,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
updateAvatarUseCase as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
logger as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
updateAvatarPresenter as never,
|
||||
);
|
||||
|
||||
await expect(service.updateAvatar('d1', { avatarUrl: 'u1' } as any)).resolves.toEqual({ success: true });
|
||||
await expect(service.updateAvatar('d1', { avatarUrl: 'u1' } as never)).resolves.toEqual({ success: true });
|
||||
expect(updateAvatarUseCase.execute).toHaveBeenCalledWith({ driverId: 'd1', mediaUrl: 'u1' });
|
||||
expect(updateAvatarPresenter.transform).toHaveBeenCalledWith({ avatarId: 'a1', driverId: 'd1' });
|
||||
});
|
||||
|
||||
it('updateAvatar returns failure DTO on error', async () => {
|
||||
const service = new MediaService(
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn(async () => Result.err({ code: 'REPOSITORY_ERROR', details: { message: 'nope' } })) } as any,
|
||||
logger as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: { success: true } } as any,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn(async () => Result.err({ code: 'REPOSITORY_ERROR', details: { message: 'nope' } })) } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
logger as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: { success: true } } as never,
|
||||
);
|
||||
|
||||
await expect(service.updateAvatar('d1', { avatarUrl: 'u' } as any)).resolves.toEqual({
|
||||
await expect(service.updateAvatar('d1', { avatarUrl: 'u' } as never)).resolves.toEqual({
|
||||
success: false,
|
||||
error: 'nope',
|
||||
});
|
||||
@@ -403,23 +433,25 @@ describe('MediaService', () => {
|
||||
|
||||
it('requestAvatarGeneration uses fallback errorMessage when no details.message', async () => {
|
||||
const service = new MediaService(
|
||||
{ execute: vi.fn(async () => Result.err({ code: 'REPOSITORY_ERROR' } as any)) } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
logger as any,
|
||||
{ responseModel: { success: true } } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ execute: vi.fn(async () => Result.err({ code: 'REPOSITORY_ERROR' } as never)) } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
logger as never,
|
||||
{ responseModel: { success: true } } as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
);
|
||||
|
||||
await expect(
|
||||
service.requestAvatarGeneration({ userId: 'u1', facePhotoData: {} as any, suitColor: 'red' as any }),
|
||||
service.requestAvatarGeneration({ userId: 'u1', facePhotoData: {} as never, suitColor: 'red' as never }),
|
||||
).resolves.toEqual({
|
||||
success: false,
|
||||
requestId: '',
|
||||
@@ -430,26 +462,28 @@ describe('MediaService', () => {
|
||||
|
||||
it('uploadMedia uses fallback error when no details.message', async () => {
|
||||
const uploadMediaUseCase = {
|
||||
execute: vi.fn(async () => Result.err({ code: 'UPLOAD_FAILED' } as any)),
|
||||
execute: vi.fn(async () => Result.err({ code: 'UPLOAD_FAILED' } as never)),
|
||||
};
|
||||
|
||||
const service = new MediaService(
|
||||
{ execute: vi.fn() } as any,
|
||||
uploadMediaUseCase as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
logger as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: { success: true } } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ execute: vi.fn() } as never,
|
||||
uploadMediaUseCase as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
logger as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: { success: true } } as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
);
|
||||
|
||||
await expect(service.uploadMedia({ file: {} as any, userId: 'u1' } as any)).resolves.toEqual({
|
||||
await expect(service.uploadMedia({ file: {} as never, userId: 'u1' } as never)).resolves.toEqual({
|
||||
success: false,
|
||||
error: 'Upload failed',
|
||||
});
|
||||
@@ -457,19 +491,21 @@ describe('MediaService', () => {
|
||||
|
||||
it('getMedia throws fallback message when no details.message and not not-found', async () => {
|
||||
const service = new MediaService(
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn(async () => Result.err({ code: 'REPOSITORY_ERROR' } as any)) } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
logger as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn(async () => Result.err({ code: 'REPOSITORY_ERROR' } as never)) } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
logger as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
);
|
||||
|
||||
await expect(service.getMedia('m1')).rejects.toThrow('Failed to get media');
|
||||
@@ -477,19 +513,21 @@ describe('MediaService', () => {
|
||||
|
||||
it('deleteMedia uses fallback message when no details.message', async () => {
|
||||
const service = new MediaService(
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn(async () => Result.err({ code: 'REPOSITORY_ERROR' } as any)) } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
logger as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: { success: true } } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn(async () => Result.err({ code: 'REPOSITORY_ERROR' } as never)) } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
logger as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: { success: true } } as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
);
|
||||
|
||||
await expect(service.deleteMedia('m1')).resolves.toEqual({ success: false, error: 'Failed to delete media' });
|
||||
@@ -497,19 +535,21 @@ describe('MediaService', () => {
|
||||
|
||||
it('getAvatar throws fallback message when no details.message and not not-found', async () => {
|
||||
const service = new MediaService(
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn(async () => Result.err({ code: 'REPOSITORY_ERROR' } as any)) } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
logger as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn(async () => Result.err({ code: 'REPOSITORY_ERROR' } as never)) } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
logger as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
);
|
||||
|
||||
await expect(service.getAvatar('d1')).rejects.toThrow('Failed to get avatar');
|
||||
@@ -517,24 +557,26 @@ describe('MediaService', () => {
|
||||
|
||||
it('updateAvatar uses fallback message when no details.message', async () => {
|
||||
const service = new MediaService(
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn() } as any,
|
||||
{ execute: vi.fn(async () => Result.err({ code: 'REPOSITORY_ERROR' } as any)) } as any,
|
||||
logger as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: {} } as any,
|
||||
{ responseModel: { success: true } } as any,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn(async () => Result.err({ code: 'REPOSITORY_ERROR' } as never)) } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
{ execute: vi.fn() } as never,
|
||||
logger as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: {} } as never,
|
||||
{ responseModel: { success: true } } as never,
|
||||
);
|
||||
|
||||
await expect(service.updateAvatar('d1', { avatarUrl: 'u' } as any)).resolves.toEqual({
|
||||
await expect(service.updateAvatar('d1', { avatarUrl: 'u' } as never)).resolves.toEqual({
|
||||
success: false,
|
||||
error: 'Failed to update avatar',
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user