mirror of
https://github.com/mathuo/dockview
synced 2025-05-07 12:08:26 +00:00
test: listener utilities
This commit is contained in:
parent
1539321320
commit
a39c2938f0
@ -1,4 +1,9 @@
|
|||||||
import { Emitter, Event } from '../events';
|
import {
|
||||||
|
Emitter,
|
||||||
|
Event,
|
||||||
|
addDisposableListener,
|
||||||
|
addDisposableWindowListener,
|
||||||
|
} from '../events';
|
||||||
|
|
||||||
describe('events', () => {
|
describe('events', () => {
|
||||||
describe('emitter', () => {
|
describe('emitter', () => {
|
||||||
@ -101,4 +106,138 @@ describe('events', () => {
|
|||||||
emitter3.fire(3);
|
emitter3.fire(3);
|
||||||
expect(value).toBe(3);
|
expect(value).toBe(3);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('addDisposableWindowListener with capture options', () => {
|
||||||
|
const element = {
|
||||||
|
addEventListener: jest.fn(),
|
||||||
|
removeEventListener: jest.fn(),
|
||||||
|
};
|
||||||
|
|
||||||
|
const handler = jest.fn();
|
||||||
|
|
||||||
|
const disposable = addDisposableWindowListener(
|
||||||
|
element as any,
|
||||||
|
'mousedown',
|
||||||
|
handler,
|
||||||
|
true
|
||||||
|
);
|
||||||
|
|
||||||
|
expect(element.addEventListener).toBeCalledTimes(1);
|
||||||
|
expect(element.addEventListener).toHaveBeenCalledWith(
|
||||||
|
'mousedown',
|
||||||
|
handler,
|
||||||
|
true
|
||||||
|
);
|
||||||
|
expect(element.removeEventListener).toBeCalledTimes(0);
|
||||||
|
|
||||||
|
disposable.dispose();
|
||||||
|
|
||||||
|
expect(element.addEventListener).toBeCalledTimes(1);
|
||||||
|
expect(element.removeEventListener).toBeCalledTimes(1);
|
||||||
|
expect(element.removeEventListener).toBeCalledWith(
|
||||||
|
'mousedown',
|
||||||
|
handler,
|
||||||
|
true
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('addDisposableWindowListener without capture options', () => {
|
||||||
|
const element = {
|
||||||
|
addEventListener: jest.fn(),
|
||||||
|
removeEventListener: jest.fn(),
|
||||||
|
};
|
||||||
|
|
||||||
|
const handler = jest.fn();
|
||||||
|
|
||||||
|
const disposable = addDisposableWindowListener(
|
||||||
|
element as any,
|
||||||
|
'mousedown',
|
||||||
|
handler
|
||||||
|
);
|
||||||
|
|
||||||
|
expect(element.addEventListener).toBeCalledTimes(1);
|
||||||
|
expect(element.addEventListener).toHaveBeenCalledWith(
|
||||||
|
'mousedown',
|
||||||
|
handler,
|
||||||
|
undefined
|
||||||
|
);
|
||||||
|
expect(element.removeEventListener).toBeCalledTimes(0);
|
||||||
|
|
||||||
|
disposable.dispose();
|
||||||
|
|
||||||
|
expect(element.addEventListener).toBeCalledTimes(1);
|
||||||
|
expect(element.removeEventListener).toBeCalledTimes(1);
|
||||||
|
expect(element.removeEventListener).toBeCalledWith(
|
||||||
|
'mousedown',
|
||||||
|
handler,
|
||||||
|
undefined
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('addDisposableListener with capture options', () => {
|
||||||
|
const element = {
|
||||||
|
addEventListener: jest.fn(),
|
||||||
|
removeEventListener: jest.fn(),
|
||||||
|
};
|
||||||
|
|
||||||
|
const handler = jest.fn();
|
||||||
|
|
||||||
|
const disposable = addDisposableListener(
|
||||||
|
element as any,
|
||||||
|
'mousedown',
|
||||||
|
handler,
|
||||||
|
true
|
||||||
|
);
|
||||||
|
|
||||||
|
expect(element.addEventListener).toBeCalledTimes(1);
|
||||||
|
expect(element.addEventListener).toHaveBeenCalledWith(
|
||||||
|
'mousedown',
|
||||||
|
handler,
|
||||||
|
true
|
||||||
|
);
|
||||||
|
expect(element.removeEventListener).toBeCalledTimes(0);
|
||||||
|
|
||||||
|
disposable.dispose();
|
||||||
|
|
||||||
|
expect(element.addEventListener).toBeCalledTimes(1);
|
||||||
|
expect(element.removeEventListener).toBeCalledTimes(1);
|
||||||
|
expect(element.removeEventListener).toBeCalledWith(
|
||||||
|
'mousedown',
|
||||||
|
handler,
|
||||||
|
true
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('addDisposableListener without capture options', () => {
|
||||||
|
const element = {
|
||||||
|
addEventListener: jest.fn(),
|
||||||
|
removeEventListener: jest.fn(),
|
||||||
|
};
|
||||||
|
|
||||||
|
const handler = jest.fn();
|
||||||
|
|
||||||
|
const disposable = addDisposableListener(
|
||||||
|
element as any,
|
||||||
|
'mousedown',
|
||||||
|
handler
|
||||||
|
);
|
||||||
|
|
||||||
|
expect(element.addEventListener).toBeCalledTimes(1);
|
||||||
|
expect(element.addEventListener).toHaveBeenCalledWith(
|
||||||
|
'mousedown',
|
||||||
|
handler,
|
||||||
|
undefined
|
||||||
|
);
|
||||||
|
expect(element.removeEventListener).toBeCalledTimes(0);
|
||||||
|
|
||||||
|
disposable.dispose();
|
||||||
|
|
||||||
|
expect(element.addEventListener).toBeCalledTimes(1);
|
||||||
|
expect(element.removeEventListener).toBeCalledTimes(1);
|
||||||
|
expect(element.removeEventListener).toBeCalledWith(
|
||||||
|
'mousedown',
|
||||||
|
handler,
|
||||||
|
undefined
|
||||||
|
);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
@ -162,7 +162,7 @@ export function addDisposableWindowListener<K extends keyof WindowEventMap>(
|
|||||||
|
|
||||||
return {
|
return {
|
||||||
dispose: () => {
|
dispose: () => {
|
||||||
element.removeEventListener(type, listener);
|
element.removeEventListener(type, listener, options);
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@ -177,7 +177,7 @@ export function addDisposableListener<K extends keyof HTMLElementEventMap>(
|
|||||||
|
|
||||||
return {
|
return {
|
||||||
dispose: () => {
|
dispose: () => {
|
||||||
element.removeEventListener(type, listener);
|
element.removeEventListener(type, listener, options);
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user