aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Haddad2017-01-09 11:39:36 +0100
committerThomas Haddad2017-01-09 11:40:43 +0100
commit7b57387a03a5f100320f91d7c8cb25e29d126815 (patch)
tree9395ce22242e561052896995df5273c876c787da
parentb6c227a9347d21dfc7226b734ac608346d973c4f (diff)
downloadchouette-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.js4
-rw-r--r--app/assets/javascripts/es6_browserified/journey_patterns/containers/SaveJourneyPattern.js2
-rw-r--r--app/assets/javascripts/es6_browserified/journey_patterns/index.js6
-rw-r--r--app/assets/javascripts/es6_browserified/journey_patterns/reducers/index.js2
-rw-r--r--app/assets/javascripts/es6_browserified/journey_patterns/reducers/pagination.js8
-rw-r--r--app/assets/javascripts/es6_browserified/journey_patterns/reducers/totalCount.js8
-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.js77
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)
+ })
+})