jiahuili430 commented on code in PR #4862: URL: https://github.com/apache/couchdb/pull/4862#discussion_r1423393371
########## src/chttpd/test/eunit/chttpd_changes_test.erl: ########## @@ -492,6 +507,107 @@ t_view_filter_no_match({_, DbUrl}) -> ?assertEqual({8, 0, []}, changes(DbUrl, Params)), {200, #{}} = req(delete, DDocUrl ++ "?rev=" ++ binary_to_list(Rev)). +t_include_docs({_, DbUrl}) -> + Params = "?include_docs=true", + {200, #{<<"results">> := Res1}} = req(get, DbUrl ++ "/_changes" ++ Params), + ?assertMatch( + [ + #{ + <<"changes">> := [#{<<"rev">> := <<"2-c">>}], + <<"doc">> := #{<<"_id">> := ?DOC1, <<"_rev">> := <<"2-c">>} + }, + #{ + <<"changes">> := [#{<<"rev">> := <<"2-b">>}], + <<"doc">> := #{ + <<"_id">> := ?DOC3, <<"_rev">> := <<"2-b">>, <<"_deleted">> := ?DELETED + } + }, + #{ + <<"changes">> := [#{<<"rev">> := <<"2-c">>}], + <<"doc">> := #{<<"_id">> := ?DDOC2, <<"_rev">> := <<"2-c">>} + } + ], + Res1 + ), + {200, #{<<"results">> := Res2}} = req(post, DbUrl ++ "/_changes" ++ Params), + ?assertEqual(Res1, Res2). + +t_all_docs_include_docs({_, DbUrl}) -> + Params = "?style=all_docs&include_docs=true", + {200, #{<<"results">> := Res1}} = req(get, DbUrl ++ "/_changes" ++ Params), + ?assertMatch( + [ + #{ + <<"changes">> := [#{<<"rev">> := <<"2-c">>}, #{<<"rev">> := <<"2-b">>}], + <<"doc">> := #{<<"_id">> := ?DOC1, <<"_rev">> := <<"2-c">>} + }, + #{ + <<"changes">> := [#{<<"rev">> := <<"2-b">>}], + <<"doc">> := #{ + <<"_id">> := ?DOC3, <<"_rev">> := <<"2-b">>, <<"_deleted">> := ?DELETED + } + }, + #{ + <<"changes">> := [#{<<"rev">> := <<"2-c">>}], + <<"doc">> := #{<<"_id">> := ?DDOC2, <<"_rev">> := <<"2-c">>} + } + ], + Res1 + ), + {200, #{<<"results">> := Res2}} = req(post, DbUrl ++ "/_changes" ++ Params), + ?assertEqual(Res1, Res2). + +t_selector_include_docs({_, DbUrl}) -> + Body = #{<<"selector">> => #{<<"_id">> => ?DOC1}}, + Params = "?filter=_selector&include_docs=true", + {200, #{<<"results">> := Res}} = req(post, DbUrl ++ "/_changes" ++ Params, Body), + ?assertMatch( + [ + #{ + <<"changes">> := [#{<<"rev">> := <<"2-c">>}], + <<"doc">> := #{<<"_id">> := ?DOC1, <<"_rev">> := <<"2-c">>} + } + ], + Res + ). + +t_selector_all_docs_include_docs({_, DbUrl}) -> + Body = #{<<"selector">> => #{<<"_id">> => ?DOC1}}, + Params = "?filter=_selector&style=all_docs&include_docs=true", + {200, #{<<"results">> := Res}} = req(post, DbUrl ++ "/_changes" ++ Params, Body), + ?assertMatch( + [ + #{ + <<"changes">> := [#{<<"rev">> := <<"2-c">>}, #{<<"rev">> := <<"2-b">>}], + <<"doc">> := #{<<"_id">> := ?DOC1, <<"_rev">> := <<"2-c">>} + } + ], + Res + ). + +t_selector_should_only_open_doc_once({_, DbUrl}) -> + Body = #{<<"selector">> => #{<<"_id">> => ?DOC1}}, + Params = "?filter=_selector", + ParamsIncludeDocs = Params ++ "&include_docs=true", + meck:reset(couch_db), + changes_post(DbUrl, Body, Params), + Called = meck:num_calls(couch_db, open_doc, 3), + meck:reset(couch_db), + changes_post(DbUrl, Body, ParamsIncludeDocs), + CalledIncludeDocs = meck:num_calls(couch_db, open_doc, 3), + ?assertEqual(Called, CalledIncludeDocs). + +t_style_all_docs_open_doc_should_different({_, DbUrl}) -> Review Comment: Updated, and thanks for the review! -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: notifications-unsubscr...@couchdb.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org