UNPKG

@vigosan/react-copy-to-clipboard

Version:

React library for building declarative copy to clipboard buttons

97 lines (77 loc) 2.63 kB
'use strict'; var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _enzyme = require('enzyme'); var _copyToClipboard = require('copy-to-clipboard'); var _copyToClipboard2 = _interopRequireDefault(_copyToClipboard); var _index = require('./index'); var _index2 = _interopRequireDefault(_index); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } jest.mock('copy-to-clipboard', function () { return jest.fn(); }); describe('CopyToClipboard', function () { it('renders its children', function () { var Children = function Children() { return null; }; var wrapper = (0, _enzyme.shallow)(_react2.default.createElement( _index2.default, null, function () { return _react2.default.createElement(Children, null); } )); expect(wrapper.contains(_react2.default.createElement(Children, null))).toBe(true); }); describe('render prop', function () { it('renders its children', function () { var Children = function Children() { return null; }; var wrapper = (0, _enzyme.shallow)(_react2.default.createElement(_index2.default, { render: function render() { return _react2.default.createElement(Children, null); } })); expect(wrapper.contains(_react2.default.createElement(Children, null))).toBe(true); }); }); it('copies text', function () { var wrapper = (0, _enzyme.shallow)(_react2.default.createElement(_index2.default, { render: function render(_ref) { var copy = _ref.copy; return _react2.default.createElement( 'button', { onClick: function onClick() { return copy('some text'); } }, 'Copy' ); } })); wrapper.find('button').simulate('click'); expect(_copyToClipboard2.default).toHaveBeenCalledWith('some text'); }); it('calls onCopy callback', function () { _copyToClipboard2.default.mockReturnValue(true); var onCopy = jest.fn(); var wrapper = (0, _enzyme.shallow)(_react2.default.createElement(_index2.default, { onCopy: onCopy, render: function render(_ref2) { var copy = _ref2.copy; return _react2.default.createElement( 'button', { onClick: function onClick() { return copy('some text'); } }, 'Copy' ); } })); wrapper.find('button').simulate('click'); expect(onCopy).toHaveBeenCalledWith({ success: true, error: false, text: 'some text' }); }); });