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 2017/05/09 07:25:14 UTC
[couchdb-fauxton] branch master updated: (#920) - Database
Pagination updates after receiving new store
This is an automated email from the ASF dual-hosted git repository.
garren pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/couchdb-fauxton.git
The following commit(s) were added to refs/heads/master by this push:
new eb567e9 (#920) - Database Pagination updates after receiving new store
eb567e9 is described below
commit eb567e930f487e4ab4e83b22786f1188d26a51eb
Author: Ryan Millay <ry...@gmail.com>
AuthorDate: Tue May 9 03:25:11 2017 -0400
(#920) - Database Pagination updates after receiving new store
* component updates properly when new store prop
---
.../databases/__tests__/databasepagination.test.js | 47 ++++++++++++++++++++++
app/addons/databases/components.js | 14 +++++--
2 files changed, 57 insertions(+), 4 deletions(-)
diff --git a/app/addons/databases/__tests__/databasepagination.test.js b/app/addons/databases/__tests__/databasepagination.test.js
new file mode 100644
index 0000000..4061fa4
--- /dev/null
+++ b/app/addons/databases/__tests__/databasepagination.test.js
@@ -0,0 +1,47 @@
+// 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.
+
+import Stores from "../stores";
+import React from 'react';
+import ReactDOM from 'react-dom';
+import DatabaseComponents from "../components";
+import "../../documents/base";
+import DatabaseActions from "../actions";
+import {mount} from 'enzyme';
+
+const store = Stores.databasesStore;
+
+describe('Database Pagination', function () {
+
+ it('renders correct pagination upon store change', () => {
+ DatabaseActions.updateDatabases({
+ dbList: ['db1'],
+ databaseDetails: [{db_name: 'db1', doc_count: 0, doc_del_count: 0}],
+ failedDbs: [],
+ fullDbList: ['db1']
+ });
+
+ const tempStore = {
+ getTotalAmountOfDatabases: () => { return 10; },
+ getPage: () => { return 1; },
+ on: () => {}
+ };
+
+ const pagination = mount(<DatabaseComponents.DatabasePagination store={tempStore} />);
+ expect(pagination.find('.all-db-footer__total-db-count').text()).toMatch('10');
+
+ // switch stores
+ pagination.setProps({store: store});
+ expect(pagination.find('.all-db-footer__total-db-count').text()).toMatch('1');
+ });
+
+});
diff --git a/app/addons/databases/components.js b/app/addons/databases/components.js
index 04d6751..66eba36 100644
--- a/app/addons/databases/components.js
+++ b/app/addons/databases/components.js
@@ -307,8 +307,8 @@ var DatabasePagination = React.createClass({
};
},
- getStoreState () {
- const {store} = this.props;
+ getStoreState (props) {
+ const {store} = props;
return {
totalAmountOfDatabases: store.getTotalAmountOfDatabases(),
@@ -317,7 +317,7 @@ var DatabasePagination = React.createClass({
},
getInitialState () {
- return this.getStoreState();
+ return this.getStoreState(this.props);
},
componentDidMount () {
@@ -326,13 +326,19 @@ var DatabasePagination = React.createClass({
store.on('change', this.onChange, this);
},
+ componentWillReceiveProps (nextProps) {
+ this.setState(this.getStoreState(nextProps));
+ const {store} = nextProps;
+ store.on('change', this.onChange, this);
+ },
+
componentWillUnmount () {
const {store} = this.props;
store.off('change', this.onChange, this);
},
onChange () {
- this.setState(this.getStoreState());
+ this.setState(this.getStoreState(this.props));
},
render () {
--
To stop receiving notification emails like this one, please contact
['"commits@couchdb.apache.org" <co...@couchdb.apache.org>'].