@@ -109,6 +109,7 @@ describe('DynamicPage', () => {
109
109
} ) ;
110
110
111
111
it ( 'programmatically pin header (`alwaysShowContentHeader`)' , ( ) => {
112
+ document . body . style . margin = '0px' ;
112
113
const TestComp = ( { onPinnedStateChange } : DynamicPagePropTypes ) => {
113
114
const [ pinned , setPinned ] = useState ( false ) ;
114
115
const handlePinChange = ( pinned ) => {
@@ -117,16 +118,17 @@ describe('DynamicPage', () => {
117
118
} ;
118
119
return (
119
120
< >
120
- < Button
121
+ < button
122
+ style = { { height : '40px' } }
121
123
data-testid = "btn"
122
124
onClick = { ( ) => {
123
125
setPinned ( ( prev ) => ! prev ) ;
124
126
} }
125
127
>
126
128
toggle { `${ ! pinned } ` }
127
- </ Button >
129
+ </ button >
128
130
< DynamicPage
129
- style = { { height : '100vh' } }
131
+ style = { { height : 'calc( 100vh - 40px) ' } }
130
132
headerTitle = { < DynamicPageTitle header = "Heading" subHeader = "SubHeading" /> }
131
133
headerContent = { < DynamicPageHeader > DynamicPageHeader</ DynamicPageHeader > }
132
134
headerContentPinnable
@@ -152,6 +154,7 @@ describe('DynamicPage', () => {
152
154
cy . get ( '@onPinSpy' ) . should ( 'have.been.calledWith' , true ) ;
153
155
cy . findByText ( 'DynamicPageHeader' ) . should ( 'be.visible' ) ;
154
156
157
+ cy . wait ( 100 ) ;
155
158
cy . findByTestId ( 'op' ) . scrollTo ( 0 , 0 ) ;
156
159
cy . findByText ( 'DynamicPageHeader' ) . should ( 'be.visible' ) ;
157
160
@@ -163,6 +166,7 @@ describe('DynamicPage', () => {
163
166
cy . get ( '@onPinSpy' ) . should ( 'have.been.calledWith' , false ) ;
164
167
cy . findByText ( 'DynamicPageHeader' ) . should ( 'be.visible' ) ;
165
168
169
+ cy . wait ( 100 ) ;
166
170
cy . findByTestId ( 'op' ) . scrollTo ( 0 , 801 ) ;
167
171
cy . findByText ( 'DynamicPageHeader' ) . should ( 'not.be.visible' ) ;
168
172
@@ -171,6 +175,7 @@ describe('DynamicPage', () => {
171
175
cy . findByText ( 'DynamicPageHeader' ) . should ( 'be.visible' ) ;
172
176
173
177
cy . findByTestId ( 'btn' ) . click ( ) ;
178
+ cy . wait ( 200 ) ;
174
179
cy . findByTestId ( 'op' ) . scrollTo ( 0 , 501 ) ;
175
180
cy . findByText ( 'DynamicPageHeader' ) . should ( 'not.be.visible' ) ;
176
181
@@ -201,36 +206,54 @@ describe('DynamicPage', () => {
201
206
cy . get ( '@onPinSpy' ) . should ( 'have.callCount' , 7 ) ;
202
207
} ) ;
203
208
204
- it ( 'collapse header when partially visible' , ( ) => {
209
+ it ( 'collapse header when not visible' , ( ) => {
210
+ document . body . style . margin = '0px' ;
205
211
cy . viewport ( 1440 , 1080 ) ;
206
212
cy . mount (
207
213
< DynamicPage
208
214
style = { { height : '100vh' } }
209
215
headerTitle = { < DynamicPageTitle header = "Heading" subHeader = "SubHeading" /> }
210
216
headerContent = {
211
- < DynamicPageHeader >
212
- < div style = { { height : '400px' , width : '100%' , background : 'lightyellow' } } > DynamicPageHeader</ div >
217
+ < DynamicPageHeader style = { { height : '400px' } } >
218
+ < div style = { { width : '100%' , background : 'lightyellow' } } > DynamicPageHeader</ div >
213
219
</ DynamicPageHeader >
214
220
}
215
221
headerContentPinnable
216
222
showHideHeaderButton
217
223
data-testid = "op"
218
224
>
219
- < div style = { { height : '2000px' } } />
225
+ < div style = { { height : '2000px' , background : 'lightblue' } } >
226
+ < span > Content</ span >
227
+ </ div >
220
228
</ DynamicPage >
221
229
) ;
222
230
cy . wait ( 50 ) ;
223
231
224
232
cy . findByTestId ( 'op' ) . scrollTo ( 0 , 400 ) ;
233
+ cy . findByText ( 'Content' ) . should ( 'be.visible' ) ;
234
+ // header content height + padding
235
+ cy . findByTestId ( 'op' ) . scrollTo ( 0 , 432 ) ;
236
+ cy . findByText ( 'Content' ) . should ( 'be.visible' ) ;
237
+ cy . get ( '[data-component-name="DynamicPageAnchorBarPinBtn"]' ) . should ( 'not.exist' ) ;
238
+
225
239
cy . get ( '[data-component-name="DynamicPageAnchorBarExpandBtn"]' ) . click ( ) ;
226
240
// wait for timeout of expand click
227
- cy . wait ( 500 ) ;
228
- cy . get ( '[data-component-name="DynamicPageAnchorBarPinBtn"]' ) . should ( 'not.exist' ) ;
241
+ cy . wait ( 200 ) ;
242
+ cy . findByText ( 'DynamicPageHeader' ) . should ( 'be.visible' ) ;
243
+ // expanded header is covering the Content, not detectable by Cypress
244
+ // cy.findByText('Content').should('not.be.visible');
245
+ cy . get ( '[data-component-name="DynamicPageAnchorBarPinBtn"]' ) . should ( 'exist' ) ;
229
246
230
- cy . findByTestId ( 'op' ) . scrollTo ( 0 , 1 ) ;
247
+ // collapse when scrolling
248
+ cy . findByTestId ( 'op' ) . scrollTo ( 0 , 440 ) ;
249
+ cy . wait ( 200 ) ;
231
250
cy . get ( '[data-component-name="DynamicPageAnchorBarPinBtn"]' ) . should ( 'not.exist' ) ;
232
- cy . wait ( 50 ) ;
251
+ cy . findByText ( 'DynamicPageHeader' ) . should ( 'not.be.visible' ) ;
252
+
253
+ cy . get ( '[data-component-name="DynamicPageAnchorBarExpandBtn"]' ) . click ( ) ;
254
+ cy . wait ( 200 ) ;
233
255
cy . findByTestId ( 'op' ) . scrollTo ( 0 , 0 ) ;
256
+ cy . wait ( 200 ) ;
234
257
cy . get ( '[data-component-name="DynamicPageAnchorBarPinBtn"]' ) . should ( 'be.visible' ) ;
235
258
cy . findByText ( 'DynamicPageHeader' ) . should ( 'be.visible' ) ;
236
259
} ) ;
0 commit comments