Fix/3678 overloaded query constraints (#3723)

* Added failing test

* Updated test description

* Properly handle equalities with additional operator constraints

* adds continuation to silence rejected promises

* Wrap json parsing

* nits
This commit is contained in:
Florent Vilmart
2017-04-23 18:10:17 -04:00
committed by Arthur Cinader
parent d2b5be20a8
commit f7af48db89
2 changed files with 70 additions and 0 deletions

View File

@@ -1891,6 +1891,41 @@ describe('Parse.Query testing', () => {
});
});
it("equalTo on same column as $dontSelect should not break $dontSelect functionality (#3678)", function(done) {
var AuthorObject = Parse.Object.extend("Author");
var BlockedObject = Parse.Object.extend("Blocked");
var PostObject = Parse.Object.extend("Post");
var postAuthor = null;
var requestUser = null;
return new AuthorObject({ name: "Julius"}).save().then((user) => {
postAuthor = user;
return new AuthorObject({ name: "Bob"}).save();
}).then((user) => {
requestUser = user;
var objects = [
new PostObject({ author: postAuthor, title: "Lorem ipsum" }),
new PostObject({ author: requestUser, title: "Kafka" }),
new PostObject({ author: requestUser, title: "Brown fox" }),
new BlockedObject({ blockedBy: postAuthor, blockedUser: requestUser})
];
return Parse.Object.saveAll(objects);
}).then(() => {
var banListQuery = new Parse.Query(BlockedObject);
banListQuery.equalTo("blockedUser", requestUser);
return new Parse.Query(PostObject)
.equalTo("author", postAuthor)
.doesNotMatchKeyInQuery("author", "blockedBy", banListQuery)
.find()
.then((r) => {
expect(r.length).toEqual(0);
done();
}, done.fail);
})
});
it("object with length", function(done) {
var TestObject = Parse.Object.extend("TestObject");
var obj = new TestObject();