Skip to main content
Glama
ExtensionInput.test.tsx2.23 kB
// SPDX-FileCopyrightText: Copyright Orangebot, Inc. and Medplum contributors // SPDX-License-Identifier: Apache-2.0 import type { Identifier } from '@medplum/fhirtypes'; import { MockClient } from '@medplum/mock'; import { MedplumProvider } from '@medplum/react-hooks'; import { act, fireEvent, render, screen } from '../test-utils/render'; import type { ExtensionInputProps } from './ExtensionInput'; import { ExtensionInput } from './ExtensionInput'; const medplum = new MockClient(); const defaultProps: ExtensionInputProps = { name: 'a', path: 'Resource.extension', onChange: undefined, outcome: undefined, propertyType: { code: 'Extension', profile: [] }, }; describe('ExtensionInput', () => { async function setup(props: ExtensionInputProps): Promise<void> { await act(async () => { render( <MedplumProvider medplum={medplum}> <ExtensionInput {...props} /> </MedplumProvider> ); }); } test('Renders', async () => { await setup({ ...defaultProps, defaultValue: { url: 'https://example.com', valueBoolean: true }, }); expect(screen.getByTestId('url')).toBeInTheDocument(); expect(screen.getByTestId('url')).toHaveValue('https://example.com'); expect(screen.getByTestId('value[x]-selector')).toBeInTheDocument(); expect(screen.getByTestId('value[x]')).toBeInTheDocument(); expect(screen.getByTestId('value[x]')).toBeChecked(); }); test('Renders undefined value', async () => { await setup({ ...defaultProps, }); expect(screen.getByTestId('url')).toBeInTheDocument(); expect(screen.getByTestId('url')).toHaveValue(''); expect(screen.getByTestId('value[x]')).toBeInTheDocument(); expect(screen.getByTestId('value[x]')).toHaveValue(''); }); test('Set value', async () => { let lastValue: Identifier | undefined = undefined; await setup({ ...defaultProps, onChange: (value) => (lastValue = value), }); await act(async () => { fireEvent.change(screen.getByTestId('url'), { target: { value: 'https://foo.com' }, }); }); expect(lastValue).toBeDefined(); expect(lastValue).toMatchObject({ url: 'https://foo.com' }); }); });

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