import { createAppWrapper } from '@mocks/jest/wrappers'; import { render, screen } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; import { http, HttpResponse } from 'msw'; import type { DeleteExpenseListPath } from '@/entity/expenses/list'; import type { IncomeList } from '@/entity/incomes/list'; import { DeleteIncomeListButton } from '@/features/incomes/list/DeleteIncomeListButton'; import { DataTestId } from '@/shared/constants'; const incomeList: IncomeList = { createdAt: '2025-08-29T07:57:40.503Z', id: '10cc093c-3875-4d33-a40a-df526266e262', items: [], title: 'Mock list', updatedAt: '2025-08-29T07:57:40.503Z', }; const renderButton = () => { render( , { wrapper: createAppWrapper() }, ); const buttonElem = screen.getByTestId(DataTestId.DELETE_INCOME_LIST_BUTTON); return { buttonElem, }; }; const openModal = async () => { const { buttonElem } = renderButton(); await userEvent.click(buttonElem); const modalElem = screen.getByRole('presentation'); return { modalElem, }; }; const submitHandler = http.delete( `/incomes/list/${incomeList.id}`, () => HttpResponse.json(incomeList), ); export const DeleteIncomeListButtonHelper = { openModal, renderButton, submitHandler, };