diff --git a/client/src/features/order-detail/ui/OrderDetailContent.tsx b/client/src/features/order-detail/ui/OrderDetailContent.tsx
index 50dbe65..357cfc1 100644
--- a/client/src/features/order-detail/ui/OrderDetailContent.tsx
+++ b/client/src/features/order-detail/ui/OrderDetailContent.tsx
@@ -1,17 +1,13 @@
import { useMemo, useState } from 'react'
-import { Link as RouterLink } from 'react-router-dom'
import Alert from '@mui/material/Alert'
import Box from '@mui/material/Box'
import Button from '@mui/material/Button'
-import FormControl from '@mui/material/FormControl'
-import InputLabel from '@mui/material/InputLabel'
import Link from '@mui/material/Link'
-import MenuItem from '@mui/material/MenuItem'
-import Select from '@mui/material/Select'
import Stack from '@mui/material/Stack'
import Typography from '@mui/material/Typography'
import { useMutation, useQueryClient } from '@tanstack/react-query'
import { useUnit } from 'effector-react'
+import { Link as RouterLink } from 'react-router-dom'
import { postAdminOrderMessage, setAdminOrderStatus } from '@/entities/order/api/admin-order-api'
import type { AdminOrderDetailResponse } from '@/entities/order/api/admin-order-api'
import { deliveryCarrierLabelRu } from '@/shared/constants/delivery-carrier'
@@ -165,31 +161,34 @@ export function OrderDetailContent({ detail, orderId }: { detail: AdminOrderDeta
)}
-
-
- Сменить статус
-
-
-
+
+
+ Быстрый переход статуса
+
+ {statusMut.isError && Не удалось сменить статус}
+ {nextStatuses.length === 0 ? (
+
+ Статус финальный, смена недоступна
+
+ ) : (
+
+ {nextStatuses.map((nextStatus) => {
+ const isCancelled = nextStatus === 'CANCELLED'
+ return (
+
+ )
+ })}
+
+ )}
+
diff --git a/client/src/features/order-detail/ui/__tests__/OrderDetailContent.test.tsx b/client/src/features/order-detail/ui/__tests__/OrderDetailContent.test.tsx
new file mode 100644
index 0000000..b47f2a4
--- /dev/null
+++ b/client/src/features/order-detail/ui/__tests__/OrderDetailContent.test.tsx
@@ -0,0 +1,181 @@
+import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
+import { render, screen, waitFor } from '@testing-library/react'
+import userEvent from '@testing-library/user-event'
+import { useUnit } from 'effector-react'
+import { MemoryRouter } from 'react-router-dom'
+import { beforeEach, describe, expect, it, vi } from 'vitest'
+import { setAdminOrderStatus } from '@/entities/order/api/admin-order-api'
+import type { AdminOrderDetailResponse } from '@/entities/order/api/admin-order-api'
+import { ORDER_STATUS_MAP } from '@/shared/lib/order-status-data'
+import { OrderDetailContent } from '../OrderDetailContent'
+
+vi.mock('@/entities/order/api/admin-order-api', () => ({
+ setAdminOrderStatus: vi.fn(),
+ postAdminOrderMessage: vi.fn(),
+}))
+
+vi.mock('effector-react', () => ({
+ useUnit: vi.fn(),
+}))
+
+vi.mock('@/shared/ui/RichTextMessageEditor.lazy', () => ({
+ RichTextMessageEditor: ({
+ value,
+ onChange,
+ }: {
+ value: string
+ onChange: (next: string) => void
+ placeholder?: string
+ disabled?: boolean
+ }) =>