UNPKG

clipboard-mini

Version:

Super tiny copy-to-clipboard JS library

59 lines (47 loc) 1.74 kB
import 'jsdom' import ClipboardMiniSingle from './clipboard-mini-single' describe('ClipboardMiniSingle', () => { beforeEach(() => { document.body.innerHTML = ` <button class="btn" id="first-btn"> Copy </button> <button class="btn" id="second-btn"> Copy </button> <div class="container"></div> ` }) test('it copies from attribute', () => { // Mock function const restore = ClipboardMiniSingle.prototype.copyFromHardcoded ClipboardMiniSingle.prototype.copyFromHardcoded = jest.fn() // Set environment const text = "I have been copied from an attribute" const button = document.getElementById('first-btn') button.setAttribute('data-clipboard-text', text) const clipboardSingle = new ClipboardMiniSingle(button) // Test clipboardSingle.handleClick() expect(clipboardSingle.copyFromHardcoded).toHaveBeenCalled() // Restore ClipboardMiniSingle.prototype.copyFromHardcoded = restore }) test('it copies from a selector', () => { // Mock function const restore = ClipboardMiniSingle.prototype.copyFromSelector ClipboardMiniSingle.prototype.copyFromSelector = jest.fn() // Set environment const text = "I have been copied from an div" const container = document.getElementsByClassName('container') container.innerHTML = text const button = document.getElementById('second-btn') button.setAttribute('data-clipboard-target', '.container') const clipboardSingle = new ClipboardMiniSingle(button) // Test clipboardSingle.handleClick() expect(clipboardSingle.copyFromSelector).toHaveBeenCalled() // Restore ClipboardMiniSingle.prototype.copyFromSelector = restore }) })