import { describe, expect, it, jest } from '@jest/globals'; import { render, screen as rtlScreen } from '@testing-library/react'; import { SocialLink } from './social-link'; /** * Next.js mock images to use next/image component. So for now, I need to mock * the svg files manually. */ jest.mock('@assets/images/social-media/github.svg', () => 'svg-file'); jest.mock('@assets/images/social-media/gitlab.svg', () => 'svg-file'); jest.mock('@assets/images/social-media/linkedin.svg', () => 'svg-file'); jest.mock('@assets/images/social-media/twitter.svg', () => 'svg-file'); describe('SocialLink', () => { it('render a Github social link', () => { const label = 'sed ea impedit'; const target = '/voluptas'; render(); expect(rtlScreen.getByRole('link', { name: label })).toHaveAttribute( 'href', target ); }); it('render a Gitlab social link', () => { const label = 'rerum velit asperiores'; const target = '/enim'; render(); expect(rtlScreen.getByRole('link', { name: label })).toHaveAttribute( 'href', target ); }); it('render a LinkedIn social link', () => { const label = 'in dolores sed'; const target = '/ut'; render(); expect(rtlScreen.getByRole('link', { name: label })).toHaveAttribute( 'href', target ); }); it('render a Twitter social link', () => { const label = 'voluptatibus temporibus expedita'; const target = '/magni'; render(); expect(rtlScreen.getByRole('link', { name: label })).toHaveAttribute( 'href', target ); }); });