Skip to main content
Glama
ConditionModal.test.tsx2.44 kB
// SPDX-FileCopyrightText: Copyright Orangebot, Inc. and Medplum contributors // SPDX-License-Identifier: Apache-2.0 import { MantineProvider } from '@mantine/core'; import { render, screen } from '@testing-library/react'; import { MedplumProvider } from '@medplum/react'; import type { Encounter, Patient } from '@medplum/fhirtypes'; import { MockClient } from '@medplum/mock'; import { describe, expect, test, beforeEach, vi } from 'vitest'; import ConditionModal from './ConditionModal'; const mockPatient: Patient = { resourceType: 'Patient', id: 'patient-123', name: [{ given: ['John'], family: 'Doe' }], }; const mockEncounter: Encounter = { resourceType: 'Encounter', id: 'encounter-123', status: 'in-progress', class: { system: 'http://terminology.hl7.org/CodeSystem/v3-ActCode', code: 'AMB', }, subject: { reference: 'Patient/patient-123' }, }; describe('ConditionModal', () => { let medplum: MockClient; beforeEach(() => { medplum = new MockClient(); vi.clearAllMocks(); }); const setup = (props: Partial<Parameters<typeof ConditionModal>[0]> = {}): ReturnType<typeof render> => { return render( <MedplumProvider medplum={medplum}> <MantineProvider> <ConditionModal patient={mockPatient} encounter={mockEncounter} onSubmit={vi.fn()} {...props} /> </MantineProvider> </MedplumProvider> ); }; test('renders form fields', () => { setup(); expect(screen.getByText('ICD-10 Code')).toBeInTheDocument(); expect(screen.getByText('Status')).toBeInTheDocument(); expect(screen.getByRole('button', { name: 'Save' })).toBeInTheDocument(); }); test('renders required field indicators', () => { setup(); const requiredMarkers = screen.getAllByText('*'); expect(requiredMarkers.length).toBeGreaterThan(0); }); test('renders ICD-10 code input', () => { setup(); expect(screen.getByText('ICD-10 Code')).toBeInTheDocument(); }); test('renders status input', () => { setup(); expect(screen.getByText('Status')).toBeInTheDocument(); }); test('renders save button', () => { setup(); const saveButton = screen.getByRole('button', { name: 'Save' }); expect(saveButton).toBeInTheDocument(); }); test('form is wrapped in Form component', () => { const { container } = setup(); const form = container.querySelector('form'); expect(form).toBeInTheDocument(); }); });

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/medplum/medplum'

If you have feedback or need assistance with the MCP directory API, please join our Discord server