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 / utils / copyToClipboard.test.js
Size: Mime:
import copyToClipboard from './copyToClipboard';

beforeAll(() => {
  document.createRange = () => {};
  document.execCommand = () => {};
  document.getSelection = () => ({
    getRangeAt: () => {},
  });
});

test('checking if text is copied', () => {
  const spyFunc = jest.fn();
  const spyCreateRange = jest.fn(() => {
    const obj = {};
    obj.selectNodeContents = () => {};
    return obj;
  });

  Object.defineProperty(global.document, 'execCommand', { value: spyFunc });
  Object.defineProperty(global.document, 'createRange', { value: spyCreateRange });
  Object.defineProperty(window, 'getSelection', {
    value: () => ({ removeAllRanges: () => {}, addRange: () => {} }),
  });

  const parent = document.createElement('div');
  copyToClipboard('test url', parent);

  expect(spyFunc).toHaveBeenCalledWith('copy');
});