Skip to content

Commit

Permalink
added code rabbit's suggetions
Browse files Browse the repository at this point in the history
  • Loading branch information
Dhiren-Mhatre committed Jan 18, 2025
1 parent 9cfc1e0 commit c2934de
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 27 deletions.
59 changes: 32 additions & 27 deletions src/screens/UserPortal/People/People.spec.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import type { RenderResult } from '@testing-library/react';
import {
render,
screen,
fireEvent,
waitFor,
waitForElementToBeRemoved,
act,
Expand Down Expand Up @@ -183,20 +184,6 @@ const MOCKS = [
},
},
},
{
request: {
query: ORGANIZATIONS_MEMBER_CONNECTION_LIST,
variables: { orgId: '', firstName_contains: '' },
},
error: new Error('Network error'),
},
{
request: {
query: ORGANIZATION_ADMINS_LIST,
variables: { id: '' },
},
error: new Error('GraphQL error'),
},
];

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

const loadingElement = screen.getByText('Loading...');
expect(loadingElement).toBeInTheDocument();
await waitForElementToBeRemoved(loadingElement);
expect(screen.getByText('Loading...')).toBeInTheDocument();
await wait();
});
});

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

expect(screen.getByText('Charlie Test')).toBeInTheDocument();
});

// Add test for error handling
});
describe('Testing People Screen Edge Cases [User Portal]', () => {
const renderComponent = (mocks = MOCKS): RenderResult => {
Expand Down Expand Up @@ -828,9 +816,6 @@ describe('Testing People Screen Edge Cases [User Portal]', () => {
};
return translations[key] || key;
},
i18n: {
changeLanguage: () => new Promise(() => {}),
},
}),
};
});
Expand Down Expand Up @@ -897,6 +882,30 @@ describe('Testing People Screen Edge Cases [User Portal]', () => {

describe('People Component Additional Coverage Tests', () => {
// Mock for testing error states

// Test case to cover line 142: handleSearchByEnter with non-Enter key
it('should not trigger search for non-Enter key press', async () => {
render(
<MockedProvider addTypename={false} mocks={[]}>
<BrowserRouter>
<Provider store={store}>
<I18nextProvider i18n={i18nForTest}>
<People />
</I18nextProvider>
</Provider>
</BrowserRouter>
</MockedProvider>,
);

const searchInput = screen.getByTestId('searchInput');
fireEvent.keyUp(searchInput, { key: 'A', code: 'KeyA' });

// Wait a bit to ensure no search is triggered
await new Promise((resolve) => setTimeout(resolve, 100));
// The loading state should not appear
expect(screen.queryByText('Loading...')).not.toBeInTheDocument();
});

// Test case to cover line 151: handleSearchByBtnClick with empty input
it('should handle search with empty input value', async () => {
render(
Expand All @@ -912,16 +921,12 @@ describe('People Component Additional Coverage Tests', () => {
);

const searchBtn = screen.getByTestId('searchBtn');
// Remove the search input from DOM to simulate edge case
const searchInput = screen.getByTestId('searchInput');
searchInput.remove();

// Simulate clearing the input value
userEvent.clear(searchInput);
userEvent.click(searchBtn);

await waitFor(() => {
expect((searchInput as HTMLInputElement).value).toBe('');
expect(screen.queryByText('Loading...')).not.toBeInTheDocument();
});
await new Promise((resolve) => setTimeout(resolve, 100));
});

it('Sets userType to Admin if user is found in admins list', async (): Promise<void> => {
Expand Down
1 change: 1 addition & 0 deletions src/screens/UserPortal/People/People.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,7 @@ export default function people(): JSX.Element {
}
}, [data2]);

// Updated members effect
useEffect(() => {
if (data?.organizationsMemberConnection?.edges) {
const membersList = data.organizationsMemberConnection.edges.map(

Check warning on line 129 in src/screens/UserPortal/People/People.tsx

View check run for this annotation

Codecov / codecov/patch

src/screens/UserPortal/People/People.tsx#L129

Added line #L129 was not covered by tests
Expand Down

0 comments on commit c2934de

Please sign in to comment.