You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by ga...@apache.org on 2015/07/21 19:11:47 UTC
[2/2] fauxton commit: updated refs/heads/master to c754c6c
Trigger error on failed session
If a session fetch fails then fire an event
Project: http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/repo
Commit: http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/commit/d52cef09
Tree: http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/tree/d52cef09
Diff: http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/diff/d52cef09
Branch: refs/heads/master
Commit: d52cef099e1ebc9cd4a1c530f4932e31b9aa627d
Parents: b8bbb87
Author: Garren Smith <ga...@gmail.com>
Authored: Mon Jul 20 11:55:51 2015 +0200
Committer: Garren Smith <ga...@gmail.com>
Committed: Tue Jul 21 19:11:20 2015 +0200
----------------------------------------------------------------------
app/core/couchdbSession.js | 13 +++++-----
app/core/tests/couchdbSessionSpec.js | 42 +++++++++++++++++++++++++++++++
2 files changed, 49 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/d52cef09/app/core/couchdbSession.js
----------------------------------------------------------------------
diff --git a/app/core/couchdbSession.js b/app/core/couchdbSession.js
index ee06a6f..2ef460e 100644
--- a/app/core/couchdbSession.js
+++ b/app/core/couchdbSession.js
@@ -35,8 +35,7 @@ function (FauxtonAPI) {
},
fetchUser: function (opt) {
- var that = this,
- options = opt || {},
+ var options = opt || {},
currentUser = this.user(),
fetch = _.bind(this.fetchOnce, this);
@@ -45,20 +44,22 @@ function (FauxtonAPI) {
}
return fetch(opt).then(function () {
- var user = that.user();
+ var user = this.user();
// Notify anyone listening on these events that either a user has changed
// or current user is the same
if (currentUser !== user) {
- that.trigger('session:userChanged');
+ this.trigger('session:userChanged');
} else {
- that.trigger('session:userFetched');
+ this.trigger('session:userFetched');
}
// this will return the user as a value to all function that calls done on this
// eg. session.fetchUser().done(user) { .. do something with user ..}
return user;
- });
+ }.bind(this), function (session, xhr, type, message) {
+ this.trigger('session:error', xhr, type, message);
+ }.bind(this));
}
})
};
http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/d52cef09/app/core/tests/couchdbSessionSpec.js
----------------------------------------------------------------------
diff --git a/app/core/tests/couchdbSessionSpec.js b/app/core/tests/couchdbSessionSpec.js
new file mode 100644
index 0000000..e067c90
--- /dev/null
+++ b/app/core/tests/couchdbSessionSpec.js
@@ -0,0 +1,42 @@
+// 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.
+define([
+ 'api',
+ 'testUtils'
+], function (FauxtonAPI, testUtils) {
+ var assert = testUtils.assert;
+
+ describe('CouchDBSession', function () {
+
+ it('triggers error on failed fetch', function () {
+ var called = false;
+
+ var session = FauxtonAPI.session;
+ session.on('session:error', function () {
+ called = true;
+ });
+
+ session.fetch = function () {
+ var promise = FauxtonAPI.Deferred();
+ promise.reject();
+ return promise;
+ };
+
+ session.fetchUser();
+
+ assert.ok(called);
+ });
+
+
+ });
+
+});