summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorJohn Christopher Anderson <jchris@apache.org>2009-08-11 18:50:08 +0000
committerJohn Christopher Anderson <jchris@apache.org>2009-08-11 18:50:08 +0000
commit36bbc72b6b0992639a0ba7a2077d75ec9f7cf03d (patch)
tree3e4e0d1e46a7fe04a9b185455a025e8ff5fa3e62 /test
parentea95901fe52df11338134bd86f9bc8f028c5444b (diff)
Initial commit of _update handler. Thanks to Paul Davis, Jason Davies for code and others for discussion.
The _update handler accepts POSTs to paths like: /db/_design/foo/_update/bar and PUTs which include docids, like: /db/_design/foo/_update/bar/docid The function signature: function(doc, req) { doc.a_new_field = req.query.something; return [doc, "<h1>added something to your doc</h1>"]; } The tests in update_documents.js are fairly complete and include examples of bumping a counter, changing only a single field, parsing from (and returning) XML, and creating new documents. git-svn-id: https://svn.apache.org/repos/asf/couchdb/trunk@803245 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'test')
-rw-r--r--test/query_server_spec.rb24
1 files changed, 23 insertions, 1 deletions
diff --git a/test/query_server_spec.rb b/test/query_server_spec.rb
index dfc57a5b..c9fb6942 100644
--- a/test/query_server_spec.rb
+++ b/test/query_server_spec.rb
@@ -242,12 +242,21 @@ functions = {
},
"filter-basic" => {
"js" => <<-JS
- function(doc, req, userCtx) {
+ function(doc, req) {
if (doc.good) {
return true;
}
}
JS
+ },
+ "update-basic" => {
+ "js" => <<-JS
+ function(doc, req) {
+ doc.world = "hello";
+ var resp = [doc, "hello doc"];
+ return resp;
+ }
+ JS
}
}
@@ -441,6 +450,19 @@ describe "query server normal case" do
should == [true, [true, false, true]]
end
end
+
+ describe "update" do
+ before(:all) do
+ @fun = functions["update-basic"][LANGUAGE]
+ @qs.reset!
+ end
+ it "should return a doc and a resp body" do
+ up, doc, resp = @qs.run(["update", @fun, {"foo" => "gnarly"}, {"verb" => "POST"}])
+ up.should == "up"
+ doc.should == {"foo" => "gnarly", "world" => "hello"}
+ resp["body"].should == "hello doc"
+ end
+ end
end
def should_have_exited qs