From 2de5f3a3c2a2517afc30307e0b9ed2b4eaa548b6 Mon Sep 17 00:00:00 2001 From: Nuwan Date: Thu, 27 Oct 2022 11:29:20 +0530 Subject: [PATCH] improve cypress integration test for filter musicians --- jam-ui/cypress/e2e/friends/friends-page.cy.js | 8 +++++-- jam-ui/cypress/fixtures/people_page1.json | 2 +- jam-ui/cypress/fixtures/people_page2.json | 2 +- jam-ui/src/components/page/JKPeopleFilter.js | 21 ++++++------------- 4 files changed, 14 insertions(+), 19 deletions(-) diff --git a/jam-ui/cypress/e2e/friends/friends-page.cy.js b/jam-ui/cypress/e2e/friends/friends-page.cy.js index 5be3b1c16..51bfb00a9 100644 --- a/jam-ui/cypress/e2e/friends/friends-page.cy.js +++ b/jam-ui/cypress/e2e/friends/friends-page.cy.js @@ -101,7 +101,8 @@ describe('Friends page with data', () => { beforeEach(() => { cy.stubAuthenticate({ id: '2' }); //currentUser id is 2 - people.yaml fixture cy.intercept('POST', /\S+\/filter\?offset=0/, { fixture: 'people_page1' }).as('getPeople_page1'); - cy.intercept('POST', /\S+\/filter\?offset=11/, { fixture: 'people_page2' }).as('getPeople_page2'); + cy.intercept('POST', /\S+\/filter\?offset=10/, { fixture: 'people_page2' }).as('getPeople_page2'); + cy.intercept('POST', /\S+\/filter\?offset=20/, { fixture: 'people_page3' }).as('getPeople_page3'); cy.intercept('GET', /\S+\/profile\S+/, { fixture: 'person' }); }); @@ -115,11 +116,14 @@ describe('Friends page with data', () => { cy.viewport('macbook-13'); }); - it('paginate', () => { + it.only('paginate', () => { cy.get('[data-testid=peopleListTable] > tbody tr').should('have.length', 10); cy.wait('@getPeople_page2') cy.get('[data-testid=paginate-next-page]').click(); cy.get('[data-testid=peopleListTable] > tbody tr').should('have.length', 20); + //cy.get('[data-testid=paginate-next-page]').should('not.exist'); + cy.get('[data-testid=paginate-next-page]').click(); + cy.get('[data-testid=peopleListTable] > tbody tr').should('have.length', 30); cy.get('[data-testid=paginate-next-page]').should('not.exist'); }); diff --git a/jam-ui/cypress/fixtures/people_page1.json b/jam-ui/cypress/fixtures/people_page1.json index e4acf00a1..49d1adb21 100644 --- a/jam-ui/cypress/fixtures/people_page1.json +++ b/jam-ui/cypress/fixtures/people_page1.json @@ -311,7 +311,7 @@ "genres": [] } ], - "offset": 11, + "offset": 10, "my_audio_latency": 5, "filter_json": "{\"id\":\"68dcc055-cb5d-40d6-8ed4-66772d1a1a31\",\"user_id\":\"27bd4a30-d1b8-4eea-8454-01a104d59381\",\"foreign_key1_id\":null,\"data_blob\":{\"sort_order\":\"latency\",\"instruments\":[],\"genres\":[],\"concert_gigs\":\"-1\",\"interests\":\"any\",\"studio_sessions\":\"-1\",\"ages\":[],\"skill_level\":\"-1\"}}", "description": "Current Search: Sort = Latency to Me", diff --git a/jam-ui/cypress/fixtures/people_page2.json b/jam-ui/cypress/fixtures/people_page2.json index cba2079aa..7265e4ca5 100644 --- a/jam-ui/cypress/fixtures/people_page2.json +++ b/jam-ui/cypress/fixtures/people_page2.json @@ -285,7 +285,7 @@ "genres": [] } ], - "offset": null, + "offset": 20, "my_audio_latency": 5, "filter_json": "{\"id\":\"68dcc055-cb5d-40d6-8ed4-66772d1a1a31\",\"user_id\":\"27bd4a30-d1b8-4eea-8454-01a104d59381\",\"foreign_key1_id\":null,\"data_blob\":{\"sort_order\":\"latency\",\"instruments\":[],\"genres\":[],\"concert_gigs\":\"-1\",\"interests\":\"any\",\"studio_sessions\":\"-1\",\"ages\":[],\"skill_level\":\"-1\"}}", "description": "Current Search: Sort = Latency to Me", diff --git a/jam-ui/src/components/page/JKPeopleFilter.js b/jam-ui/src/components/page/JKPeopleFilter.js index 5b5e68418..06d649ba4 100644 --- a/jam-ui/src/components/page/JKPeopleFilter.js +++ b/jam-ui/src/components/page/JKPeopleFilter.js @@ -28,7 +28,7 @@ function JKPeopleFilter() { const params = useRef({}); - const perPageLimit = 20 + const perPageLimit = 20; const { greaterThan } = useResponsive(); @@ -58,7 +58,7 @@ function JKPeopleFilter() { const { isDirty } = useFormState({ control }); - const hasOffset = () => offset !== null && offset > 0 + const hasNextPage = () => offset !== null && offset > 0 const toggle = () => setShow(!show); @@ -170,14 +170,13 @@ function JKPeopleFilter() { try { if(page.current === 0){ - console.log("===fetchPeople offset", offset, page.current); dispatch(fetchPeople({ data: params.current, offset: offset || 0, limit: perPageLimit })); page.current += 1 }else{ if(prefetched.length > 0){ dispatch(loadPrefetched()); } - if(hasOffset()){ + if(hasNextPage()){ dispatch(preFetchPeople({ data: params.current, offset, limit: perPageLimit })); page.current += 1; } @@ -196,7 +195,7 @@ function JKPeopleFilter() { page.current = 0 submitPageQuery() }else{ - if (page.current === 1 && hasOffset()) { + if (page.current === 1 && hasNextPage()) { dispatch(preFetchPeople({ data: params.current, offset, limit: perPageLimit })); page.current += 1; } @@ -210,12 +209,6 @@ function JKPeopleFilter() { fetchInstruments(); submitPageQuery() }, []); - - // useEffect(() => { - // if(offset && offset === 0){ - // submitPageQuery() - // } - // }, [offset]) useEffect(() => { if (resetFilter) { @@ -227,11 +220,9 @@ function JKPeopleFilter() { } }, [resetFilter]); - - useEffect(() => { - setShowLoadMore(prefetched.length > 0 || hasOffset()) - }, [prefetched, hasOffset()]) + setShowLoadMore(prefetched.length > 0 || hasNextPage()) + }, [prefetched, hasNextPage()]) return (