Merge pull request #908 from ParsePlatform/nlutsenko.geoPoint

Fix flaky Parse.GeoPoint test.
This commit is contained in:
Nikita Lutsenko
2016-03-07 23:37:42 -08:00
2 changed files with 33 additions and 34 deletions

View File

@@ -39,37 +39,33 @@ describe('Parse.GeoPoint testing', () => {
}); });
}); });
// it('geo line', (done) => {
// This test is disabled, since it's extremely flaky on Travis-CI. var line = [];
// Tracking issue: https://github.com/ParsePlatform/parse-server/issues/572 for (var i = 0; i < 10; ++i) {
// var obj = new TestObject();
// it('geo line', (done) => { var point = new Parse.GeoPoint(i * 4.0 - 12.0, i * 3.2 - 11.0);
// var line = []; obj.set('location', point);
// for (var i = 0; i < 10; ++i) { obj.set('construct', 'line');
// var obj = new TestObject(); obj.set('seq', i);
// var point = new Parse.GeoPoint(i * 4.0 - 12.0, i * 3.2 - 11.0); line.push(obj);
// obj.set('location', point); }
// obj.set('construct', 'line'); Parse.Object.saveAll(line, {
// obj.set('seq', i); success: function() {
// line.push(obj); var query = new Parse.Query(TestObject);
// } var point = new Parse.GeoPoint(24, 19);
// Parse.Object.saveAll(line, { query.equalTo('construct', 'line');
// success: function() { query.withinMiles('location', point, 10000);
// var query = new Parse.Query(TestObject); query.find({
// var point = new Parse.GeoPoint(24, 19); success: function(results) {
// query.equalTo('construct', 'line'); equal(results.length, 10);
// query.withinMiles('location', point, 10000); equal(results[0].get('seq'), 9);
// query.find({ equal(results[3].get('seq'), 6);
// success: function(results) { done();
// equal(results.length, 10); }
// equal(results[0].get('seq'), 9); });
// equal(results[3].get('seq'), 6); }
// done(); });
// } });
// });
// }
// });
// });
it('geo max distance large', (done) => { it('geo max distance large', (done) => {
var objects = []; var objects = [];

View File

@@ -448,9 +448,12 @@ class Schema {
geocount++; geocount++;
} }
if (geocount > 1) { if (geocount > 1) {
throw new Parse.Error( // Make sure all field validation operations run before we return.
Parse.Error.INCORRECT_TYPE, // If not - we are continuing to run logic, but already provided response from the server.
'there can only be one geopoint field in a class'); return promise.then(() => {
return Promise.reject(new Parse.Error(Parse.Error.INCORRECT_TYPE,
'there can only be one geopoint field in a class'));
});
} }
if (!expected) { if (!expected) {
continue; continue;