* Start DB runner from tests * Connect GridstoreAdapter only when needed * removes unused package * better test errors reporting * Adds support for __op.Delete * Better test error reporting * Makes sure all tests can run without crashing * Use xdescribe to skip test suite * Removes unused dependencies * Let volatiles classes be created with PG on start * Do not fail if class dont exist * adds index.spec.js to the pg suite * Use a new config each test to prevent side effects * Enable EmailVerificationToken specs with pg * Makes sure failure output is not cut * Reduces number of ignored tests in ParseObject.spec * Inspect reconfiguration errors * Mark GlobalConfig is incompatible with PG - Problem is with nested updates (param.prop = value) * PG: Nested JSON queries and updates - Adds support for nested json and . operator queries - Adds debug support for PG adapter - Adds loglevel support in helper * Enable working specs in ParseUser * Sets default logLevel in tests to undefined * Adds File type support, retores purchaseValidation specs * Adds support for updating jsonb objects - Restores PushController tests * Proper implementation of deleteByQuery and ORs - Adds ParseInstallation spec to the test suite * xit only failing tests * Nit on ParseAPI spec * add sorting operator * properly bound order keys * reverts describe_only_db behavior * Enables passing tests * Adds basic support for relations, upsertOneObject aliased to createObject * progress on queries options * Fix ACL update related problems * Creates relation tables on class creation * Adds Relation tests * remove flaky tests * use promises instead of CB * disable flaky test * nits * Fixes on schema spec - Next thing is to implemenet geopoint and files correctly * fix failues * Basic GeoPoint support * Adds support for $nearSphere/$maxDistance geopoint queries * enable passing tests * drop tables afterEach for PG, clean up relation tables too * Better initialization/dropTables
93 lines
2.0 KiB
JavaScript
93 lines
2.0 KiB
JavaScript
var PushRouter = require('../src/Routers/PushRouter').PushRouter;
|
|
var request = require('request');
|
|
|
|
describe('PushRouter', () => {
|
|
it('can get query condition when channels is set', (done) => {
|
|
// Make mock request
|
|
var request = {
|
|
body: {
|
|
channels: ['Giants', 'Mets']
|
|
}
|
|
}
|
|
|
|
var where = PushRouter.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 = PushRouter.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() {
|
|
PushRouter.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() {
|
|
PushRouter.getQueryCondition(request);
|
|
}).toThrow();
|
|
done();
|
|
});
|
|
|
|
it('sends a push through REST', (done) => {
|
|
request.post({
|
|
url: Parse.serverURL+"/push",
|
|
json: true,
|
|
body: {
|
|
'channels': {
|
|
'$in': ['Giants', 'Mets']
|
|
}
|
|
},
|
|
headers: {
|
|
'X-Parse-Application-Id': Parse.applicationId,
|
|
'X-Parse-Master-Key': Parse.masterKey
|
|
}
|
|
}, function(err, res, body){
|
|
expect(res.headers['x-parse-push-status-id']).not.toBe(undefined);
|
|
expect(res.headers['x-parse-push-status-id'].length).toBe(10);
|
|
expect(res.headers[''])
|
|
expect(body.result).toBe(true);
|
|
done();
|
|
});
|
|
});
|
|
});
|