Skip to content

Commit 679b369

Browse files
committed
feat: add test cases
1 parent 868e7e3 commit 679b369

File tree

1 file changed

+39
-15
lines changed

1 file changed

+39
-15
lines changed

spec/ParseObject.spec.js

Lines changed: 39 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2057,32 +2057,56 @@ describe('Parse.Object testing', () => {
20572057
});
20582058

20592059
//https://github.com/parse-community/parse-server/issues/7575
2060-
it('Nested date type attributes should be saved as $date in mongoDB irrespective of nesting level', async done => {
2060+
it('Should return results if queries constraints use nested date type attributes', async done => {
2061+
const now = new Date();
20612062
const object = new Parse.Object('TestObjectDate');
2062-
await object.save({
2063+
const newObj = await object.save({
2064+
date: now,
20632065
prop1: 'test1',
20642066
prop2: {
20652067
nestedProp: {
2066-
date: new Date(),
2068+
date: now,
20672069
},
20682070
},
20692071
prop3: {
2070-
date: new Date(),
2072+
date: now,
20712073
},
20722074
});
20732075

20742076
const futureDate = new Date();
2075-
futureDate.setHours(new Date().getHours() + 1);
2076-
2077-
const queryLevel1 = new Parse.Query('TestObjectDate');
2078-
queryLevel1.lessThan('prop3.date', futureDate);
2079-
const resultsLevel1 = await queryLevel1.find();
2080-
expect(resultsLevel1.length).toBe(1);
2081-
2082-
const queryLevel2 = new Parse.Query('TestObjectDate');
2083-
queryLevel2.lessThan('prop2.nestedProp.date', futureDate);
2084-
const resultsLevel2 = await queryLevel2.find();
2085-
expect(resultsLevel2.length).toBe(1);
2077+
futureDate.setHours(now.getHours() + 1);
2078+
2079+
const pastDate = new Date();
2080+
pastDate.setHours(now.getHours() - 1);
2081+
2082+
const q1 = new Parse.Query('TestObjectDate');
2083+
q1.lessThan('prop3.date', futureDate);
2084+
const r1 = await q1.find();
2085+
expect(r1.length).toBe(1);
2086+
2087+
const q2 = new Parse.Query('TestObjectDate');
2088+
q2.lessThan('prop2.nestedProp.date', futureDate);
2089+
const r2 = await q2.find();
2090+
expect(r2.length).toBe(1);
2091+
2092+
newObj.set('prop3.date1', now);
2093+
await newObj.save();
2094+
2095+
const q3 = new Parse.Query('TestObjectDate');
2096+
q3.equalTo('prop3.date1', now);
2097+
const r3 = await q3.find();
2098+
expect(r3.length).toBe(1);
2099+
2100+
const q4 = new Parse.Query('TestObjectDate');
2101+
q4.lessThan('prop3.date1', futureDate);
2102+
q4.greaterThan('prop3.date1', pastDate);
2103+
const r4 = await q4.find();
2104+
expect(r4.length).toBe(1);
2105+
2106+
const q5 = new Parse.Query('TestObjectDate');
2107+
q5.equalTo('date', now);
2108+
const r5 = await q5.find();
2109+
expect(r5.length).toBe(1);
20862110

20872111
done();
20882112
});

0 commit comments

Comments
 (0)