summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbenoitc <benoitc@apache.org>2014-01-27 21:03:28 +0100
committerbenoitc <benoitc@apache.org>2014-01-27 21:03:28 +0100
commitb357251448a2f7c2e9aca5056834a52d80bfeaeb (patch)
treec748b22c9b7e887808e18cf1c6a9ec659709abf6
parentc60c6b606dcde12dfff58405023be951b63f240f (diff)
downloadcouchdb-b357251448a2f7c2e9aca5056834a52d80bfeaeb.tar.gz
couch_mrview: check removed keys from the index.
-rw-r--r--apps/couch_mrview/test/08-changes_since.t42
1 files changed, 40 insertions, 2 deletions
diff --git a/apps/couch_mrview/test/08-changes_since.t b/apps/couch_mrview/test/08-changes_since.t
index 3127cff41..5a10f4cda 100644
--- a/apps/couch_mrview/test/08-changes_since.t
+++ b/apps/couch_mrview/test/08-changes_since.t
@@ -15,7 +15,7 @@
% the License.
main(_) ->
- etap:plan(10),
+ etap:plan(14),
case (catch test()) of
ok ->
etap:end_tests();
@@ -40,7 +40,8 @@ test() ->
test_basic_count_since(Db),
test_range_count_since(Db),
test_compact(Db),
- test_util:stop_couch(),
+ test_remove_key(Db),
+ catch test_util:stop_couch(),
ok.
@@ -112,6 +113,43 @@ test_compact(Db) ->
Count = run_count_query(Db, 0, []),
etap:is(Count, 10, "compact view worked.").
+test_remove_key(Db) ->
+ %% add new doc
+ Doc = couch_mrview_test_util:doc(11),
+ {ok, Rev} = couch_db:update_doc(Db, Doc, []),
+ RevStr = couch_doc:rev_to_str(Rev),
+ {ok, _} = couch_db:ensure_full_commit(Db),
+ {ok, Db1} = couch_db:reopen(Db),
+ Result = run_count_query(Db1, 0, []),
+ etap:is(Result, 11, "Add new doc worked."),
+ %% check new view key
+ Result1 = run_query(Db1, 0, [{start_key, 11}, {end_key, 11}]),
+ Expect = {ok, [
+ {{12, 11, <<"11">>}, 11}
+ ]},
+ etap:is(Result1, Expect, "added key OK."),
+
+ %% delete doc
+ Doc2 = couch_doc:from_json_obj({[
+ {<<"_id">>, <<"11">>},
+ {<<"_rev">>, RevStr},
+ {<<"_deleted">>, true}
+ ]}),
+ {ok, _} = couch_db:update_doc(Db1, Doc2, []),
+ {ok, Db2} = couch_db:reopen(Db1),
+ Result2 = run_count_query(Db2, 0, []),
+ etap:is(Result2, 11, "removed key saved."),
+ %% check new view key
+ Result3 = run_query(Db2, 0, [{start_key, 11}, {end_key, 11}]),
+ Expect2 = {ok, [
+ {{13, 11, <<"11">>}, {[{<<"_removed">>, true}]}}
+ ]},
+ etap:is(Result3, Expect2, "removed key OK.").
+
+
+
+
+
run_query(Db, Since, Opts) ->
Fun = fun(KV, Acc) -> {ok, [KV | Acc]} end,
{ok, R} = couch_mrview:view_changes_since(Db, <<"_design/bar">>, <<"baz">>,