Skip to content

Commit

Permalink
Enabled language filters for search and added UTs
Browse files Browse the repository at this point in the history
  • Loading branch information
AbdulWahab3181 committed Feb 14, 2024
1 parent 8f3128f commit c50aba7
Show file tree
Hide file tree
Showing 2 changed files with 74 additions and 2 deletions.
10 changes: 8 additions & 2 deletions src/people/widgetViews/BountyHeader.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -390,7 +390,12 @@ const BountyHeader = ({
// Set a new timeout to wait for user to pause typing
timeoutId = setTimeout(() => {
if (ui.searchText === '') {
main.getPeopleBounties({ page: 1, resetPage: true, ...checkboxIdToSelectedMap });
main.getPeopleBounties({
page: 1,
resetPage: true,
...checkboxIdToSelectedMap,
...checkboxIdToSelectedMapLanguage
});
}
}, 1000);
};
Expand Down Expand Up @@ -449,7 +454,8 @@ const BountyHeader = ({
main.getPeopleBounties({
page: 1,
resetPage: true,
...checkboxIdToSelectedMap
...checkboxIdToSelectedMap,
...checkboxIdToSelectedMapLanguage
});
}
}}
Expand Down
66 changes: 66 additions & 0 deletions src/people/widgetViews/__tests__/BountyHeader.spec.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,72 @@ describe('BountyHeader Component', () => {
expect(await getPeopleBountiesSpy).toHaveBeenCalled();
});

it('should selected filters applied when search text is empty', async () => {
// Mock selected filters
mockProps.checkboxIdToSelectedMap = { open: true };
mockProps.checkboxIdToSelectedMapLanguage = { javascript: true };

render(<BountyHeader {...mockProps} />);

// Simulate search
fireEvent.change(screen.getByTestId('search-bar'), { target: { value: 'Test' } });

// Check if the search text is updated
expect(screen.getByTestId('search-bar')).toHaveValue('Test');

fireEvent.change(screen.getByTestId('search-bar'), { target: { value: '' } });

expect(screen.getByTestId('search-bar')).toHaveValue('');

const getPeopleBountiesSpy = jest.spyOn(mainStore, 'getPeopleBounties');

act(() => {
jest.advanceTimersByTime(2001);
});

// Expect that getPeopleBounties has been called
expect(getPeopleBountiesSpy).toHaveBeenCalledWith(
expect.objectContaining({
page: 1,
resetPage: true,
open: true,
javascript: true
})
);
});

it('should selected filters applied when search text is not empty', async () => {
const getPeopleBountiesSpy = jest.spyOn(mainStore, 'getPeopleBounties');

// Mock selected filters
mockProps.checkboxIdToSelectedMap = { open: true };
mockProps.checkboxIdToSelectedMapLanguage = { javascript: true };

render(<BountyHeader {...mockProps} />);

// Simulate search
fireEvent.change(screen.getByTestId('search-bar'), { target: { value: 'Test' } });

// Check if the search text is updated
expect(screen.getByTestId('search-bar')).toHaveValue('Test');

fireEvent.keyUp(screen.getByTestId('search-bar'), { key: 'Enter', code: 'Enter' });

act(() => {
jest.advanceTimersByTime(2001);
});

// Expect that getPeopleBounties has been called
expect(getPeopleBountiesSpy).toHaveBeenCalledWith(
expect.objectContaining({
page: 1,
resetPage: true,
open: true,
javascript: true
})
);
});

afterAll(() => {
jest.useRealTimers(); // Restore real timers after all tests are done
});
Expand Down

0 comments on commit c50aba7

Please sign in to comment.