diff options
| author | Nick Vatamaniuc <vatamane@gmail.com> | 2023-02-13 23:32:52 -0500 |
|---|---|---|
| committer | Nick Vatamaniuc <nickva@users.noreply.github.com> | 2023-02-14 00:16:08 -0500 |
| commit | d3b0bcbf3f1bf36f3e71ac98795d024945e57dde (patch) | |
| tree | be9b9859619172b893703907125a5170ae3a65e9 | |
| parent | 0867d1b21b4f4062024d035fd3d00f8f5338e770 (diff) | |
| download | couchdb-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.erl | 27 |
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), |
