* Adds failing test for #4194 * Use the rest module instad of the Parse._request - Some users have an invalid serverUrl passed in the options * removes console.logs, fixes tests that leveraged Parse._request
This commit is contained in:
@@ -503,6 +503,62 @@ describe('PushController', () => {
|
||||
.then(done).catch(done.fail);
|
||||
});
|
||||
|
||||
it('properly creates _PushStatus without serverURL', (done) => {
|
||||
const pushStatusAfterSave = {
|
||||
handler: function() {}
|
||||
};
|
||||
Parse.Cloud.afterSave('_PushStatus', pushStatusAfterSave.handler);
|
||||
const installation = new Parse.Object("_Installation");
|
||||
installation.set("installationId", "installation");
|
||||
installation.set("deviceToken","device_token")
|
||||
installation.set("badge", 0);
|
||||
installation.set("originalBadge", 0);
|
||||
installation.set("deviceType", "ios");
|
||||
|
||||
var payload = {data: {
|
||||
alert: "Hello World!",
|
||||
badge: 1,
|
||||
}}
|
||||
|
||||
var pushAdapter = {
|
||||
send: function(body, installations) {
|
||||
return successfulIOS(body, installations);
|
||||
},
|
||||
getValidPushTypes: function() {
|
||||
return ["ios"];
|
||||
}
|
||||
}
|
||||
|
||||
var config = new Config(Parse.applicationId);
|
||||
var auth = {
|
||||
isMaster: true
|
||||
}
|
||||
var pushController = new PushController();
|
||||
return installation.save().then(() => {
|
||||
return reconfigureServer({
|
||||
serverURL: 'http://localhost:8378/', // server with borked URL
|
||||
push: { adapter: pushAdapter }
|
||||
})
|
||||
})
|
||||
.then(() => {
|
||||
return pushController.sendPush(payload, {}, config, auth);
|
||||
}).then(() => {
|
||||
// it is enqueued so it can take time
|
||||
return new Promise((resolve) => {
|
||||
setTimeout(() => {
|
||||
resolve();
|
||||
}, 1000);
|
||||
});
|
||||
}).then(() => {
|
||||
Parse.serverURL = 'http://localhost:8378/1'; // GOOD url
|
||||
const query = new Parse.Query('_PushStatus');
|
||||
return query.find({useMasterKey: true});
|
||||
}).then((results) => {
|
||||
expect(results.length).toBe(1);
|
||||
})
|
||||
.then(done).catch(done.fail);
|
||||
});
|
||||
|
||||
it('should properly report failures in _PushStatus', (done) => {
|
||||
var pushAdapter = {
|
||||
send: function(body, installations) {
|
||||
|
||||
@@ -2,6 +2,7 @@ var PushWorker = require('../src').PushWorker;
|
||||
var PushUtils = require('../src/Push/utils');
|
||||
var Config = require('../src/Config');
|
||||
var { pushStatusHandler } = require('../src/StatusHandler');
|
||||
var rest = require('../src/rest');
|
||||
|
||||
describe('PushWorker', () => {
|
||||
it('should run with small batch', (done) => {
|
||||
@@ -245,7 +246,7 @@ describe('PushWorker', () => {
|
||||
it('tracks push status per UTC offsets', (done) => {
|
||||
const config = new Config('test');
|
||||
const handler = pushStatusHandler(config);
|
||||
const spy = spyOn(Parse, "_request").and.callThrough();
|
||||
const spy = spyOn(rest, "update").and.callThrough();
|
||||
const UTCOffset = 1;
|
||||
handler.setInitial().then(() => {
|
||||
return handler.trackSent([
|
||||
@@ -267,9 +268,8 @@ describe('PushWorker', () => {
|
||||
}).then(() => {
|
||||
expect(spy).toHaveBeenCalled();
|
||||
const lastCall = spy.calls.mostRecent();
|
||||
expect(lastCall.args[0]).toBe('PUT');
|
||||
expect(lastCall.args[1]).toBe(`classes/_PushStatus/${handler.objectId}`);
|
||||
expect(lastCall.args[2]).toEqual({
|
||||
expect(lastCall.args[2]).toBe(`_PushStatus`);
|
||||
expect(lastCall.args[4]).toEqual({
|
||||
numSent: { __op: 'Increment', amount: 1 },
|
||||
numFailed: { __op: 'Increment', amount: 1 },
|
||||
'sentPerType.ios': { __op: 'Increment', amount: 1 },
|
||||
@@ -322,35 +322,32 @@ describe('PushWorker', () => {
|
||||
it('tracks push status per UTC offsets with negative offsets', (done) => {
|
||||
const config = new Config('test');
|
||||
const handler = pushStatusHandler(config);
|
||||
spyOn(config.database, "create").and.callFake(() => {
|
||||
return Promise.resolve();
|
||||
});
|
||||
const spy = spyOn(Parse, "_request").and.callFake(() => {
|
||||
return Promise.resolve();
|
||||
});
|
||||
const spy = spyOn(rest, "update").and.callThrough();
|
||||
const UTCOffset = -6;
|
||||
handler.trackSent([
|
||||
{
|
||||
transmitted: false,
|
||||
device: {
|
||||
deviceToken: 1,
|
||||
deviceType: 'ios',
|
||||
handler.setInitial().then(() => {
|
||||
return handler.trackSent([
|
||||
{
|
||||
transmitted: false,
|
||||
device: {
|
||||
deviceToken: 1,
|
||||
deviceType: 'ios',
|
||||
},
|
||||
response: { error: 'Unregistered' }
|
||||
},
|
||||
response: { error: 'Unregistered' }
|
||||
},
|
||||
{
|
||||
transmitted: true,
|
||||
device: {
|
||||
deviceToken: 1,
|
||||
deviceType: 'ios',
|
||||
{
|
||||
transmitted: true,
|
||||
device: {
|
||||
deviceToken: 1,
|
||||
deviceType: 'ios',
|
||||
},
|
||||
response: { error: 'Unregistered' }
|
||||
},
|
||||
response: { error: 'Unregistered' }
|
||||
},
|
||||
], UTCOffset).then(() => {
|
||||
], UTCOffset);
|
||||
}).then(() => {
|
||||
expect(spy).toHaveBeenCalled();
|
||||
const lastCall = spy.calls.mostRecent();
|
||||
expect(lastCall.args[1]).toBe(`classes/_PushStatus/${handler.objectId}`);
|
||||
expect(lastCall.args[2]).toEqual({
|
||||
expect(lastCall.args[2]).toBe('_PushStatus');
|
||||
expect(lastCall.args[4]).toEqual({
|
||||
numSent: { __op: 'Increment', amount: 1 },
|
||||
numFailed: { __op: 'Increment', amount: 1 },
|
||||
'sentPerType.ios': { __op: 'Increment', amount: 1 },
|
||||
|
||||
Reference in New Issue
Block a user