summaryrefslogtreecommitdiff
path: root/test/elixir/test/replicator_db_by_doc_id_test.exs
diff options
context:
space:
mode:
Diffstat (limited to 'test/elixir/test/replicator_db_by_doc_id_test.exs')
-rw-r--r--test/elixir/test/replicator_db_by_doc_id_test.exs124
1 files changed, 0 insertions, 124 deletions
diff --git a/test/elixir/test/replicator_db_by_doc_id_test.exs b/test/elixir/test/replicator_db_by_doc_id_test.exs
deleted file mode 100644
index 681ed02df..000000000
--- a/test/elixir/test/replicator_db_by_doc_id_test.exs
+++ /dev/null
@@ -1,124 +0,0 @@
-defmodule ReplicatorDBByDocIdTest do
- use CouchTestCase
-
- @moduledoc """
- This is a port of the replicator_db_by_doc_id.js suite
- """
-
- @moduletag :replication
- @moduletag kind: :cluster
-
- @docs [
- %{
- _id: "foo1",
- value: 11
- },
- %{
- _id: "foo2",
- value: 22
- },
- %{
- _id: "foo3",
- value: 33
- }
- ]
-
- test "replicatior db by doc id" do
- name = random_db_name()
- src_db_name = name <> "_src"
- tgt_db_name = name <> "_tgt"
-
- create_db(src_db_name)
- create_db(tgt_db_name)
- delete_db_on_exit([src_db_name, tgt_db_name])
-
- # Populate src DB
- ddocs = [
- %{
- _id: "_design/mydesign",
- language: "javascript"
- }
- ]
-
- docs = @docs ++ ddocs
- bulk_save(src_db_name, docs)
-
- src_db_url = Couch.process_url("/#{src_db_name}")
- tgt_db_url = build_tgt_uri(tgt_db_name)
-
- replication_doc = %{
- _id: "foo_cont_rep_#{name}",
- source: src_db_url,
- target: tgt_db_url,
- doc_ids: ["foo666", "foo3", "_design/mydesign", "foo999", "foo1"]
- }
-
- {:ok, repdoc} = create_doc("_replicator", replication_doc)
- delete_doc_on_exit("_replicator", repdoc.body["id"])
-
- retry_until(fn ->
- resp = Couch.get("/_replicator/#{replication_doc[:_id]}")
- assert resp.body["_replication_state"] == "completed"
- resp
- end)
-
- copy_resp = Couch.get("/#{tgt_db_name}/foo1")
- assert copy_resp.status_code == 200
- assert copy_resp.body["value"] === 11
-
- copy_resp = Couch.get("/#{tgt_db_name}/foo2")
- assert copy_resp.status_code == 404
-
- copy_resp = Couch.get("/#{tgt_db_name}/foo3")
- assert copy_resp.status_code == 200
- assert copy_resp.body["value"] === 33
-
- copy_resp = Couch.get("/#{tgt_db_name}/foo666")
- assert copy_resp.status_code == 404
-
- copy_resp = Couch.get("/#{tgt_db_name}/foo999")
- assert copy_resp.status_code == 404
-
- # Javascript test suite was executed with admin party
- # the design doc was created during replication.
- # Elixir test suite is executed configuring an admin.
- # The auth info should be provided for the tgt db in order to
- # create the design doc during replication
- copy_resp = Couch.get("/#{tgt_db_name}/_design/mydesign")
- assert copy_resp.status_code == 200
-
- resp = Couch.get("/_replicator/#{replication_doc[:_id]}")
- assert resp.status_code == 200
- assert resp.body["_replication_stats"]["revisions_checked"] == 3
- assert resp.body["_replication_stats"]["missing_revisions_found"] == 3
- assert resp.body["_replication_stats"]["docs_read"] == 3
- assert resp.body["_replication_stats"]["docs_written"] == 3
- assert resp.body["_replication_stats"]["doc_write_failures"] == 0
- end
-
- defp build_tgt_uri(db_name) do
- username = System.get_env("EX_USERNAME") || "adm"
- password = System.get_env("EX_PASSWORD") || "pass"
-
- "/#{db_name}"
- |> Couch.process_url()
- |> URI.parse()
- |> Map.put(:userinfo, "#{username}:#{password}")
- |> URI.to_string()
- end
-
- def delete_db_on_exit(db_names) when is_list(db_names) do
- on_exit(fn ->
- Enum.each(db_names, fn name ->
- delete_db(name)
- end)
- end)
- end
-
- def delete_doc_on_exit(db_name, doc_id) do
- on_exit(fn ->
- resp = Couch.get("/#{db_name}/#{doc_id}")
- Couch.delete("/#{db_name}/#{doc_id}?rev=#{resp.body["_rev"]}")
- end)
- end
-end