@@ -73,16 +73,12 @@ describe(`LPA Overview Page (seed: ${seed})`, () => {
7373 }
7474 } )
7575
76- it ( 'The correct number of dataset cards are rendered with the correct titles in group "expected"' , ( ) => {
77- if ( params . datasets . expected && params . datasets . expected . length > 0 ) {
78- datasetGroup ( { expect } , 'expected' , params . datasets . expected , document )
79- }
76+ it . skipIf ( ! params . datasets . expected || params . datasets . expected . length === 0 ) ( 'The correct number of dataset cards are rendered with the correct titles in group "expected"' , ( ) => {
77+ datasetGroup ( { expect } , 'expected' , params . datasets . expected , document )
8078 } )
8179
82- it ( 'The correct number of dataset cards are rendered with the correct titles in group "prospective"' , ( ) => {
83- if ( params . datasets . prospective && params . datasets . prospective . length > 0 ) {
84- datasetGroup ( { expect } , 'prospective' , params . datasets . prospective , document )
85- }
80+ it . skipIf ( ! params . datasets . prospective || params . datasets . prospective . length === 0 ) ( 'The correct number of dataset cards are rendered with the correct titles in group "prospective"' , ( ) => {
81+ datasetGroup ( { expect } , 'prospective' , params . datasets . prospective , document )
8682 } )
8783
8884 const allDatasets = [
@@ -136,29 +132,38 @@ describe(`LPA Overview Page (seed: ${seed})`, () => {
136132 } )
137133 } )
138134
139- const datasetCards = document . querySelectorAll ( 'li[data-dataset]:not(:empty)' )
140- allDatasets . forEach ( ( dataset , i ) => {
135+ allDatasets . forEach ( ( dataset ) => {
141136 it ( `Renders the correct status on each dataset card for dataset='${ dataset . dataset } '` , ( ) => {
137+ const datasetCard = document . querySelector ( `li[data-dataset="${ dataset . dataset } "]` )
138+ if ( ! datasetCard ) {
139+ throw new Error ( `Dataset card for "${ dataset . dataset } " not found in rendered HTML` )
140+ }
141+
142142 if ( ! ( dataset . status in datasetStatusEnum ) ) {
143143 throw new Error ( `Unknown dataset status: ${ dataset . status } ` )
144144 }
145145
146146 const expectedStatus = datasetStatusEnum [ dataset . status ]
147147
148- const statusIndicator = datasetCards [ i ] . querySelector ( '.govuk-task-list__status' )
148+ const statusIndicator = datasetCard . querySelector ( '.govuk-task-list__status' )
149149 expect ( statusIndicator . textContent . trim ( ) ) . toContain ( expectedStatus )
150150 } )
151151
152152 it ( `Renders the correct link on each dataset card for dataset='${ dataset . dataset } '` , ( ) => {
153- const expectedLink = datasetCards [ i ] . querySelector ( '.govuk-task-list__link' ) . href
153+ const datasetCard = document . querySelector ( `li[data-dataset="${ dataset . dataset } "]` )
154+ if ( ! datasetCard ) {
155+ throw new Error ( `Dataset card for "${ dataset . dataset } " not found in rendered HTML` )
156+ }
157+
158+ const expectedLink = datasetCard . querySelector ( '.govuk-task-list__link' ) . href
154159
155160 if ( dataset . status === 'Not submitted' ) {
156161 expect ( expectedLink ) . toEqual ( `/organisations/${ params . organisation . organisation } /${ dataset . dataset } /get-started` )
157162 } else {
158163 expect ( expectedLink ) . toEqual ( `/organisations/${ params . organisation . organisation } /${ dataset . dataset } /overview` )
159164 }
160165
161- const link = datasetCards [ i ] . querySelector ( '.govuk-link' )
166+ const link = datasetCard . querySelector ( '.govuk-link' )
162167 expect ( link . href ) . toContain ( expectedLink )
163168 } )
164169 } )
0 commit comments