all files / src/events/__tests__/ silenceEvent.spec.js

92.31% Statements 24/26
100% Branches 4/4
75% Functions 6/8
95.45% Lines 21/22
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34                            
import expect, {createSpy} from 'expect';
import silenceEvent from '../silenceEvent';
 
describe('silenceEvent', () => {
  it('should return false if not an event', () => {
    expect(silenceEvent(undefined)).toBe(false);
    expect(silenceEvent(null)).toBe(false);
    expect(silenceEvent(true)).toBe(false);
    expect(silenceEvent(42)).toBe(false);
    expect(silenceEvent({})).toBe(false);
    expect(silenceEvent([])).toBe(false);
    expect(silenceEvent(() => null)).toBe(false);
  });
 
  it('should return true if an event', () => {
    expect(silenceEvent({
      preventDefault: () => null,
      stopPropagation: () => null
    })).toBe(true);
  });
 
  it('should call preventDefault and stopPropagation', () => {
    const preventDefault = createSpy();
    const stopPropagation = createSpy();
 
    silenceEvent({
      preventDefault,
      stopPropagation
    });
    expect(preventDefault).toHaveBeenCalled();
    expect(stopPropagation).toNotHaveBeenCalled();
  });
});