diff options
| author | Thomas Haddad | 2017-01-09 11:39:36 +0100 |
|---|---|---|
| committer | Thomas Haddad | 2017-01-09 11:40:43 +0100 |
| commit | 7b57387a03a5f100320f91d7c8cb25e29d126815 (patch) | |
| tree | 9395ce22242e561052896995df5273c876c787da | |
| parent | b6c227a9347d21dfc7226b734ac608346d973c4f (diff) | |
| download | chouette-core-7b57387a03a5f100320f91d7c8cb25e29d126815.tar.bz2 | |
Add pagination spec and move totalCount into pagination for further and easier updates
Signed-off-by: Thomas Shawarma Haddad <thomas.haddad@af83.com>
| -rw-r--r-- | app/assets/javascripts/es6_browserified/journey_patterns/containers/Navigate.js | 4 | ||||
| -rw-r--r-- | app/assets/javascripts/es6_browserified/journey_patterns/containers/SaveJourneyPattern.js | 2 | ||||
| -rw-r--r-- | app/assets/javascripts/es6_browserified/journey_patterns/index.js | 6 | ||||
| -rw-r--r-- | app/assets/javascripts/es6_browserified/journey_patterns/reducers/index.js | 2 | ||||
| -rw-r--r-- | app/assets/javascripts/es6_browserified/journey_patterns/reducers/pagination.js | 8 | ||||
| -rw-r--r-- | app/assets/javascripts/es6_browserified/journey_patterns/reducers/totalCount.js | 8 | ||||
| -rw-r--r-- | spec/javascripts/journey_patterns/reducers/journey_patterns_spec.js (renamed from spec/javascripts/journey_patterns/reducers_spec.js) | 0 | ||||
| -rw-r--r-- | spec/javascripts/journey_patterns/reducers/pagination_spec.js | 77 |
8 files changed, 88 insertions, 19 deletions
diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/containers/Navigate.js b/app/assets/javascripts/es6_browserified/journey_patterns/containers/Navigate.js index 0195ce43d..1c9f7113f 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/containers/Navigate.js +++ b/app/assets/javascripts/es6_browserified/journey_patterns/containers/Navigate.js @@ -38,8 +38,8 @@ let Navigate = ({ dispatch, journeyPatterns, page, length, onOpenConfirmModal }) const mapStateToProps = (state) => { return { journeyPatterns: state.journeyPatterns, - page: state.pagination, - length: state.totalCount, + page: state.pagination.page, + length: state.pagination.totalCount, confirmModalActions: state.modal.confirmActions } } diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/containers/SaveJourneyPattern.js b/app/assets/javascripts/es6_browserified/journey_patterns/containers/SaveJourneyPattern.js index 1fdc385a5..041219f0d 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/containers/SaveJourneyPattern.js +++ b/app/assets/javascripts/es6_browserified/journey_patterns/containers/SaveJourneyPattern.js @@ -22,7 +22,7 @@ let SaveJourneyPattern = ({ dispatch, journeyPatterns, page }) => { const mapStateToProps = (state) => { return { journeyPatterns: state.journeyPatterns, - page: state.pagination + page: state.pagination.page } } diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/index.js b/app/assets/javascripts/es6_browserified/journey_patterns/index.js index 1b3c3238c..449cd3202 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/index.js +++ b/app/assets/javascripts/es6_browserified/journey_patterns/index.js @@ -13,8 +13,10 @@ var App = require('./components/App') var initialState = { journeyPatterns: [], - pagination: 1, - totalCount: window.journeyPatternLength, + pagination: { + page : 1, + totalCount: window.journeyPatternLength + }, modal: { type: '', modalProps: {}, diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/reducers/index.js b/app/assets/javascripts/es6_browserified/journey_patterns/reducers/index.js index 71ff8b6f5..9e1d15e08 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/reducers/index.js +++ b/app/assets/javascripts/es6_browserified/journey_patterns/reducers/index.js @@ -1,13 +1,11 @@ var combineReducers = require('redux').combineReducers var journeyPatterns = require('./journeyPatterns') var pagination = require('./pagination') -var totalCount = require('./totalCount') var modal = require('./modal') const journeyPatternsApp = combineReducers({ journeyPatterns, pagination, - totalCount, modal }) diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/reducers/pagination.js b/app/assets/javascripts/es6_browserified/journey_patterns/reducers/pagination.js index 0103fe248..a17e9f292 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/reducers/pagination.js +++ b/app/assets/javascripts/es6_browserified/journey_patterns/reducers/pagination.js @@ -1,13 +1,13 @@ -const pagination = (state = 0, action) => { +const pagination = (state = {}, action) => { switch (action.type) { case 'GO_TO_PREVIOUS_PAGE': if (action.currentPage > 1){ - return state - 1 + return Object.assign({}, state, {page : action.currentPage - 1}) } return state case 'GO_TO_NEXT_PAGE': - if (window.journeyPatternLength - (action.currentPage * 12) > 0){ - return state + 1 + if (state.totalCount - (action.currentPage * 12) > 0){ + return Object.assign({}, state, {page : action.currentPage + 1}) } return state default: diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/reducers/totalCount.js b/app/assets/javascripts/es6_browserified/journey_patterns/reducers/totalCount.js deleted file mode 100644 index 830de28aa..000000000 --- a/app/assets/javascripts/es6_browserified/journey_patterns/reducers/totalCount.js +++ /dev/null @@ -1,8 +0,0 @@ -const totalCount = (state = 0, action) => { - switch (action.type) { - default: - return state - } -} - -module.exports = totalCount diff --git a/spec/javascripts/journey_patterns/reducers_spec.js b/spec/javascripts/journey_patterns/reducers/journey_patterns_spec.js index 422c97fee..422c97fee 100644 --- a/spec/javascripts/journey_patterns/reducers_spec.js +++ b/spec/javascripts/journey_patterns/reducers/journey_patterns_spec.js diff --git a/spec/javascripts/journey_patterns/reducers/pagination_spec.js b/spec/javascripts/journey_patterns/reducers/pagination_spec.js new file mode 100644 index 000000000..a99e8ff85 --- /dev/null +++ b/spec/javascripts/journey_patterns/reducers/pagination_spec.js @@ -0,0 +1,77 @@ +var reducer = require('es6_browserified/journey_patterns/reducers/pagination') +let state = { + page : 2, + totalCount : 25 +} +let currentPage = 2 +const dispatch = function(){} + +describe('pagination reducer, given parameters allowing page change', () => { + + it('should return the initial state', () => { + expect( + reducer(undefined, {}) + ).toEqual({}) + }) + + it('should handle GO_TO_NEXT_PAGE and change state', () => { + expect( + reducer(state, { + type: 'GO_TO_NEXT_PAGE', + dispatch, + currentPage, + nextPage : true + }) + ).toEqual(Object.assign({}, state, {page : state.page + 1})) + }) + + it('should return GO_TO_PREVIOUS_PAGE and change state', () => { + expect( + reducer(state, { + type: 'GO_TO_PREVIOUS_PAGE', + dispatch, + currentPage, + nextPage : false + }) + ).toEqual(Object.assign({}, state, {page : state.page - 1})) + }) +}) + + +describe('pagination reducer, given parameters not allowing to go to previous page', () => { + + beforeEach(()=>{ + state.page = 1 + currentPage = 1 + }) + + it('should return GO_TO_PREVIOUS_PAGE and not change state', () => { + expect( + reducer(state, { + type: 'GO_TO_PREVIOUS_PAGE', + dispatch, + currentPage, + nextPage : false + }) + ).toEqual(state) + }) +}) + +describe('pagination reducer, given parameters not allowing to go to next page', () => { + + beforeEach(()=>{ + state.page = 3 + currentPage = 3 + }) + + it('should return GO_TO_NEXT_PAGE and not change state', () => { + expect( + reducer(state, { + type: 'GO_TO_NEXT_PAGE', + dispatch, + currentPage, + nextPage : false + }) + ).toEqual(state) + }) +}) |
