lion/packages/core/test/EventTargetShim.test.js
Thijs Louisse 01a798e59e feat(combobox): new package combobox
Co-authored-by: Joren Broekema <Joren.Broekema@ing.com>
2020-09-30 19:33:34 +02:00

41 lines
1.3 KiB
JavaScript

import { expect } from '@open-wc/testing';
import sinon from 'sinon';
import { EventTargetShim } from '../src/EventTargetShim.js';
describe('EventTargetShim', () => {
class NonElementClass extends EventTargetShim {}
it('implements "addEventListener"', async () => {
const nonElementClass = new NonElementClass();
const cb = sinon.spy();
nonElementClass.addEventListener('my-event', cb);
expect(cb).to.not.have.been.called;
nonElementClass.dispatchEvent(new Event('my-event'));
expect(cb).to.have.been.called;
});
it('implements "removeEventListener"', async () => {
const nonElementClass = new NonElementClass();
const cb = sinon.spy();
nonElementClass.addEventListener('my-event', cb);
expect(cb).to.not.have.been.called;
nonElementClass.dispatchEvent(new Event('my-event'));
expect(cb).to.have.been.calledOnce;
nonElementClass.removeEventListener('my-event', cb);
nonElementClass.dispatchEvent(new Event('my-event'));
expect(cb).to.have.been.calledOnce;
});
it('implements "dispatchEvent"', async () => {
const nonElementClass = new NonElementClass();
const cb = sinon.spy();
nonElementClass.addEventListener('my-event', cb);
expect(cb).to.not.have.been.called;
nonElementClass.dispatchEvent(new Event('my-event'));
expect(cb).to.have.been.called;
});
});