Skip to content

Commit cac3654

Browse files
committed
re-implement tests.
Signed-off-by: krishna2323 <belivethatkg@gmail.com>
1 parent 45070f5 commit cac3654

1 file changed

Lines changed: 58 additions & 0 deletions

File tree

tests/unit/BaseSelectionListTest.tsx

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -212,4 +212,62 @@ describe('BaseSelectionList', () => {
212212
expect(screen.getByTestId(`${CONST.BASE_LIST_ITEM_TEST_ID}70`)).toBeTruthy();
213213
expect(screen.getByTestId(`${CONST.BASE_LIST_ITEM_TEST_ID}70`)).toBeSelected();
214214
});
215+
216+
it('does not reset page when only selectedOptions changes', () => {
217+
const {rerender} = render(
218+
<BaseListItemRenderer
219+
sections={[{data: largeMockSections}]}
220+
canSelectMultiple={false}
221+
initialNumToRender={110}
222+
/>,
223+
);
224+
225+
// Click Show More button
226+
fireEvent.press(screen.getByText('common.showMore'));
227+
228+
rerender(
229+
<BaseListItemRenderer
230+
sections={[{data: largeMockSections.map((item, index) => ({...item, isSelected: index === 3}))}]}
231+
canSelectMultiple={false}
232+
initialNumToRender={110}
233+
/>,
234+
);
235+
236+
// Should now show items from second page
237+
expect(screen.getByTestId(`${CONST.BASE_LIST_ITEM_TEST_ID}51`)).toBeTruthy();
238+
expect(screen.getByTestId(`${CONST.BASE_LIST_ITEM_TEST_ID}62`)).toBeTruthy();
239+
240+
// Should not show, "Show more" button as we rendered whole list and search text was not changed
241+
expect(screen.queryByText('common.showMore')).toBeFalsy();
242+
});
243+
244+
it('should reset current page when text input changes', () => {
245+
const {rerender} = render(
246+
<BaseListItemRenderer
247+
sections={[{data: largeMockSections}]}
248+
canSelectMultiple={false}
249+
initialNumToRender={110}
250+
/>,
251+
);
252+
253+
// Click Show More button
254+
fireEvent.press(screen.getByText('common.showMore'));
255+
expect(screen.getByTestId(`${CONST.BASE_LIST_ITEM_TEST_ID}99`)).toBeTruthy();
256+
257+
// Rerender with changed `searchText` to trigger `setCurrentPage(1)`
258+
rerender(
259+
<BaseListItemRenderer
260+
sections={[{data: largeMockSections.map((item, index) => ({...item, isSelected: index === 3}))}]}
261+
canSelectMultiple={false}
262+
searchText="Item"
263+
initialNumToRender={110}
264+
/>,
265+
);
266+
267+
// Should not show the items from second page
268+
expect(screen.queryByText(`${CONST.BASE_LIST_ITEM_TEST_ID}52`)).toBeFalsy();
269+
270+
// Should show, "Show more" button as current page is reset
271+
expect(screen.getByText('common.showMore')).toBeOnTheScreen();
272+
});
215273
});

0 commit comments

Comments
 (0)