Skip to content

YH-2127: add mock endpoint for collection edit#1305

Open
IvanIvashov wants to merge 5 commits into
developfrom
feature/YH-2127
Open

YH-2127: add mock endpoint for collection edit#1305
IvanIvashov wants to merge 5 commits into
developfrom
feature/YH-2127

Conversation

@IvanIvashov

Copy link
Copy Markdown
Collaborator

Что сделано

Добавлен моковый запрос (MSW) на редактирование коллекции (PATCH).

Как проверить

  1. Открыть форму редактирования коллекции
  2. Изменить любые поля и нажать "Сохранить"
  3. В Network должен пройти PATCH-запрос со статусом 200
  4. Ответ должен содержать обновлённые данные коллекции

@IvanIvashov IvanIvashov added review the task is currently being reviewed feature New functionality or improvements labels Jun 21, 2026
Comment thread src/features/collections/editCollection/api/__mocks__/editCollectionMock.ts Outdated
Comment thread src/features/collections/editCollection/api/__mocks__/editCollectionMock.ts Outdated
Comment thread src/features/collections/editCollection/api/__mocks__/editCollectionMock.ts Outdated
Comment thread src/features/collections/editCollection/api/__mocks__/editCollectionMock.ts Outdated
Comment thread src/features/collections/editCollection/api/__mocks__/editCollectionMock.ts Outdated
@PerelomaDenis PerelomaDenis added comments Code improvements are required and removed review the task is currently being reviewed labels Jun 26, 2026
return HttpResponse.json(null, { status: 404 });
}

const body = (await request.json()) as EditCollectionBodyRequest;

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

[SUGGESTION] - Можно просто оставить const body = await request.json(). Тип для body автоматически подтягивается

? companiesMock.data.find((c) => String(c.id) === body.companyId)
: collectionsMock.data[index].company;

if (body.companyId && !company) {

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

[ISSUE] - Это условие как по мне лишнее, так как компания обязательная при редактировании. И в форме выбора компании мы можем выбрать только то, что есть в companiesMock. То есть компания точно будет

P.S. В моковом запросе на создание тоже так указано, но там будем обновлять запрос также как тут будет сделано

}

const body = (await request.json()) as EditCollectionBodyRequest;
const company = body.companyId

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

[ISSUE] - Тут давай тоже упростим. companyId всегда будет в body. Соответственно тернарник не нужен. Напиши тут вот как

const companyIndex = companiesMock.data.findIndex((c) => String(c.id) === body.companyId)

А ниже в обновленную компанию укажи

...
company: companiesMock.data[companyIndex]
...

Почему заменили find на findIndex? Потому что find может вернуть undefined. Но фактически такого здесь не случится и компания всегда будет

return new HttpResponse(null, { status: 404 });
}

collectionsMock.data[index] = {

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

[ISSUE] - Вынеси отдельно объект обновленной коллекции с указанием типа. Так как это сделано в создании коллекции


collectionsMock.data[index] = {
...collectionsMock.data[index],
...body,

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

[ISSUE] - body разворачивать неправильно. Сейчас тип Collection немного не правильный, так как включает лишние поля, поэтому ошибки нет никакой. Но в body лежат поля, которых в окончательном типе коллекции не должно быть. По крайней мере можешь посмотреть как работает реальный запрос.
Возьми пример из createCollectionMock. Создай также объект коллекции, разверни сначала старуб версию ...collectionsMock.data[index], а затем так же как и в createCollectionMock все поля отдельно пропиши, которые могут поменяться. Если сравнивать с createCollectionMock, то будут все такие же поля, кроме - id, createdBy, createdAt, так как они не поменяются

@IvanIvashov IvanIvashov added review the task is currently being reviewed and removed comments Code improvements are required labels Jun 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature New functionality or improvements review the task is currently being reviewed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants