garrensmith closed pull request #1745: test: port large_docs.js to Elixir test
suite
URL: https://github.com/apache/couchdb/pull/1745
This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:
As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):
diff --git a/test/elixir/README.md b/test/elixir/README.md
index 1b515c2da3..e80df1f315 100644
--- a/test/elixir/README.md
+++ b/test/elixir/README.md
@@ -44,7 +44,7 @@ X means done, - means partially
- [ ] Port http.js
- [ ] Port invalid_docids.js
- [ ] Port jsonp.js
- - [ ] Port large_docs.js
+ - [X] Port large_docs.js
- [ ] Port list_views.js
- [ ] Port lorem_b64.txt
- [ ] Port lorem.txt
diff --git a/test/elixir/test/large_docs_text.exs
b/test/elixir/test/large_docs_text.exs
new file mode 100644
index 0000000000..4d2c5dedeb
--- /dev/null
+++ b/test/elixir/test/large_docs_text.exs
@@ -0,0 +1,40 @@
+defmodule LargeDocsTest do
+ use CouchTestCase
+
+ @moduletag :large_docs
+ @long_string "0123456789\n"
+
+ @moduledoc """
+ Test saving a bunch of large documents.
+ This is a port of the large_docs.js suite
+ """
+
+ @tag :with_db
+ test "Large docs", context do
+ db_name = context[:db_name]
+ long_text = String.duplicate(@long_string, 10)
+
+ resp1 = Couch.post("/#{db_name}", body: %{:_id => "0", :longtest =>
long_text}).body
+ resp2 = Couch.post("/#{db_name}", body: %{:_id => "1", :longtest =>
long_text}).body
+ resp3 = Couch.post("/#{db_name}", body: %{:_id => "2", :longtest =>
long_text}).body
+ resp4 = Couch.post("/#{db_name}", body: %{:_id => "3", :longtest =>
long_text}).body
+
+ assert resp1["ok"]
+ assert resp2["ok"]
+ assert resp3["ok"]
+ assert resp4["ok"]
+
+ %{"rows" => rows} = query(db_name)
+ assert Enum.count(rows) === 4
+ Enum.each(rows, fn row -> assert row["value"] === long_text end)
+ end
+
+ defp query(db_name) do
+ map_fun = "function(doc) { emit(null, doc.longtest); }"
+ map_doc = %{:views => %{:view => %{:map => map_fun}}}
+ %{"rev" => rev} = Couch.put("/#{db_name}/_design/tempddoc", body:
map_doc).body
+ response = Couch.get("/#{db_name}/_design/tempddoc/_view/view").body
+ Couch.delete("/#{db_name}/_design/tempddoc?rev=#{rev}")
+ response
+ end
+end
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services