YH-2127: add mock endpoint for collection edit#1305
Conversation
| return HttpResponse.json(null, { status: 404 }); | ||
| } | ||
|
|
||
| const body = (await request.json()) as EditCollectionBodyRequest; |
There was a problem hiding this comment.
[SUGGESTION] - Можно просто оставить const body = await request.json(). Тип для body автоматически подтягивается
| ? companiesMock.data.find((c) => String(c.id) === body.companyId) | ||
| : collectionsMock.data[index].company; | ||
|
|
||
| if (body.companyId && !company) { |
There was a problem hiding this comment.
[ISSUE] - Это условие как по мне лишнее, так как компания обязательная при редактировании. И в форме выбора компании мы можем выбрать только то, что есть в companiesMock. То есть компания точно будет
P.S. В моковом запросе на создание тоже так указано, но там будем обновлять запрос также как тут будет сделано
| } | ||
|
|
||
| const body = (await request.json()) as EditCollectionBodyRequest; | ||
| const company = body.companyId |
There was a problem hiding this comment.
[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] = { |
There was a problem hiding this comment.
[ISSUE] - Вынеси отдельно объект обновленной коллекции с указанием типа. Так как это сделано в создании коллекции
|
|
||
| collectionsMock.data[index] = { | ||
| ...collectionsMock.data[index], | ||
| ...body, |
There was a problem hiding this comment.
[ISSUE] - body разворачивать неправильно. Сейчас тип Collection немного не правильный, так как включает лишние поля, поэтому ошибки нет никакой. Но в body лежат поля, которых в окончательном типе коллекции не должно быть. По крайней мере можешь посмотреть как работает реальный запрос.
Возьми пример из createCollectionMock. Создай также объект коллекции, разверни сначала старуб версию ...collectionsMock.data[index], а затем так же как и в createCollectionMock все поля отдельно пропиши, которые могут поменяться. Если сравнивать с createCollectionMock, то будут все такие же поля, кроме - id, createdBy, createdAt, так как они не поменяются
Что сделано
Добавлен моковый запрос (MSW) на редактирование коллекции (PATCH).
Как проверить