fix(DatabaseController): Do not match any entry when searching for null in relation field (#3924)
This commit is contained in:
committed by
Florent Vilmart
parent
4509d25471
commit
a0d1a3517f
@@ -23,6 +23,60 @@ describe('Parse.Query testing', () => {
|
||||
});
|
||||
});
|
||||
|
||||
it("searching for null", function(done) {
|
||||
var baz = new TestObject({ foo: null });
|
||||
var qux = new TestObject({ foo: 'qux' });
|
||||
var qux2 = new TestObject({ });
|
||||
Parse.Object.saveAll([baz, qux, qux2], function() {
|
||||
var query = new Parse.Query(TestObject);
|
||||
query.equalTo('foo', null);
|
||||
query.find({
|
||||
success: function(results) {
|
||||
equal(results.length, 2);
|
||||
qux.set('foo', null);
|
||||
qux.save({
|
||||
success: function () {
|
||||
query.find({
|
||||
success: function (results) {
|
||||
equal(results.length, 3);
|
||||
done();
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
it("searching for not null", function(done) {
|
||||
var baz = new TestObject({ foo: null });
|
||||
var qux = new TestObject({ foo: 'qux' });
|
||||
var qux2 = new TestObject({ });
|
||||
Parse.Object.saveAll([baz, qux, qux2], function() {
|
||||
var query = new Parse.Query(TestObject);
|
||||
query.notEqualTo('foo', null);
|
||||
query.find({
|
||||
success: function(results) {
|
||||
equal(results.length, 1);
|
||||
qux.set('foo', null);
|
||||
qux.save({
|
||||
success: function () {
|
||||
query.find({
|
||||
success: function (results) {
|
||||
equal(results.length, 0);
|
||||
done();
|
||||
}
|
||||
});
|
||||
},
|
||||
error: function (error) { console.log(error); }
|
||||
});
|
||||
},
|
||||
error: function (error) { console.log(error); }
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
it("notEqualTo with Relation is working", function(done) {
|
||||
var user = new Parse.User();
|
||||
user.setPassword("asdf");
|
||||
@@ -52,6 +106,7 @@ describe('Parse.Query testing', () => {
|
||||
|
||||
var relDislike1 = cake1.relation("hater");
|
||||
relDislike1.add(user2);
|
||||
|
||||
return cake1.save();
|
||||
}).then(function(){
|
||||
var rellike2 = cake2.relation("liker");
|
||||
@@ -60,6 +115,9 @@ describe('Parse.Query testing', () => {
|
||||
var relDislike2 = cake2.relation("hater");
|
||||
relDislike2.add(user2);
|
||||
|
||||
var relSomething = cake2.relation("something");
|
||||
relSomething.add(user);
|
||||
|
||||
return cake2.save();
|
||||
}).then(function(){
|
||||
var rellike3 = cake3.relation("liker");
|
||||
@@ -143,6 +201,21 @@ describe('Parse.Query testing', () => {
|
||||
return query.find().then(function(results){
|
||||
equal(results.length, 0);
|
||||
});
|
||||
}).then(function(){
|
||||
var query = new Parse.Query(Cake);
|
||||
query.equalTo("hater", null);
|
||||
query.equalTo("liker", null);
|
||||
// user doesn't hate any cake so this should be 0
|
||||
return query.find().then(function(results){
|
||||
equal(results.length, 0);
|
||||
});
|
||||
}).then(function(){
|
||||
var query = new Parse.Query(Cake);
|
||||
query.equalTo("something", null);
|
||||
// user doesn't hate any cake so this should be 0
|
||||
return query.find().then(function(results){
|
||||
equal(results.length, 0);
|
||||
});
|
||||
}).then(function(){
|
||||
done();
|
||||
}).catch((err) => {
|
||||
@@ -2485,6 +2558,24 @@ describe('Parse.Query testing', () => {
|
||||
});
|
||||
});
|
||||
|
||||
it('query should not match on array when searching for null', (done) => {
|
||||
var target = {__type: 'Pointer', className: 'TestObject', objectId: '123'};
|
||||
var obj = new Parse.Object('TestObject');
|
||||
obj.set('someKey', 'someValue');
|
||||
obj.set('someObjs', [target]);
|
||||
obj.save().then(() => {
|
||||
var query = new Parse.Query('TestObject');
|
||||
query.equalTo('someKey', 'someValue');
|
||||
query.equalTo('someObjs', null);
|
||||
return query.find();
|
||||
}).then((results) => {
|
||||
expect(results.length).toEqual(0);
|
||||
done();
|
||||
}, (error) => {
|
||||
console.log(error);
|
||||
});
|
||||
});
|
||||
|
||||
// #371
|
||||
it('should properly interpret a query v1', (done) => {
|
||||
var query = new Parse.Query("C1");
|
||||
|
||||
Reference in New Issue
Block a user