environments/review-chat-searc-svki5m/deployments/1697
Chewbacca 2 years ago committed by Alex Gleason
parent 6bae81a758
commit 15594df644
No known key found for this signature in database
GPG Key ID: 7211D1F99744FBB7

@ -1,5 +1,6 @@
import userEvent from '@testing-library/user-event';
import React from 'react';
import { VirtuosoMockContext } from 'react-virtuoso';
import { __stub } from 'soapbox/api';
import { ChatProvider } from 'soapbox/contexts/chat-context';
@ -8,36 +9,24 @@ import { render, screen, waitFor } from '../../../../../jest/test-helpers';
import ChatSearch from '../chat-search';
const renderComponent = () => render(
<ChatProvider>
<ChatSearch />
</ChatProvider>,
<VirtuosoMockContext.Provider value={{ viewportHeight: 300, itemHeight: 100 }}>
<ChatProvider>
<ChatSearch />
</ChatProvider>,
</VirtuosoMockContext.Provider>,
);
describe('<ChatSearch />', () => {
it('renders correctly', () => {
beforeEach(async() => {
renderComponent();
expect(screen.getByTestId('pane-header')).toHaveTextContent('Messages');
});
describe('when the pane is closed', () => {
it('does not render the search input', () => {
renderComponent();
expect(screen.queryAllByTestId('search')).toHaveLength(0);
});
it('renders the search input', () => {
expect(screen.getByTestId('search')).toBeInTheDocument();
});
describe('when the pane is open', () => {
beforeEach(async() => {
renderComponent();
await userEvent.click(screen.getByTestId('icon-button'));
});
it('renders the search input', () => {
expect(screen.getByTestId('search')).toBeInTheDocument();
});
describe('when searching', () => {
describe('when searching', () => {
describe('with results', () => {
beforeEach(() => {
__stub((mock) => {
mock.onGet('/api/v1/accounts/search').reply(200, [{
@ -51,8 +40,6 @@ describe('<ChatSearch />', () => {
});
it('renders accounts', async() => {
renderComponent();
const user = userEvent.setup();
await user.type(screen.getByTestId('search'), 'ste');
@ -61,5 +48,22 @@ describe('<ChatSearch />', () => {
});
});
});
describe('without results', () => {
beforeEach(() => {
__stub((mock) => {
mock.onGet('/api/v1/accounts/search').reply(200, []);
});
});
it('renders accounts', async() => {
const user = userEvent.setup();
await user.type(screen.getByTestId('search'), 'ste');
await waitFor(() => {
expect(screen.getByTestId('no-results')).toBeInTheDocument();
});
});
});
});
});

@ -13,7 +13,7 @@ const EmptyResultsBlankslate = () => {
return (
<Stack justifyContent='center' alignItems='center' space={2} className='h-full w-2/3 mx-auto'>
<Text weight='bold' size='lg' align='center'>
<Text weight='bold' size='lg' align='center' data-testid='no-results'>
{intl.formatMessage(messages.title)}
</Text>

Loading…
Cancel
Save