diff options
Diffstat (limited to 'app/javascript/mastodon/features/ui/components/__tests__/column-test.js')
-rw-r--r-- | app/javascript/mastodon/features/ui/components/__tests__/column-test.js | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/app/javascript/mastodon/features/ui/components/__tests__/column-test.js b/app/javascript/mastodon/features/ui/components/__tests__/column-test.js new file mode 100644 index 000000000..1e5e1d8dc --- /dev/null +++ b/app/javascript/mastodon/features/ui/components/__tests__/column-test.js @@ -0,0 +1,34 @@ +import React from 'react'; +import { mount } from 'enzyme'; +import Column from '../column'; +import ColumnHeader from '../column_header'; + +describe('<Column />', () => { + describe('<ColumnHeader /> click handler', () => { + const originalRaf = global.requestAnimationFrame; + + beforeEach(() => { + global.requestAnimationFrame = jest.fn(); + }); + + afterAll(() => { + global.requestAnimationFrame = originalRaf; + }); + + it('runs the scroll animation if the column contains scrollable content', () => { + const wrapper = mount( + <Column heading='notifications'> + <div className='scrollable' /> + </Column> + ); + wrapper.find(ColumnHeader).simulate('click'); + expect(global.requestAnimationFrame.mock.calls.length).toEqual(1); + }); + + it('does not try to scroll if there is no scrollable content', () => { + const wrapper = mount(<Column heading='notifications' />); + wrapper.find(ColumnHeader).simulate('click'); + expect(global.requestAnimationFrame.mock.calls.length).toEqual(0); + }); + }); +}); |