From 7b52d8ef8e5e3c6d4f10f55a4bc2584de623c8b8 Mon Sep 17 00:00:00 2001 From: Gustav Hansen Date: Mon, 17 Oct 2022 13:57:27 +0200 Subject: [PATCH] RelationInputDataManager: Add tests for load more --- .../tests/RelationInputDataManger.test.js | 38 ++++++++++++++++--- 1 file changed, 32 insertions(+), 6 deletions(-) diff --git a/packages/core/admin/admin/src/content-manager/components/RelationInputDataManager/tests/RelationInputDataManger.test.js b/packages/core/admin/admin/src/content-manager/components/RelationInputDataManager/tests/RelationInputDataManger.test.js index 248d52f741..3991750de6 100644 --- a/packages/core/admin/admin/src/content-manager/components/RelationInputDataManager/tests/RelationInputDataManger.test.js +++ b/packages/core/admin/admin/src/content-manager/components/RelationInputDataManager/tests/RelationInputDataManger.test.js @@ -35,9 +35,16 @@ jest.mock('../../../hooks/useRelation', () => ({ title: 'Relation 2', }, ], + + pagination: { + page: 1, + pageCount: 2, + }, }, ], }, + fetchNextPage: jest.fn(), + hasNextPage: true, isFetchingNextPage: false, isLoading: false, isSuccess: true, @@ -269,16 +276,35 @@ describe('RelationInputDataManager', () => { ); }); - test('Search relations', async () => {}); + test('Do not render Load More when an entity is created', async () => { + const { queryByText } = setup(); - test('Load more', async () => { - const { container } = setup(); + expect(await queryByText('Load More')).not.toBeInTheDocument(); + }); - fireEvent.change(container.querySelector('input[name=relation]'), { - target: { value: 'search' }, + test('Load more entities', async () => { + const { relations } = useRelation(); + + useCMEditViewDataManager.mockReturnValueOnce({ + isCreatingEntry: false, + createActionAllowedFields: ['relation'], + readActionAllowedFields: ['relation'], + updateActionAllowedFields: ['relation'], + slug: 'test', + initialData: {}, + loadRelation: jest.fn(), }); - screen.logTestingPlaygroundURL(); + const { queryByText } = setup(); + const loadMoreNode = await queryByText('Load More'); + + expect(loadMoreNode).toBeInTheDocument(); + + act(() => { + fireEvent.click(loadMoreNode); + }); + + expect(relations.fetchNextPage).toBeCalledTimes(1); }); test('Open search', async () => {