Skip to content

Commit c2934de

Browse files
committed
added code rabbit's suggetions
1 parent 9cfc1e0 commit c2934de

File tree

2 files changed

+33
-27
lines changed

2 files changed

+33
-27
lines changed

src/screens/UserPortal/People/People.spec.tsx

Lines changed: 32 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import type { RenderResult } from '@testing-library/react';
33
import {
44
render,
55
screen,
6+
fireEvent,
67
waitFor,
78
waitForElementToBeRemoved,
89
act,
@@ -183,20 +184,6 @@ const MOCKS = [
183184
},
184185
},
185186
},
186-
{
187-
request: {
188-
query: ORGANIZATIONS_MEMBER_CONNECTION_LIST,
189-
variables: { orgId: '', firstName_contains: '' },
190-
},
191-
error: new Error('Network error'),
192-
},
193-
{
194-
request: {
195-
query: ORGANIZATION_ADMINS_LIST,
196-
variables: { id: '' },
197-
},
198-
error: new Error('GraphQL error'),
199-
},
200187
];
201188

202189
const link = new StaticMockLink(MOCKS, true);
@@ -334,9 +321,8 @@ describe('Testing People Screen [User Portal]', () => {
334321
</MockedProvider>,
335322
);
336323

337-
const loadingElement = screen.getByText('Loading...');
338-
expect(loadingElement).toBeInTheDocument();
339-
await waitForElementToBeRemoved(loadingElement);
324+
expect(screen.getByText('Loading...')).toBeInTheDocument();
325+
await wait();
340326
});
341327
});
342328

@@ -799,6 +785,8 @@ describe('People Additional Flow Tests', () => {
799785

800786
expect(screen.getByText('Charlie Test')).toBeInTheDocument();
801787
});
788+
789+
// Add test for error handling
802790
});
803791
describe('Testing People Screen Edge Cases [User Portal]', () => {
804792
const renderComponent = (mocks = MOCKS): RenderResult => {
@@ -828,9 +816,6 @@ describe('Testing People Screen Edge Cases [User Portal]', () => {
828816
};
829817
return translations[key] || key;
830818
},
831-
i18n: {
832-
changeLanguage: () => new Promise(() => {}),
833-
},
834819
}),
835820
};
836821
});
@@ -897,6 +882,30 @@ describe('Testing People Screen Edge Cases [User Portal]', () => {
897882

898883
describe('People Component Additional Coverage Tests', () => {
899884
// Mock for testing error states
885+
886+
// Test case to cover line 142: handleSearchByEnter with non-Enter key
887+
it('should not trigger search for non-Enter key press', async () => {
888+
render(
889+
<MockedProvider addTypename={false} mocks={[]}>
890+
<BrowserRouter>
891+
<Provider store={store}>
892+
<I18nextProvider i18n={i18nForTest}>
893+
<People />
894+
</I18nextProvider>
895+
</Provider>
896+
</BrowserRouter>
897+
</MockedProvider>,
898+
);
899+
900+
const searchInput = screen.getByTestId('searchInput');
901+
fireEvent.keyUp(searchInput, { key: 'A', code: 'KeyA' });
902+
903+
// Wait a bit to ensure no search is triggered
904+
await new Promise((resolve) => setTimeout(resolve, 100));
905+
// The loading state should not appear
906+
expect(screen.queryByText('Loading...')).not.toBeInTheDocument();
907+
});
908+
900909
// Test case to cover line 151: handleSearchByBtnClick with empty input
901910
it('should handle search with empty input value', async () => {
902911
render(
@@ -912,16 +921,12 @@ describe('People Component Additional Coverage Tests', () => {
912921
);
913922

914923
const searchBtn = screen.getByTestId('searchBtn');
924+
// Remove the search input from DOM to simulate edge case
915925
const searchInput = screen.getByTestId('searchInput');
926+
searchInput.remove();
916927

917-
// Simulate clearing the input value
918-
userEvent.clear(searchInput);
919928
userEvent.click(searchBtn);
920-
921-
await waitFor(() => {
922-
expect((searchInput as HTMLInputElement).value).toBe('');
923-
expect(screen.queryByText('Loading...')).not.toBeInTheDocument();
924-
});
929+
await new Promise((resolve) => setTimeout(resolve, 100));
925930
});
926931

927932
it('Sets userType to Admin if user is found in admins list', async (): Promise<void> => {

src/screens/UserPortal/People/People.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,7 @@ export default function people(): JSX.Element {
123123
}
124124
}, [data2]);
125125

126+
// Updated members effect
126127
useEffect(() => {
127128
if (data?.organizationsMemberConnection?.edges) {
128129
const membersList = data.organizationsMemberConnection.edges.map(

0 commit comments

Comments
 (0)