59 lines
1.7 KiB
JavaScript
59 lines
1.7 KiB
JavaScript
var APNS = require('../src/APNS');
|
|
|
|
describe('APNS', () => {
|
|
it('can generate APNS notification', (done) => {
|
|
//Mock request data
|
|
var data = {
|
|
'alert': 'alert',
|
|
'badge': 100,
|
|
'sound': 'test',
|
|
'content-available': 1,
|
|
'category': 'INVITE_CATEGORY',
|
|
'key': 'value',
|
|
'keyAgain': 'valueAgain'
|
|
};
|
|
var expirationTime = 1454571491354
|
|
|
|
var notification = APNS.generateNotification(data, expirationTime);
|
|
|
|
expect(notification.alert).toEqual(data.alert);
|
|
expect(notification.badge).toEqual(data.badge);
|
|
expect(notification.sound).toEqual(data.sound);
|
|
expect(notification.contentAvailable).toEqual(1);
|
|
expect(notification.category).toEqual(data.category);
|
|
expect(notification.payload).toEqual({
|
|
'key': 'value',
|
|
'keyAgain': 'valueAgain'
|
|
});
|
|
expect(notification.expiry).toEqual(expirationTime);
|
|
done();
|
|
});
|
|
|
|
it('can send APNS notification', (done) => {
|
|
var apns = new APNS();
|
|
var sender = {
|
|
pushNotification: jasmine.createSpy('send')
|
|
};
|
|
apns.sender = sender;
|
|
// Mock data
|
|
var expirationTime = 1454571491354
|
|
var data = {
|
|
'expiration_time': expirationTime,
|
|
'data': {
|
|
'alert': 'alert'
|
|
}
|
|
}
|
|
// Mock registrationTokens
|
|
var deviceTokens = ['token'];
|
|
|
|
var promise = apns.send(data, deviceTokens);
|
|
expect(sender.pushNotification).toHaveBeenCalled();
|
|
var args = sender.pushNotification.calls.first().args;
|
|
var notification = args[0];
|
|
expect(notification.alert).toEqual(data.data.alert);
|
|
expect(notification.expiry).toEqual(data['expiration_time']);
|
|
expect(args[1]).toEqual(deviceTokens);
|
|
done();
|
|
});
|
|
});
|