summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Vatamaniuc <vatamane@gmail.com>2023-02-13 23:32:52 -0500
committerNick Vatamaniuc <nickva@users.noreply.github.com>2023-02-14 00:16:08 -0500
commitd3b0bcbf3f1bf36f3e71ac98795d024945e57dde (patch)
treebe9b9859619172b893703907125a5170ae3a65e9
parent0867d1b21b4f4062024d035fd3d00f8f5338e770 (diff)
downloadcouchdb-d3b0bcbf3f1bf36f3e71ac98795d024945e57dde.tar.gz
Test the update_docs=true case in replicator scheduler docs test
For completeness, make sure to test replicator doc updates with `update_docs=true` setting as well. Issue: https://github.com/apache/couchdb/pull/4423
-rw-r--r--src/couch_replicator/test/eunit/couch_replicator_scheduler_docs_tests.erl27
1 files changed, 26 insertions, 1 deletions
diff --git a/src/couch_replicator/test/eunit/couch_replicator_scheduler_docs_tests.erl b/src/couch_replicator/test/eunit/couch_replicator_scheduler_docs_tests.erl
index 10a48d08e..192d113c6 100644
--- a/src/couch_replicator/test/eunit/couch_replicator_scheduler_docs_tests.erl
+++ b/src/couch_replicator/test/eunit/couch_replicator_scheduler_docs_tests.erl
@@ -40,8 +40,15 @@ setup_prefixed_replicator_db() ->
RepDb = setup_replicator_db(?tempdb()),
{Ctx, {RepDb, Source, Target}}.
+setup_prefixed_replicator_db_with_update_docs_true() ->
+ {Ctx, {Source, Target}} = couch_replicator_test_helper:test_setup(),
+ config:set("replicator", "update_docs", "true", _Persist = false),
+ RepDb = setup_replicator_db(?tempdb()),
+ {Ctx, {RepDb, Source, Target}}.
+
teardown({Ctx, {RepDb, Source, Target}}) ->
ok = fabric:delete_db(RepDb, [?ADMIN_CTX]),
+ config:delete("replicator", "update_docs", _Persist = false),
couch_replicator_test_helper:test_teardown({Ctx, {Source, Target}}).
scheduler_docs_test_main_db_test_() ->
@@ -99,6 +106,17 @@ t_replicator_doc_state_fields_test_() ->
])
}.
+t_replicator_doc_state_fields_update_docs_true_test_() ->
+ {
+ setup,
+ fun setup_prefixed_replicator_db_with_update_docs_true/0,
+ fun teardown/1,
+ with([
+ ?TDEF(t_doc_fields_are_updated, 10),
+ ?TDEF(t_doc_fields_are_ignored, 10)
+ ])
+ }.
+
t_scheduler_docs_total_rows({_Ctx, {RepDb, Source, Target}}) ->
SourceUrl = couch_replicator_test_helper:cluster_db_url(Source),
TargetUrl = couch_replicator_test_helper:cluster_db_url(Target),
@@ -179,7 +197,14 @@ t_doc_fields_are_updated({_Ctx, {RepDb, Source, Target}}) ->
#{<<"_replication_state_time">> := StateTime} = StateDoc,
?assertNotEqual(<<"foo5">>, StateTime),
?assertNot(is_map_key(<<"_replicator_state_reason">>, StateDoc)),
- ?assertNot(is_map_key(<<"_replication_id">>, StateDoc)).
+ case config:get_boolean("replicator", "update_docs", false) of
+ true ->
+ ?assertMatch(#{<<"_replication_id">> := <<_/binary>>}, StateDoc),
+ #{<<"_replication_id">> := RepId} = StateDoc,
+ ?assertNotEqual(<<"foo3">>, RepId);
+ false ->
+ ?assertNot(is_map_key(<<"_replication_id">>, StateDoc))
+ end.
t_doc_fields_are_ignored({_Ctx, {RepDb, Source, Target}}) ->
SourceUrl = couch_replicator_test_helper:cluster_db_url(Source),