2016-02-10 12:03:02 -08:00
|
|
|
var PushController = require('../src/Controllers/PushController').PushController;
|
2016-02-02 19:51:40 -08:00
|
|
|
|
2016-02-10 12:03:02 -08:00
|
|
|
describe('PushController', () => {
|
2016-02-02 19:51:40 -08:00
|
|
|
it('can check valid master key of request', (done) => {
|
|
|
|
|
// Make mock request
|
2016-02-20 10:49:32 -05:00
|
|
|
var auth = {
|
|
|
|
|
isMaster: true
|
2016-02-02 19:51:40 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
expect(() => {
|
2016-02-20 10:49:32 -05:00
|
|
|
PushController.validateMasterKey(auth);
|
2016-02-02 19:51:40 -08:00
|
|
|
}).not.toThrow();
|
|
|
|
|
done();
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it('can check invalid master key of request', (done) => {
|
|
|
|
|
// Make mock request
|
2016-02-20 10:49:32 -05:00
|
|
|
var auth = {
|
|
|
|
|
isMaster: false
|
2016-02-02 19:51:40 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
expect(() => {
|
2016-02-20 10:49:32 -05:00
|
|
|
PushController.validateMasterKey(auth);
|
2016-02-02 19:51:40 -08:00
|
|
|
}).toThrow();
|
|
|
|
|
done();
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
it('can validate device type when no device type is set', (done) => {
|
|
|
|
|
// Make query condition
|
|
|
|
|
var where = {
|
2016-02-08 12:02:07 -08:00
|
|
|
};
|
|
|
|
|
var validPushTypes = ['ios', 'android'];
|
2016-02-02 19:51:40 -08:00
|
|
|
|
|
|
|
|
expect(function(){
|
2016-02-10 12:03:02 -08:00
|
|
|
PushController.validatePushType(where, validPushTypes);
|
2016-02-02 19:51:40 -08:00
|
|
|
}).not.toThrow();
|
|
|
|
|
done();
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it('can validate device type when single valid device type is set', (done) => {
|
|
|
|
|
// Make query condition
|
|
|
|
|
var where = {
|
|
|
|
|
'deviceType': 'ios'
|
2016-02-08 12:02:07 -08:00
|
|
|
};
|
|
|
|
|
var validPushTypes = ['ios', 'android'];
|
2016-02-02 19:51:40 -08:00
|
|
|
|
|
|
|
|
expect(function(){
|
2016-02-10 12:03:02 -08:00
|
|
|
PushController.validatePushType(where, validPushTypes);
|
2016-02-02 19:51:40 -08:00
|
|
|
}).not.toThrow();
|
|
|
|
|
done();
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it('can validate device type when multiple valid device types are set', (done) => {
|
|
|
|
|
// Make query condition
|
|
|
|
|
var where = {
|
|
|
|
|
'deviceType': {
|
|
|
|
|
'$in': ['android', 'ios']
|
|
|
|
|
}
|
2016-02-08 12:02:07 -08:00
|
|
|
};
|
|
|
|
|
var validPushTypes = ['ios', 'android'];
|
2016-02-02 19:51:40 -08:00
|
|
|
|
|
|
|
|
expect(function(){
|
2016-02-10 12:03:02 -08:00
|
|
|
PushController.validatePushType(where, validPushTypes);
|
2016-02-02 19:51:40 -08:00
|
|
|
}).not.toThrow();
|
|
|
|
|
done();
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it('can throw on validateDeviceType when single invalid device type is set', (done) => {
|
|
|
|
|
// Make query condition
|
|
|
|
|
var where = {
|
|
|
|
|
'deviceType': 'osx'
|
2016-02-08 12:02:07 -08:00
|
|
|
};
|
|
|
|
|
var validPushTypes = ['ios', 'android'];
|
2016-02-02 19:51:40 -08:00
|
|
|
|
|
|
|
|
expect(function(){
|
2016-02-10 12:03:02 -08:00
|
|
|
PushController.validatePushType(where, validPushTypes);
|
2016-02-02 19:51:40 -08:00
|
|
|
}).toThrow();
|
|
|
|
|
done();
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it('can throw on validateDeviceType when single invalid device type is set', (done) => {
|
|
|
|
|
// Make query condition
|
|
|
|
|
var where = {
|
|
|
|
|
'deviceType': 'osx'
|
2016-02-08 12:02:07 -08:00
|
|
|
};
|
|
|
|
|
var validPushTypes = ['ios', 'android'];
|
2016-02-02 19:51:40 -08:00
|
|
|
|
|
|
|
|
expect(function(){
|
2016-02-10 12:03:02 -08:00
|
|
|
PushController.validatePushType(where, validPushTypes);
|
2016-02-02 19:51:40 -08:00
|
|
|
}).toThrow();
|
|
|
|
|
done();
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it('can get expiration time in string format', (done) => {
|
|
|
|
|
// Make mock request
|
|
|
|
|
var timeStr = '2015-03-19T22:05:08Z';
|
2016-02-20 10:49:32 -05:00
|
|
|
var body = {
|
2016-02-02 19:51:40 -08:00
|
|
|
'expiration_time': timeStr
|
2016-02-20 10:49:32 -05:00
|
|
|
}
|
2016-02-02 19:51:40 -08:00
|
|
|
|
2016-02-20 10:49:32 -05:00
|
|
|
var time = PushController.getExpirationTime(body);
|
2016-02-02 19:51:40 -08:00
|
|
|
expect(time).toEqual(new Date(timeStr).valueOf());
|
|
|
|
|
done();
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it('can get expiration time in number format', (done) => {
|
|
|
|
|
// Make mock request
|
|
|
|
|
var timeNumber = 1426802708;
|
2016-02-20 10:49:32 -05:00
|
|
|
var body = {
|
|
|
|
|
'expiration_time': timeNumber
|
2016-02-02 19:51:40 -08:00
|
|
|
}
|
|
|
|
|
|
2016-02-20 10:49:32 -05:00
|
|
|
var time = PushController.getExpirationTime(body);
|
2016-02-02 19:51:40 -08:00
|
|
|
expect(time).toEqual(timeNumber * 1000);
|
|
|
|
|
done();
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it('can throw on getExpirationTime in invalid format', (done) => {
|
|
|
|
|
// Make mock request
|
2016-02-20 10:49:32 -05:00
|
|
|
var body = {
|
|
|
|
|
'expiration_time': 'abcd'
|
2016-02-02 19:51:40 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
expect(function(){
|
2016-02-20 10:49:32 -05:00
|
|
|
PushController.getExpirationTime(body);
|
2016-02-02 19:51:40 -08:00
|
|
|
}).toThrow();
|
|
|
|
|
done();
|
|
|
|
|
});
|
2016-02-20 10:49:32 -05:00
|
|
|
|
2016-02-02 19:51:40 -08:00
|
|
|
});
|