diff options
author | benoitc <benoitc@apache.org> | 2014-01-27 21:03:28 +0100 |
---|---|---|
committer | benoitc <benoitc@apache.org> | 2014-01-27 21:03:28 +0100 |
commit | b357251448a2f7c2e9aca5056834a52d80bfeaeb (patch) | |
tree | c748b22c9b7e887808e18cf1c6a9ec659709abf6 | |
parent | c60c6b606dcde12dfff58405023be951b63f240f (diff) | |
download | couchdb-b357251448a2f7c2e9aca5056834a52d80bfeaeb.tar.gz |
couch_mrview: check removed keys from the index.
-rw-r--r-- | apps/couch_mrview/test/08-changes_since.t | 42 |
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">>, |