summaryrefslogtreecommitdiffstats
path: root/src/components/atoms/links/sharing-link.test.tsx
blob: 7989d040d4fca954244b5dd5518d7cc21d4b4618 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
import { render, screen } from '@tests/utils';
import SharingLink from './sharing-link';

describe('SharingLink', () => {
  it('render a Diaspora sharing link', () => {
    render(<SharingLink medium="diaspora" url="#" />);
    expect(screen.getByRole('link', { name: 'Share on diaspora' })).toHaveClass(
      'link--diaspora'
    );
  });

  it('render an Email sharing link', () => {
    render(<SharingLink medium="email" url="#" />);
    expect(screen.getByRole('link', { name: 'Share on email' })).toHaveClass(
      'link--email'
    );
  });

  it('render a Facebook sharing link', () => {
    render(<SharingLink medium="facebook" url="#" />);
    expect(screen.getByRole('link', { name: 'Share on facebook' })).toHaveClass(
      'link--facebook'
    );
  });

  it('render a Journal du Hacker sharing link', () => {
    render(<SharingLink medium="journal-du-hacker" url="#" />);
    expect(
      screen.getByRole('link', { name: 'Share on journal-du-hacker' })
    ).toHaveClass('link--journal-du-hacker');
  });

  it('render a LinkedIn sharing link', () => {
    render(<SharingLink medium="linkedin" url="#" />);
    expect(screen.getByRole('link', { name: 'Share on linkedin' })).toHaveClass(
      'link--linkedin'
    );
  });

  it('render a Twitter sharing link', () => {
    render(<SharingLink medium="twitter" url="#" />);
    expect(screen.getByRole('link', { name: 'Share on twitter' })).toHaveClass(
      'link--twitter'
    );
  });
});
'Define the modal state: either opened or closed.', type: { name: 'boolean', required: true, }, }, searchPage: { control: { type: 'text', }, description: 'The search results page url.', type: { name: 'string', required: true, }, }, setIsActive: { control: { type: null, }, description: 'A callback function to update modal state.', table: { category: 'Events', }, type: { name: 'function', required: true, }, }, }, } as ComponentMeta<typeof Search>; const Template: ComponentStory<typeof Search> = ({ isActive, setIsActive: _setIsActive, ...args }) => { const [isOpen, setIsOpen] = useState<boolean>(isActive); return ( <Search isActive={isOpen} setIsActive={() => { setIsOpen(!isOpen); }} {...args} /> ); }; /** * Search Stories - Inactive */ export const Inactive = Template.bind({}); Inactive.args = { isActive: false, }; /** * Search Stories - Active */ export const Active = Template.bind({}); Active.args = { isActive: true, };