Skip to content

Commit 8ffa8b4

Browse files
Stanislavvengrov
authored andcommitted
Custom event dispatch fix (#90)
* fix error in Events.dispatch method * add tests for events dispatch
1 parent bf85768 commit 8ffa8b4

File tree

2 files changed

+26
-5
lines changed

2 files changed

+26
-5
lines changed

src/backendless.js

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4705,15 +4705,14 @@
47054705

47064706
dispatchSync: synchronized('_dispatch'),
47074707

4708-
_dispatch: function(eventname, eventArgs, Async) {
4708+
_dispatch: function(eventname, eventArgs) {
47094709
if (!eventname || !Utils.isString(eventname)) {
47104710
throw new Error('Event Name must be provided and must be not an empty STRING!');
47114711
}
47124712

4713-
eventArgs = Utils.isObject(eventArgs) ? eventArgs : {};
4713+
eventArgs = (Utils.isObject(eventArgs) && !(eventArgs instanceof Async)) ? eventArgs : {};
47144714

4715-
var responder = Utils.extractResponder(arguments),
4716-
isAsync = responder != null;
4715+
var responder = Utils.extractResponder(arguments);
47174716

47184717
if (responder) {
47194718
responder = Utils.wrapAsync(responder);
@@ -4725,7 +4724,7 @@
47254724
method : 'POST',
47264725
url : this.restUrl + '/' + eventname,
47274726
data : JSON.stringify(eventArgs),
4728-
isAsync : isAsync,
4727+
isAsync : responder != null,
47294728
asyncHandler: responder
47304729
});
47314730
}

test/e2e/specs/events.js

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import '../helpers/global'
2+
import sandbox from '../helpers/sandbox'
3+
import Backendless from '../../../src/backendless'
4+
5+
describe('Backendless.Events', function() {
6+
7+
sandbox.forSuite()
8+
9+
it('dispatch event with event arguments', function() {
10+
expect(Backendless.Events.dispatch('customEvent', {})).to.eventually.be.empty
11+
})
12+
13+
it('dispatch event without event arguments', function() {
14+
expect(Backendless.Events.dispatch('customEvent')).to.eventually.be.empty
15+
})
16+
17+
it('dispatch event without event name', function() {
18+
expect(Backendless.Events.dispatch()).to.eventually.be
19+
.rejectedWith(Error, 'Event Name must be provided and must be not an empty STRING!')
20+
})
21+
22+
})

0 commit comments

Comments
 (0)