81 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			81 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
import ClipboardActionDefault from '../../src/actions/default';
 | 
						|
 | 
						|
describe('ClipboardActionDefault', () => {
 | 
						|
  before(() => {
 | 
						|
    global.input = document.createElement('input');
 | 
						|
    global.input.setAttribute('id', 'input');
 | 
						|
    global.input.setAttribute('value', 'abc');
 | 
						|
    document.body.appendChild(global.input);
 | 
						|
 | 
						|
    global.paragraph = document.createElement('p');
 | 
						|
    global.paragraph.setAttribute('id', 'paragraph');
 | 
						|
    global.paragraph.textContent = 'abc';
 | 
						|
    document.body.appendChild(global.paragraph);
 | 
						|
  });
 | 
						|
 | 
						|
  after(() => {
 | 
						|
    document.body.innerHTML = '';
 | 
						|
  });
 | 
						|
 | 
						|
  describe('#resolveOptions', () => {
 | 
						|
    it('should set base properties', () => {
 | 
						|
      const selectedText = ClipboardActionDefault({
 | 
						|
        container: document.body,
 | 
						|
        text: 'foo',
 | 
						|
      });
 | 
						|
 | 
						|
      assert.equal(selectedText, 'foo');
 | 
						|
    });
 | 
						|
  });
 | 
						|
 | 
						|
  describe('#set action', () => {
 | 
						|
    it('should throw an error since "action" is invalid', (done) => {
 | 
						|
      try {
 | 
						|
        let clip = ClipboardActionDefault({
 | 
						|
          text: 'foo',
 | 
						|
          action: 'paste',
 | 
						|
        });
 | 
						|
      } catch (e) {
 | 
						|
        assert.equal(
 | 
						|
          e.message,
 | 
						|
          'Invalid "action" value, use either "copy" or "cut"'
 | 
						|
        );
 | 
						|
        done();
 | 
						|
      }
 | 
						|
    });
 | 
						|
  });
 | 
						|
 | 
						|
  describe('#set target', () => {
 | 
						|
    it('should throw an error since "target" do not match any element', (done) => {
 | 
						|
      try {
 | 
						|
        let clip = ClipboardActionDefault({
 | 
						|
          target: document.querySelector('#foo'),
 | 
						|
        });
 | 
						|
      } catch (e) {
 | 
						|
        assert.equal(e.message, 'Invalid "target" value, use a valid Element');
 | 
						|
        done();
 | 
						|
      }
 | 
						|
    });
 | 
						|
  });
 | 
						|
 | 
						|
  describe('#selectedText', () => {
 | 
						|
    it('should select text from editable element', () => {
 | 
						|
      const selectedText = ClipboardActionDefault({
 | 
						|
        container: document.body,
 | 
						|
        target: document.querySelector('#input'),
 | 
						|
      });
 | 
						|
 | 
						|
      assert.equal(selectedText, 'abc');
 | 
						|
    });
 | 
						|
 | 
						|
    it('should select text from non-editable element', () => {
 | 
						|
      const selectedText = ClipboardActionDefault({
 | 
						|
        container: document.body,
 | 
						|
        target: document.querySelector('#paragraph'),
 | 
						|
      });
 | 
						|
 | 
						|
      assert.equal(selectedText, 'abc');
 | 
						|
    });
 | 
						|
  });
 | 
						|
});
 |