function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }

function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

/*
Copyright (c) 2018 Uber Technologies, Inc.

This source code is licensed under the MIT license found in the
LICENSE file in the root directory of this source tree.
*/
import React from 'react';
import { mount } from 'enzyme';
import { Tag, StyledAction } from '../index.js';
describe('Stateless tag', function () {
  var wrapper,
      events = {},
      children;
  var allProps = {},
      mockFn;
  beforeEach(function () {
    mockFn = jest.fn();
    events = {
      onActionClick: mockFn
    };
    allProps = _objectSpread({}, events);
    children = 'Some tag';
  });
  afterEach(function () {
    jest.restoreAllMocks();
    wrapper && wrapper.unmount();
  });
  test('should render component', function () {
    wrapper = mount(React.createElement(Tag, allProps, children));
    expect(wrapper).toMatchSnapshot('Component has correct render');
  });
  describe('On action', function () {
    beforeEach(function () {
      allProps.onActionClick = jest.fn();
      wrapper = mount(React.createElement(Tag, allProps, children));
    });
    test('should call callback if action button is clicked', function () {
      var actionIcon = wrapper.find(StyledAction);
      actionIcon.first().simulate('click');
      expect(allProps.onActionClick).toHaveBeenCalledWith(allProps.onActionClick.mock.calls[0][0], children);
    });
  });
});