@@ -23,6 +23,7 @@ describe('Parse Query', () => {
23
23
. then ( ( ) => { done ( ) } , ( ) => { done ( ) } ) ;
24
24
} ) ;
25
25
26
+
26
27
it ( 'can do basic queries' , ( done ) => {
27
28
const baz = new TestObject ( { foo : 'baz' } ) ;
28
29
const qux = new TestObject ( { foo : 'qux' } ) ;
@@ -51,6 +52,119 @@ describe('Parse Query', () => {
51
52
} ) . catch ( done . fail ) ;
52
53
} ) ;
53
54
55
+ it ( 'can do query with count' , async ( ) => {
56
+ const items = [ ] ;
57
+ for ( let i = 0 ; i < 4 ; i ++ ) {
58
+ items . push ( new TestObject ( { countMe : true } ) ) ;
59
+ }
60
+ await Parse . Object . saveAll ( items ) ;
61
+
62
+ const query = new Parse . Query ( TestObject ) ;
63
+ query . withCount ( true ) ;
64
+ const { results, count} = await query . find ( ) ;
65
+
66
+ assert ( typeof count === 'number' ) ;
67
+ assert . equal ( results . length , 4 ) ;
68
+ assert . equal ( count , 4 ) ;
69
+ for ( let i = 0 ; i < 4 ; i ++ ) {
70
+ assert . equal ( results [ i ] . className , 'TestObject' ) ;
71
+ }
72
+ } ) ;
73
+
74
+ it ( 'can do query withCount set to false' , async ( ) => {
75
+ const items = [ ] ;
76
+ for ( let i = 0 ; i < 4 ; i ++ ) {
77
+ items . push ( new TestObject ( { countMe : true } ) ) ;
78
+ }
79
+ await Parse . Object . saveAll ( items ) ;
80
+
81
+ const query = new Parse . Query ( TestObject ) ;
82
+ query . withCount ( false ) ;
83
+ const results = await query . find ( ) ;
84
+
85
+ assert . equal ( results . length , 4 ) ;
86
+ for ( let i = 0 ; i < 4 ; i ++ ) {
87
+ assert . equal ( results [ i ] . className , 'TestObject' ) ;
88
+ }
89
+ } ) ;
90
+
91
+ it ( 'can do query with count on empty collection' , async ( ) => {
92
+ const query = new Parse . Query ( TestObject ) ;
93
+ query . withCount ( true ) ;
94
+ const { results, count} = await query . find ( ) ;
95
+
96
+ assert ( typeof count == 'number' ) ;
97
+ assert . equal ( results . length , 0 ) ;
98
+ assert . equal ( count , 0 ) ;
99
+ } ) ;
100
+
101
+ it ( 'can do query with count and limit' , async ( ) => {
102
+ const items = [ ] ;
103
+ for ( let i = 0 ; i < 4 ; i ++ ) {
104
+ items . push ( new TestObject ( { countMe : 2 } ) ) ;
105
+ }
106
+ await Parse . Object . saveAll ( items ) ;
107
+ const query = new Parse . Query ( TestObject ) ;
108
+ query . withCount ( true ) ;
109
+ query . limit ( 2 ) ;
110
+
111
+ const { results, count} = await query . find ( ) ;
112
+
113
+ assert ( typeof count == 'number' ) ;
114
+ assert . equal ( results . length , 2 ) ;
115
+ assert . equal ( count , 4 ) ;
116
+ } ) ;
117
+
118
+ it ( 'can do query withCount and skip' , async ( ) => {
119
+ const items = [ ] ;
120
+ for ( let i = 0 ; i < 4 ; i ++ ) {
121
+ items . push ( new TestObject ( { countMe : 2 } ) ) ;
122
+ }
123
+ await Parse . Object . saveAll ( items ) ;
124
+ const query = new Parse . Query ( TestObject ) ;
125
+ query . withCount ( true ) ;
126
+ query . skip ( 3 ) ;
127
+
128
+ const { results, count} = await query . find ( ) ;
129
+
130
+ assert ( typeof count == 'number' ) ;
131
+ assert . equal ( results . length , 1 ) ;
132
+ assert . equal ( count , 4 ) ;
133
+ } ) ;
134
+
135
+ it ( 'can do query when withCount set without arguments' , async ( ) => {
136
+ const items = [ ] ;
137
+ for ( let i = 0 ; i < 4 ; i ++ ) {
138
+ items . push ( new TestObject ( { countMe : 2 } ) ) ;
139
+ }
140
+ await Parse . Object . saveAll ( items ) ;
141
+ const query = new Parse . Query ( TestObject ) ;
142
+ query . withCount ( ) ;
143
+
144
+ const { results, count} = await query . find ( ) ;
145
+
146
+ assert ( typeof count == 'number' ) ;
147
+ assert . equal ( results . length , 4 ) ;
148
+ assert . equal ( count , 4 ) ;
149
+ } ) ;
150
+
151
+ it ( 'can do query when withCount undefined' , async ( ) => {
152
+ const items = [ ] ;
153
+ for ( let i = 0 ; i < 4 ; i ++ ) {
154
+ items . push ( new TestObject ( { countMe : 2 } ) ) ;
155
+ }
156
+ await Parse . Object . saveAll ( items ) ;
157
+ const query = new Parse . Query ( TestObject ) ;
158
+ let foo ;
159
+ query . withCount ( foo ) ;
160
+
161
+ const { results, count} = await query . find ( ) ;
162
+
163
+ assert ( typeof count == 'number' ) ;
164
+ assert . equal ( results . length , 4 ) ;
165
+ assert . equal ( count , 4 ) ;
166
+ } ) ;
167
+
54
168
it ( 'can do containedIn queries with arrays' , ( done ) => {
55
169
const messageList = [ ] ;
56
170
for ( let i = 0 ; i < 4 ; i ++ ) {
0 commit comments