
This commit adds missing unit tests for all rx-library examples from the docs. Closes #28017 PR Close #38905
54 lines
1.6 KiB
TypeScript
54 lines
1.6 KiB
TypeScript
import { docRegionEvent } from './simple-creation.3';
|
|
|
|
describe('simple-creation.3', () => {
|
|
let triggerMousemove;
|
|
let mockConsole;
|
|
let input;
|
|
let mockDocument;
|
|
|
|
beforeEach(() => {
|
|
mockConsole = {log: jasmine.createSpy('log')};
|
|
input = {
|
|
addEventListener: jasmine
|
|
.createSpy('addEventListener')
|
|
.and.callFake((eventName, cb) => {
|
|
if (eventName === 'mousemove') {
|
|
triggerMousemove = cb;
|
|
}
|
|
}),
|
|
removeEventListener: jasmine.createSpy('removeEventListener'),
|
|
};
|
|
mockDocument = { getElementById: () => input };
|
|
});
|
|
|
|
it('should log coords when subscribing', () => {
|
|
docRegionEvent(mockConsole, mockDocument);
|
|
|
|
expect(mockConsole.log).not.toHaveBeenCalled();
|
|
|
|
triggerMousemove({ clientX: 50, clientY: 50 });
|
|
triggerMousemove({ clientX: 30, clientY: 50 });
|
|
triggerMousemove({ clientX: 50, clientY: 30 });
|
|
expect(mockConsole.log).toHaveBeenCalledTimes(3);
|
|
expect(mockConsole.log.calls.allArgs()).toEqual([
|
|
['Coords: 50 X 50'],
|
|
['Coords: 30 X 50'],
|
|
['Coords: 50 X 30']
|
|
]);
|
|
});
|
|
|
|
it('should call unsubscribe when clientX and clientY are below < 40 ', () => {
|
|
docRegionEvent(mockConsole, mockDocument);
|
|
|
|
expect(mockConsole.log).not.toHaveBeenCalled();
|
|
|
|
// Ensure that we have unsubscribed.
|
|
triggerMousemove({ clientX: 30, clientY: 30 });
|
|
expect(input.removeEventListener).toHaveBeenCalledWith('mousemove', triggerMousemove, undefined);
|
|
mockConsole.log.calls.reset();
|
|
|
|
triggerMousemove({ clientX: 50, clientY: 50 });
|
|
expect(mockConsole.log).not.toHaveBeenCalled();
|
|
});
|
|
});
|