Skip to main content
Glama
ContactPointInput.test.tsx2.65 kB
// SPDX-FileCopyrightText: Copyright Orangebot, Inc. and Medplum contributors // SPDX-License-Identifier: Apache-2.0 import { stringify } from '@medplum/core'; import type { ContactPoint } from '@medplum/fhirtypes'; import { act, fireEvent, render, screen } from '../test-utils/render'; import { ContactPointInput } from './ContactPointInput'; describe('ContactPointInput', () => { test('Renders', () => { render( <ContactPointInput name="test" path="test" onChange={jest.fn()} outcome={undefined} defaultValue={{ system: 'email', value: 'abc@example.com' }} /> ); const system = screen.getByTestId('system') as HTMLInputElement; expect(system).toBeDefined(); expect(system.value).toEqual('email'); const value = screen.getByPlaceholderText('Value') as HTMLInputElement; expect(value).toBeDefined(); expect(value.value).toEqual('abc@example.com'); }); test('Change events', async () => { let lastValue: ContactPoint | undefined = undefined; render( <ContactPointInput name="test" path="test" outcome={undefined} defaultValue={{}} onChange={(value) => (lastValue = value)} /> ); await act(async () => { fireEvent.change(screen.getByTestId('use'), { target: { value: 'home' }, }); }); await act(async () => { fireEvent.change(screen.getByTestId('system'), { target: { value: 'email' }, }); }); await act(async () => { fireEvent.change(screen.getByPlaceholderText('Value'), { target: { value: 'xyz@example.com' }, }); }); expect(lastValue).toBeDefined(); expect(lastValue).toMatchObject({ use: 'home', system: 'email', value: 'xyz@example.com', }); }); test('Set blanks', async () => { let lastValue: ContactPoint | undefined = undefined; render( <ContactPointInput name="test" path="test" outcome={undefined} defaultValue={{ use: 'home', system: 'email', value: 'abc@example.com', }} onChange={(value) => (lastValue = value)} /> ); await act(async () => { fireEvent.change(screen.getByTestId('use'), { target: { value: '' } }); }); await act(async () => { fireEvent.change(screen.getByTestId('system'), { target: { value: '' } }); }); await act(async () => { fireEvent.change(screen.getByPlaceholderText('Value'), { target: { value: '' }, }); }); expect(stringify(lastValue)).toStrictEqual(''); }); });

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