diff --git a/assets/admin/pages/AppointmentsPage.test.tsx b/assets/admin/pages/AppointmentsPage.test.tsx index 5eb6ca4c..04d55cde 100644 --- a/assets/admin/pages/AppointmentsPage.test.tsx +++ b/assets/admin/pages/AppointmentsPage.test.tsx @@ -140,6 +140,20 @@ describe('AppointmentsPage — پروفایل کلینیک چندپزشکه', () expect(screen.queryByRole('button', { name: 'لیزر CO2' })).toBeNull(); }); + /** برگشت از منبع به خودِ پزشک باید در همان نوار باشد، نه با کلیک روی تب بالایی. */ + it('تب نخستِ نوار منابع، برگشت به نوبت‌دهی خود پزشک است', async () => { + const user = userEvent.setup(); + renderWithProviders(); + + await screen.findByText('دکتر محمدی'); + await user.click(await screen.findByRole('button', { name: 'لیزر CO2' })); + expect(await screen.findByText(/نوبت‌دهی این منبع سرویسی است/)).toBeInTheDocument(); + + await user.click(screen.getByRole('button', { name: 'نوبت‌های خود پزشک' })); + + expect(screen.queryByText(/نوبت‌دهی این منبع سرویسی است/)).toBeNull(); + }); + /** باگ گزارش‌شده: نمای منبع نباید اسلاتی باشد. */ it('نمای منبع سرویسی است و تایم‌لاین اسلاتی ندارد', async () => { const user = userEvent.setup(); diff --git a/assets/admin/pages/AppointmentsPage.tsx b/assets/admin/pages/AppointmentsPage.tsx index 787c6dea..dab274b8 100644 --- a/assets/admin/pages/AppointmentsPage.tsx +++ b/assets/admin/pages/AppointmentsPage.tsx @@ -888,9 +888,14 @@ export default function AppointmentsPage() { (پزشک ناظر)، پس کاربر بین نوبت‌های پزشک و دستگاه‌های تحت نظرش جابه‌جا می‌شود. */} {supervisedResources.length > 0 && (
- منابعِ این پزشک + نوبت‌دهی + {/* تب نخست راهِ بازگشت است: بدون آن، برگشتن از منبع به خودِ پزشک فقط با + کلیک روی تب بالایی ممکن بود و کاربر دنبالش می‌گشت. */} ({ uuid: r.uuid, name: r.name }))} + doctors={[ + { uuid: '', name: 'نوبت‌های خود پزشک' }, + ...supervisedResources.map((r) => ({ uuid: r.uuid, name: r.name })), + ]} selected={selectedResourceUuid} onSelect={selectResource} showAll={false}