212 lines
4.6 KiB
JavaScript
212 lines
4.6 KiB
JavaScript
var PushController = require('../src/Controllers/PushController').PushController;
|
|
|
|
describe('PushController', () => {
|
|
it('can check valid master key of request', (done) => {
|
|
// Make mock request
|
|
var request = {
|
|
info: {
|
|
masterKey: 'masterKey'
|
|
},
|
|
config: {
|
|
masterKey: 'masterKey'
|
|
}
|
|
}
|
|
|
|
expect(() => {
|
|
PushController.validateMasterKey(request);
|
|
}).not.toThrow();
|
|
done();
|
|
});
|
|
|
|
it('can check invalid master key of request', (done) => {
|
|
// Make mock request
|
|
var request = {
|
|
info: {
|
|
masterKey: 'masterKey'
|
|
},
|
|
config: {
|
|
masterKey: 'masterKeyAgain'
|
|
}
|
|
}
|
|
|
|
expect(() => {
|
|
PushController.validateMasterKey(request);
|
|
}).toThrow();
|
|
done();
|
|
});
|
|
|
|
it('can get query condition when channels is set', (done) => {
|
|
// Make mock request
|
|
var request = {
|
|
body: {
|
|
channels: ['Giants', 'Mets']
|
|
}
|
|
}
|
|
|
|
var where = PushController.getQueryCondition(request);
|
|
expect(where).toEqual({
|
|
'channels': {
|
|
'$in': ['Giants', 'Mets']
|
|
}
|
|
});
|
|
done();
|
|
});
|
|
|
|
it('can get query condition when where is set', (done) => {
|
|
// Make mock request
|
|
var request = {
|
|
body: {
|
|
'where': {
|
|
'injuryReports': true
|
|
}
|
|
}
|
|
}
|
|
|
|
var where = PushController.getQueryCondition(request);
|
|
expect(where).toEqual({
|
|
'injuryReports': true
|
|
});
|
|
done();
|
|
});
|
|
|
|
it('can get query condition when nothing is set', (done) => {
|
|
// Make mock request
|
|
var request = {
|
|
body: {
|
|
}
|
|
}
|
|
|
|
expect(function() {
|
|
PushController.getQueryCondition(request);
|
|
}).toThrow();
|
|
done();
|
|
});
|
|
|
|
it('can throw on getQueryCondition when channels and where are set', (done) => {
|
|
// Make mock request
|
|
var request = {
|
|
body: {
|
|
'channels': {
|
|
'$in': ['Giants', 'Mets']
|
|
},
|
|
'where': {
|
|
'injuryReports': true
|
|
}
|
|
}
|
|
}
|
|
|
|
expect(function() {
|
|
PushController.getQueryCondition(request);
|
|
}).toThrow();
|
|
done();
|
|
});
|
|
|
|
it('can validate device type when no device type is set', (done) => {
|
|
// Make query condition
|
|
var where = {
|
|
};
|
|
var validPushTypes = ['ios', 'android'];
|
|
|
|
expect(function(){
|
|
PushController.validatePushType(where, validPushTypes);
|
|
}).not.toThrow();
|
|
done();
|
|
});
|
|
|
|
it('can validate device type when single valid device type is set', (done) => {
|
|
// Make query condition
|
|
var where = {
|
|
'deviceType': 'ios'
|
|
};
|
|
var validPushTypes = ['ios', 'android'];
|
|
|
|
expect(function(){
|
|
PushController.validatePushType(where, validPushTypes);
|
|
}).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']
|
|
}
|
|
};
|
|
var validPushTypes = ['ios', 'android'];
|
|
|
|
expect(function(){
|
|
PushController.validatePushType(where, validPushTypes);
|
|
}).not.toThrow();
|
|
done();
|
|
});
|
|
|
|
it('can throw on validateDeviceType when single invalid device type is set', (done) => {
|
|
// Make query condition
|
|
var where = {
|
|
'deviceType': 'osx'
|
|
};
|
|
var validPushTypes = ['ios', 'android'];
|
|
|
|
expect(function(){
|
|
PushController.validatePushType(where, validPushTypes);
|
|
}).toThrow();
|
|
done();
|
|
});
|
|
|
|
it('can throw on validateDeviceType when single invalid device type is set', (done) => {
|
|
// Make query condition
|
|
var where = {
|
|
'deviceType': 'osx'
|
|
};
|
|
var validPushTypes = ['ios', 'android'];
|
|
|
|
expect(function(){
|
|
PushController.validatePushType(where, validPushTypes);
|
|
}).toThrow();
|
|
done();
|
|
});
|
|
|
|
it('can get expiration time in string format', (done) => {
|
|
// Make mock request
|
|
var timeStr = '2015-03-19T22:05:08Z';
|
|
var request = {
|
|
body: {
|
|
'expiration_time': timeStr
|
|
}
|
|
}
|
|
|
|
var time = PushController.getExpirationTime(request);
|
|
expect(time).toEqual(new Date(timeStr).valueOf());
|
|
done();
|
|
});
|
|
|
|
it('can get expiration time in number format', (done) => {
|
|
// Make mock request
|
|
var timeNumber = 1426802708;
|
|
var request = {
|
|
body: {
|
|
'expiration_time': timeNumber
|
|
}
|
|
}
|
|
|
|
var time = PushController.getExpirationTime(request);
|
|
expect(time).toEqual(timeNumber * 1000);
|
|
done();
|
|
});
|
|
|
|
it('can throw on getExpirationTime in invalid format', (done) => {
|
|
// Make mock request
|
|
var request = {
|
|
body: {
|
|
'expiration_time': 'abcd'
|
|
}
|
|
}
|
|
|
|
expect(function(){
|
|
PushController.getExpirationTime(request);
|
|
}).toThrow();
|
|
done();
|
|
});
|
|
});
|