mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2025-08-23 05:58:26 +08:00
Merge branch 'fix/events' of https://github.com/stalniy/ionic
This commit is contained in:
@ -100,7 +100,7 @@ export class Events {
|
|||||||
|
|
||||||
let responses: any[] = [];
|
let responses: any[] = [];
|
||||||
t.forEach((handler: any) => {
|
t.forEach((handler: any) => {
|
||||||
responses.push(handler(args));
|
responses.push(handler(...args));
|
||||||
});
|
});
|
||||||
return responses;
|
return responses;
|
||||||
}
|
}
|
||||||
|
39
src/util/test/events.spec.ts
Normal file
39
src/util/test/events.spec.ts
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
import { Events } from '../events';
|
||||||
|
|
||||||
|
describe('Events service', () => {
|
||||||
|
let events: Events;
|
||||||
|
let listener: jasmine.Spy;
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
events = new Events();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should call listener when event is published', () => {
|
||||||
|
const eventParams = [{}, {}, {}];
|
||||||
|
|
||||||
|
listener = jasmine.createSpy('listener');
|
||||||
|
events.subscribe('test', listener);
|
||||||
|
events.publish('test', ...eventParams);
|
||||||
|
|
||||||
|
expect(listener).toHaveBeenCalledWith(...eventParams);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should unsubscribe listener', () => {
|
||||||
|
listener = jasmine.createSpy('listener');
|
||||||
|
events.subscribe('test', listener);
|
||||||
|
events.unsubscribe('test', listener);
|
||||||
|
|
||||||
|
expect(listener).not.toHaveBeenCalled();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should return an array of responses when event is published', () => {
|
||||||
|
const [response, anotherResponse] = [{}, {}];
|
||||||
|
const listener = jasmine.createSpy('listener').and.returnValue(response);
|
||||||
|
const anotherListener = jasmine.createSpy('anotherListener').and.returnValue(anotherResponse);
|
||||||
|
|
||||||
|
events.subscribe('test', listener, anotherListener);
|
||||||
|
const responses = events.publish('test');
|
||||||
|
|
||||||
|
expect(responses).toEqual([response, anotherResponse]);
|
||||||
|
});
|
||||||
|
});
|
Reference in New Issue
Block a user