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
    );
  });
});