Skip to content

Commit

Permalink
(#920) - Database Pagination updates after receiving new store
Browse files Browse the repository at this point in the history
* component updates properly when new store prop
  • Loading branch information
millayr authored and garrensmith committed May 9, 2017
1 parent 3cdcd46 commit eb567e9
Show file tree
Hide file tree
Showing 2 changed files with 57 additions and 4 deletions.
47 changes: 47 additions & 0 deletions app/addons/databases/__tests__/databasepagination.test.js
Original file line number Diff line number Diff line change
@@ -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');
});

});
14 changes: 10 additions & 4 deletions app/addons/databases/components.js
Original file line number Diff line number Diff line change
Expand Up @@ -307,8 +307,8 @@ var DatabasePagination = React.createClass({
};
},

getStoreState () {
const {store} = this.props;
getStoreState (props) {
const {store} = props;

return {
totalAmountOfDatabases: store.getTotalAmountOfDatabases(),
Expand All @@ -317,7 +317,7 @@ var DatabasePagination = React.createClass({
},

getInitialState () {
return this.getStoreState();
return this.getStoreState(this.props);
},

componentDidMount () {
Expand All @@ -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 () {
Expand Down

0 comments on commit eb567e9

Please sign in to comment.