mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2025-08-22 21:48:42 +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[] = [];
|
||||
t.forEach((handler: any) => {
|
||||
responses.push(handler(args));
|
||||
responses.push(handler(...args));
|
||||
});
|
||||
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