Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
@doodle/components / src / components / controls / LanguageMenu / LanguageMenu.spec.js
Size: Mime:
import React from 'react';
import { shallow } from 'enzyme';

import LanguageMenu from './LanguageMenu';
import LanguageIcon from '../../visuals/Icon/svg/ic_languages.svg';

describe('Test Language Menu', () => {
  it('should render all entries from items list', () => {
    const entries = [
      {
        label: 'Test',
        icon: LanguageIcon,
      },
      {
        label: 'Test1',
        icon: LanguageIcon,
      },
    ];
    const component = shallow(<LanguageMenu items={entries}>child</LanguageMenu>);
    expect(component.find('.LanguageMenu-itemWrapper')).toHaveLength(entries.length);
  });

  it('should add "span" tag to the menu wrapper when item prop does not contains link', () => {
    const entries = [
      {
        label: 'Test',
        icon: LanguageIcon,
      },
    ];
    const component = shallow(<LanguageMenu items={entries}>child</LanguageMenu>);
    expect(component.find('.LanguageMenu-item').prop('tag')).toEqual('span');
  });

  it('should add "nav" tag to the menu wrapper when item prop contains link', () => {
    const entries = [
      {
        label: 'Test',
        to: 'https://doodle.com',
      },
    ];
    const component = shallow(<LanguageMenu items={entries}>child</LanguageMenu>);
    expect(component.find('.LanguageMenu-item').prop('tag')).toEqual('a');
  });

  it('matches the snapshot', () => {
    const entries = [
      {
        label: 'Test',
        icon: LanguageIcon,
      },
    ];
    const component = shallow(<LanguageMenu items={entries}>child</LanguageMenu>);
    expect(component).toMatchSnapshot();
  });
});