From a07998d287bca2dc35341770045b3da1f6e0c4a9 Mon Sep 17 00:00:00 2001 From: GeekaN2 Date: Thu, 4 Jul 2024 17:07:55 +0300 Subject: [PATCH] fix: 1 test --- .../http/router/dto/AddEditorTool.dto.ts | 2 -- .../http/router/editorTools.test.ts | 22 ++++++++++++++++-- src/presentation/http/router/editorTools.ts | 23 ++++++++----------- src/presentation/http/router/user.test.ts | 3 +++ src/repository/editorTools.repository.ts | 4 ++-- src/tests/utils/database-helpers.ts | 4 ++-- 6 files changed, 37 insertions(+), 21 deletions(-) diff --git a/src/presentation/http/router/dto/AddEditorTool.dto.ts b/src/presentation/http/router/dto/AddEditorTool.dto.ts index 70613d207..01e7a5fdd 100644 --- a/src/presentation/http/router/dto/AddEditorTool.dto.ts +++ b/src/presentation/http/router/dto/AddEditorTool.dto.ts @@ -1,6 +1,4 @@ -import EditorTool from '@domain/entities/editorTools.js'; import type { MultipartFields, MultipartFile, MultipartValue } from '@fastify/multipart'; -import { Multipart } from '@fastify/multipart'; export interface AddEditorToolDto extends MultipartFields { name: MultipartValue; diff --git a/src/presentation/http/router/editorTools.test.ts b/src/presentation/http/router/editorTools.test.ts index 3daea77f6..27781ad09 100644 --- a/src/presentation/http/router/editorTools.test.ts +++ b/src/presentation/http/router/editorTools.test.ts @@ -19,18 +19,28 @@ describe('EditorTools API', () => { title: 'Code Tool', exportName: 'Code', isDefault: false, + description: '', source: { cdn: 'https://cdn.jsdelivr.net/npm/@editorjs/code@latest', }, }; + const formData = new FormData(); + + formData.append('name', toolToAdd.name); + formData.append('title', toolToAdd.title); + formData.append('exportName', toolToAdd.exportName); + formData.append('isDefault', String(toolToAdd.isDefault)); + formData.append('description', toolToAdd.description); + formData.append('source', JSON.stringify(toolToAdd.source)); + const addToolResponse = await global.api?.fakeRequest({ method: 'POST', headers: { authorization: `Bearer ${accessToken}`, }, url: '/editor-tools/add-tool', - body: toolToAdd, + body: formData, }); expect(addToolResponse?.statusCode).toBe(200); @@ -39,6 +49,7 @@ describe('EditorTools API', () => { expect(body.data).toMatchObject({ ...toolToAdd, + cover: '', userId, }); @@ -68,13 +79,20 @@ describe('EditorTools API', () => { }, }; + const formData = new FormData(); + + formData.append('title', toolDataWithoutName.title); + formData.append('exportName', toolDataWithoutName.exportName); + formData.append('isDefault', String(toolDataWithoutName.isDefault)); + formData.append('source', JSON.stringify(toolDataWithoutName.source)); + const response = await global.api?.fakeRequest({ method: 'POST', headers: { authorization: `Bearer ${accessToken}`, }, url: '/editor-tools/add-tool', - body: toolDataWithoutName, + body: formData, }); expect(response?.statusCode).toBe(400); diff --git a/src/presentation/http/router/editorTools.ts b/src/presentation/http/router/editorTools.ts index ff1a86974..e7dd5388f 100644 --- a/src/presentation/http/router/editorTools.ts +++ b/src/presentation/http/router/editorTools.ts @@ -1,6 +1,5 @@ import type { FastifyPluginCallback } from 'fastify'; import type EditorToolsService from '@domain/service/editorTools.js'; -import type EditorTool from '@domain/entities/editorTools.js'; import type { AddEditorToolDto } from './dto/AddEditorTool.dto.js'; import type FileUploaderService from '@domain/service/fileUploader.service.js'; import fastifyMultipart from '@fastify/multipart'; @@ -116,19 +115,17 @@ const EditorToolsRouter: FastifyPluginCallback = async let coverKey: string | undefined = undefined; - if (editorTool.cover) { - const coverBuffer = await editorTool.cover.toBuffer(); + const coverBuffer = await editorTool.cover.toBuffer(); - coverKey = await fileUploaderService.uploadFile({ - data: coverBuffer, - name: createFileId(), - mimetype: editorTool.cover.mimetype, - }, { - isEditorToolCover: true, - }, { - userId, - }); - } + coverKey = await fileUploaderService.uploadFile({ + data: coverBuffer, + name: createFileId(), + mimetype: editorTool.cover.mimetype, + }, { + isEditorToolCover: true, + }, { + userId, + }); const tool = await editorToolsService.addTool({ title: String(editorTool.title?.value), diff --git a/src/presentation/http/router/user.test.ts b/src/presentation/http/router/user.test.ts index 2f4d4ee63..732f0452e 100644 --- a/src/presentation/http/router/user.test.ts +++ b/src/presentation/http/router/user.test.ts @@ -59,6 +59,7 @@ describe('User API', () => { exportName: 'Code', userId: null, isDefault: false, + description: 'Code tool for Editor.js', source: { cdn: 'https://cdn.jsdelivr.net/npm/@editorjs/code@latest', }, @@ -85,6 +86,8 @@ describe('User API', () => { name: 'code', title: 'Code Tool', exportName: 'Code', + description: 'Code tool for Editor.js', + cover: '', userId: null, isDefault: false, source: { diff --git a/src/repository/editorTools.repository.ts b/src/repository/editorTools.repository.ts index 608cd241f..95642d64d 100644 --- a/src/repository/editorTools.repository.ts +++ b/src/repository/editorTools.repository.ts @@ -60,8 +60,8 @@ export default class EditorToolsRepository { /** * Update tool cover - * @param editorToolId - * @param cover + * @param editorToolId - unique tool identifier + * @param cover - new tool cover */ public async updateToolCover(editorToolId: EditorTool['id'], cover: EditorTool['cover']): Promise { return await this.storage.updateToolCover(editorToolId, cover); diff --git a/src/tests/utils/database-helpers.ts b/src/tests/utils/database-helpers.ts index bc474ef92..2469e6ed1 100644 --- a/src/tests/utils/database-helpers.ts +++ b/src/tests/utils/database-helpers.ts @@ -246,8 +246,8 @@ export default class DatabaseHelpers { public async insertEditorTool(editorTool: EditorToolMockCreationAttributes): Promise { const isDefault = editorTool.isDefault ?? false; - const [result, _] = await this.orm.connection.query(`INSERT INTO public.editor_tools ("name", "title", "export_name", "source", "is_default") - VALUES ('${editorTool.name}', '${editorTool.title}', '${editorTool.exportName}', '${JSON.stringify(editorTool.source)}', ${isDefault}) + const [result, _] = await this.orm.connection.query(`INSERT INTO public.editor_tools ("name", "title", "export_name", "source", "is_default", "description") + VALUES ('${editorTool.name}', '${editorTool.title}', '${editorTool.exportName}', '${JSON.stringify(editorTool.source)}', ${isDefault}, '${editorTool.description}') RETURNING "id"`); const addedToolData = result[0];