41 lines
1.3 KiB
JavaScript
41 lines
1.3 KiB
JavaScript
import { expect } from '@open-wc/testing';
|
|
import sinon from 'sinon';
|
|
import { EventTargetShim } from '@lion/ui/core.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;
|
|
});
|
|
});
|