42
42
<<" error" >> := <<" query_parse_error" >>,
43
43
<<" reason" >> := <<" `keys` is incompatible with `key`, `start_key` and `end_key`" >>
44
44
}).
45
+ -define (ERROR_KEY_RANGE , #{
46
+ <<" error" >> := <<" query_parse_error" >>,
47
+ <<" reason" >> :=
48
+ <<" No rows can match your key range, reverse your " ,
49
+ " start_key and end_key or set descending=true" >>
50
+ }).
45
51
46
52
% seconds
47
53
-define (TIMEOUT , 60 ).
@@ -163,26 +169,17 @@ t_view_with_multiple_queries(Db) ->
163
169
? assertEqual (200 , Code ).
164
170
165
171
t_view_with_key_and_start_key (Db ) ->
166
- {Code1 , Res1 } = req (get , url (Db , " _design/ddoc/_view/map" , " key=\" a\" &startkey=\" b\" " )),
167
- {Code2 , Res2 } = req (get , url (Db , " _design/ddoc/_view/map" , " startkey=\" b\" &key=\" a\" " )),
168
- ? assertMatch (
169
- #{
170
- <<" error" >> := <<" query_parse_error" >>,
171
- <<" reason" >> :=
172
- <<" No rows can match your key range, reverse your start_key and end_key or set descending=true" >>
173
- },
174
- Res1
175
- ),
176
- ? assertMatch (#{<<" rows" >> := [#{<<" id" >> := <<" a" >>}]}, Res2 ),
177
- ? assertEqual (400 , Code1 ),
178
- ? assertEqual (200 , Code2 ).
172
+ test_helper_key_and_start_key (Db , " _design/ddoc/_view/map" ).
179
173
180
174
t_all_docs_with_key_and_start_key (Db ) ->
181
- {Code1 , Res1 } = req (get , url (Db , " _all_docs" , " key=\" a\" &startkey=\" b\" " )),
182
- {Code2 , Res2 } = req (get , url (Db , " _all_docs" , " startkey=\" b\" &key=\" a\" " )),
183
- ? assertMatch (#{<<" rows" >> := []}, Res1 ),
175
+ test_helper_key_and_start_key (Db , " _all_docs" ).
176
+
177
+ test_helper_key_and_start_key (Db , Path ) ->
178
+ {Code1 , Res1 } = req (get , url (Db , Path , " key=\" a\" &startkey=\" b\" " )),
179
+ {Code2 , Res2 } = req (get , url (Db , Path , " startkey=\" b\" &key=\" a\" " )),
180
+ ? assertMatch (? ERROR_KEY_RANGE , Res1 ),
184
181
? assertMatch (#{<<" rows" >> := [#{<<" id" >> := <<" a" >>}]}, Res2 ),
185
- ? assertEqual (200 , Code1 ),
182
+ ? assertEqual (400 , Code1 ),
186
183
? assertEqual (200 , Code2 ).
187
184
188
185
t_view_with_key_and_end_key (Db ) ->
@@ -200,31 +197,32 @@ test_helper_key_and_end_key(Db, Path) ->
200
197
? assertEqual (200 , Code2 ).
201
198
202
199
t_view_with_single_keys_and_start_key (Db ) ->
203
- {Code , Res } = req (get , url (Db , " _design/ddoc/_view/map?keys=[\" a\" ]&startkey=\" b\" " )),
204
- ? assertMatch (
205
- #{
206
- <<" error" >> := <<" query_parse_error" >>,
207
- <<" reason" >> :=
208
- <<" No rows can match your key range, reverse your start_key and end_key or set descending=true" >>
209
- },
210
- Res
211
- ),
212
- ? assertEqual (400 , Code ).
200
+ test_helper_single_keys_and_start_key (Db , " _design/ddoc/_view/map" ).
213
201
214
202
t_all_docs_with_single_keys_and_start_key (Db ) ->
215
- {Code , Res } = req (get , url (Db , " _all_docs?keys=[\" a\" ]&startkey=\" b\" " )),
216
- ? assertMatch (? ERROR_KEYS_INCOMPATIBLE , Res ),
217
- ? assertEqual (400 , Code ).
203
+ test_helper_single_keys_and_start_key (Db , " _all_docs" ).
204
+
205
+ test_helper_single_keys_and_start_key (Db , Path ) ->
206
+ {Code1 , Res1 } = req (get , url (Db , Path , " keys=[\" a\" ]&startkey=\" b\" " )),
207
+ {Code2 , Res2 } = req (get , url (Db , Path , " startkey=\" b\" &keys=[\" a\" ]" )),
208
+ ? assertMatch (? ERROR_KEY_RANGE , Res1 ),
209
+ ? assertMatch (#{<<" rows" >> := [#{<<" id" >> := <<" a" >>}]}, Res2 ),
210
+ ? assertEqual (400 , Code1 ),
211
+ ? assertEqual (200 , Code2 ).
218
212
219
213
t_view_with_keys_and_start_key (Db ) ->
220
- {Code , Res } = req (get , url (Db , " _design/ddoc/_view/map" , " keys=[\" a\" ,\" b\" ]&start_key=\" b\" " )),
221
- ? assertMatch (? ERROR_KEYS_INCOMPATIBLE , Res ),
222
- ? assertEqual (400 , Code ).
214
+ test_helper_keys_and_start_key (Db , " _design/ddoc/_view/map" ).
223
215
224
216
t_all_docs_with_keys_and_start_key (Db ) ->
225
- {Code , Res } = req (get , url (Db , " _all_docs" , " keys=[\" a\" ,\" b\" ]&start_key=\" b\" " )),
226
- ? assertMatch (? ERROR_KEYS_INCOMPATIBLE , Res ),
227
- ? assertEqual (400 , Code ).
217
+ test_helper_keys_and_start_key (Db , " _all_docs" ).
218
+
219
+ test_helper_keys_and_start_key (Db , Path ) ->
220
+ {Code1 , Res1 } = req (get , url (Db , Path , " keys=[\" a\" ,\" b\" ]&start_key=\" b\" " )),
221
+ {Code2 , Res2 } = req (get , url (Db , Path , " startkey=\" b\" &keys=[\" a\" ,\" b\" ]" )),
222
+ ? assertMatch (? ERROR_KEYS_INCOMPATIBLE , Res1 ),
223
+ ? assertMatch (? ERROR_KEYS_INCOMPATIBLE , Res2 ),
224
+ ? assertEqual (400 , Code1 ),
225
+ ? assertEqual (400 , Code2 ).
228
226
229
227
t_view_with_key_non_existent_docs (Db ) ->
230
228
{Code , Res } = req (get , url (Db , " _design/ddoc/_view/map" , " key=\" not_exist\" " )),
0 commit comments