about summary refs log tree commit diff
path: root/app/javascript/mastodon/features/ui/components/__tests__/column-test.jsx
diff options
context:
space:
mode:
Diffstat (limited to 'app/javascript/mastodon/features/ui/components/__tests__/column-test.jsx')
-rw-r--r--app/javascript/mastodon/features/ui/components/__tests__/column-test.jsx24
1 files changed, 24 insertions, 0 deletions
diff --git a/app/javascript/mastodon/features/ui/components/__tests__/column-test.jsx b/app/javascript/mastodon/features/ui/components/__tests__/column-test.jsx
new file mode 100644
index 000000000..a56859be0
--- /dev/null
+++ b/app/javascript/mastodon/features/ui/components/__tests__/column-test.jsx
@@ -0,0 +1,24 @@
+import { render, fireEvent, screen } from '@testing-library/react';
+import React from 'react';
+import Column from '../column';
+
+describe('<Column />', () => {
+  describe('<ColumnHeader /> click handler', () => {
+    it('runs the scroll animation if the column contains scrollable content', () => {
+      const scrollToMock = jest.fn();
+      const { container } = render(
+        <Column heading='notifications'>
+          <div className='scrollable' />
+        </Column>,
+      );
+      container.querySelector('.scrollable').scrollTo = scrollToMock;
+      fireEvent.click(screen.getByText('notifications'));
+      expect(scrollToMock).toHaveBeenCalledWith({ behavior: 'smooth', top: 0 });
+    });
+
+    it('does not try to scroll if there is no scrollable content', () => {
+      render(<Column heading='notifications' />);
+      fireEvent.click(screen.getByText('notifications'));
+    });
+  });
+});