You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by ro...@apache.org on 2016/04/14 18:07:28 UTC
fauxton commit: updated refs/heads/master to d44aa93
Repository: couchdb-fauxton
Updated Branches:
refs/heads/master dfbc57e5e -> d44aa93a9
Editor: don't throw if document has no id
Right now the editor throws if you try to create a doc that does
nto have an id, instead of doing a POST to the database, which
will cause CouchDB to create an id for us.
Sometimes you want to be able to not use the pre-generated id from
Fauxton. Use cases are copy pasting a JSON object into the editor
or if you want to let the server take care of creating the id.
This patch lets fixes an invalid POST to `$DB/undefined` in cases
where the id wasn't specified.
Thanks to Will Holley for reporting!
PR: #678
PR-URL: https://github.com/apache/couchdb-fauxton/pull/678
Reviewed-By: garren smith <ga...@gmail.com>
Project: http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/repo
Commit: http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/commit/d44aa93a
Tree: http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/tree/d44aa93a
Diff: http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/diff/d44aa93a
Branch: refs/heads/master
Commit: d44aa93a92a200d763f9ca4632f2c0abc7a5f91d
Parents: dfbc57e
Author: Robert Kowalski <ro...@apache.org>
Authored: Tue Apr 5 15:58:35 2016 +0200
Committer: Robert Kowalski <ro...@apache.org>
Committed: Thu Apr 14 18:07:09 2016 +0200
----------------------------------------------------------------------
app/addons/documents/shared-resources.js | 9 +++-
.../tests/nightwatch/createsDocument.js | 2 +-
.../nightwatch/createsDocumentWithoutId.js | 49 ++++++++++++++++++++
3 files changed, 58 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/d44aa93a/app/addons/documents/shared-resources.js
----------------------------------------------------------------------
diff --git a/app/addons/documents/shared-resources.js b/app/addons/documents/shared-resources.js
index bfefa51..d603d53 100644
--- a/app/addons/documents/shared-resources.js
+++ b/app/addons/documents/shared-resources.js
@@ -31,7 +31,14 @@ define([
if (context === undefined) {
context = 'server';
}
- return FauxtonAPI.urls('document', context, this.getDatabase().safeID(), this.safeID());
+
+ // new without id make a POST to the DB and not a PUT on a DB
+ let id = this.safeID();
+ if (!id) {
+ id = '';
+ }
+
+ return FauxtonAPI.urls('document', context, this.getDatabase().safeID(), id);
},
initialize: function (_attrs, options) {
http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/d44aa93a/app/addons/documents/tests/nightwatch/createsDocument.js
----------------------------------------------------------------------
diff --git a/app/addons/documents/tests/nightwatch/createsDocument.js b/app/addons/documents/tests/nightwatch/createsDocument.js
index ef04bae..eddb58a 100644
--- a/app/addons/documents/tests/nightwatch/createsDocument.js
+++ b/app/addons/documents/tests/nightwatch/createsDocument.js
@@ -32,13 +32,13 @@ module.exports = {
.waitForElementVisible('.js-lastelement', waitTime, true)
.waitForElementVisible('#api-navbar', waitTime, true)
- //.pause(1000) // looks like auto-focus happens during the next execute() line, so this slows it down
.execute('\
var editor = ace.edit("doc-editor");\
editor.gotoLine(2,10);\
editor.removeWordRight();\
editor.insert("' + newDocumentName + '");\
')
+
.clickWhenVisible('#doc-editor-actions-panel .save-doc')
.checkForDocumentCreated(newDocumentName)
.url(baseUrl + '/' + newDatabaseName + '/_all_docs')
http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/d44aa93a/app/addons/documents/tests/nightwatch/createsDocumentWithoutId.js
----------------------------------------------------------------------
diff --git a/app/addons/documents/tests/nightwatch/createsDocumentWithoutId.js b/app/addons/documents/tests/nightwatch/createsDocumentWithoutId.js
new file mode 100644
index 0000000..288cb91
--- /dev/null
+++ b/app/addons/documents/tests/nightwatch/createsDocumentWithoutId.js
@@ -0,0 +1,49 @@
+// Licensed under the Apache License, Version 2.0 (the "License"); you may not
+// use this file except in compliance with the License. You may obtain a copy of
+// the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+// License for the specific language governing permissions and limitations under
+// the License.
+
+module.exports = {
+ 'Creates a document without id' : function (client) {
+ /*jshint multistr: true */
+ var waitTime = client.globals.maxWaitTime,
+ newDatabaseName = client.globals.testDatabaseName,
+ newDocumentName = 'create_doc_document',
+ baseUrl = client.globals.test_settings.launch_url;
+
+ client
+ .createDatabase(newDatabaseName)
+ .loginToGUI()
+ .url(baseUrl + '/#/database/' + newDatabaseName + '/_all_docs')
+
+ .clickWhenVisible('#new-all-docs-button a')
+ .clickWhenVisible('#new-all-docs-button a[href="#/database/' + newDatabaseName + '/new"]')
+ .waitForElementPresent('#editor-container', waitTime, false)
+ .verify.urlEquals(baseUrl + '/#/database/' + newDatabaseName + '/new')
+ .waitForElementPresent('.ace_gutter-active-line', waitTime, false)
+
+ // confirm the header elements are showing up
+ .waitForElementVisible('.js-lastelement', waitTime, true)
+ .waitForElementVisible('#api-navbar', waitTime, true)
+
+ .execute('\
+ var editor = ace.edit("doc-editor");\
+ editor.gotoLine(2,1);\
+ editor.removeLines();\
+ editor.insert(\'"foo": "bar"\');\
+ ')
+
+ .checkForStringPresent(newDatabaseName + '/_all_docs', '"total_rows":0')
+ .clickWhenVisible('#doc-editor-actions-panel .save-doc')
+ .checkForStringPresent(newDatabaseName + '/_all_docs', '"total_rows":1')
+
+ .end();
+ }
+};