aboutsummaryrefslogtreecommitdiffstats
path: root/spec
diff options
context:
space:
mode:
authorThomas Haddad2017-03-03 18:08:20 +0100
committerThomas Haddad2017-03-03 18:08:20 +0100
commit284d590435ab85b86d3722eb50ce4e1c3b3abf2c (patch)
treebdbc3d536f986f7bf96d337391e63f2e75c03240 /spec
parent89e744d0f430889acc88a5e0e15c588baa962f6a (diff)
downloadchouette-core-284d590435ab85b86d3722eb50ce4e1c3b3abf2c.tar.bz2
Refs #2521: Add timetable to one or more vj
Signed-off-by: Thomas Shawarma Haddad <thomas.haddad@af83.com>
Diffstat (limited to 'spec')
-rw-r--r--spec/javascripts/vehicle_journeys/actions_spec.js26
-rw-r--r--spec/javascripts/vehicle_journeys/reducers/modal_spec.js37
2 files changed, 60 insertions, 3 deletions
diff --git a/spec/javascripts/vehicle_journeys/actions_spec.js b/spec/javascripts/vehicle_journeys/actions_spec.js
index 3824893e4..56a2e8511 100644
--- a/spec/javascripts/vehicle_journeys/actions_spec.js
+++ b/spec/javascripts/vehicle_journeys/actions_spec.js
@@ -244,3 +244,29 @@ describe('when clicking on validate button inside calendars modal', () => {
expect(actions.editVehicleJourneyCalendars(vehicleJourneys)).toEqual(expectedAction)
})
})
+describe('when clicking on add button inside calendars modal', () => {
+ it('should create an action to add the selected timetable to preselected vjs', () => {
+ const expectedAction = {
+ type: 'ADD_SELECTED_TIMETABLE',
+ }
+ expect(actions.addSelectedTimetable()).toEqual(expectedAction)
+ })
+})
+describe('when using select2 to pick a timetable', () => {
+ it('should create an action to select a timetable inside modal', () => {
+ let selectedTT = {
+ id: 1,
+ objectid: 2,
+ comment: 'test',
+ }
+ const expectedAction = {
+ type: 'SELECT_TT_CALENDAR_MODAL',
+ selectedItem:{
+ id: selectedTT.id,
+ objectid: selectedTT.objectid,
+ comment: selectedTT.comment,
+ }
+ }
+ expect(actions.selectTTCalendarsModal(selectedTT)).toEqual(expectedAction)
+ })
+})
diff --git a/spec/javascripts/vehicle_journeys/reducers/modal_spec.js b/spec/javascripts/vehicle_journeys/reducers/modal_spec.js
index edf55ca65..7c81d729b 100644
--- a/spec/javascripts/vehicle_journeys/reducers/modal_spec.js
+++ b/spec/javascripts/vehicle_journeys/reducers/modal_spec.js
@@ -105,14 +105,45 @@ describe('modal reducer', () => {
).toEqual(Object.assign({}, state, {type: 'calendars_edit', modalProps: modalPropsResult}))
})
+ it('should handle SELECT_TT_CALENDAR_MODAL', () => {
+ let newModalProps = {selectedTimetable : {id: 1}}
+ expect(
+ modalReducer(state, {
+ type: 'SELECT_TT_CALENDAR_MODAL',
+ selectedItem: {id: 1}
+ })
+ ).toEqual(Object.assign({}, state, {modalProps: newModalProps}))
+ })
+
+ it('should handle ADD_SELECTED_TIMETABLE', () => {
+ let fakeTimetables = [{'test': 'test'}, {'test 2': 'test 2'}, {'add': 'add'}]
+ let newTimeTables = [{'test': 'test'}, {'test 2': 'test 2'}, {'add': 'add'}]
+ let fakeVehicleJourneys= [{time_tables: fakeTimetables}, {time_tables: newTimeTables}]
+ state.modalProps.vehicleJourneys = fakeVehicleJourneys
+ state.modalProps.timetables = fakeTimetables
+ state.modalProps.selectedTimetable = {'add': 'add'}
+ let newState = {
+ type: '',
+ modalProps:{
+ vehicleJourneys: [{time_tables: newTimeTables},{time_tables: newTimeTables}],
+ timetables: [{'test': 'test'},{'test 2': 'test 2'},{'add': 'add'}],
+ selectedTimetable: {'add': 'add'}
+ },
+ confirmModal: {}
+ }
+ expect(
+ modalReducer(state, {
+ type: 'ADD_SELECTED_TIMETABLE',
+ })
+ ).toEqual(newState)
+ })
+
it('should handle DELETE_CALENDAR_MODAL', () => {
- // TODO spec more for vehiclejourneys
let deletableTimetable = {'delete': 'delete'}
let fakeTimetables = [{'test': 'test'}, {'test 2': 'test 2'}, deletableTimetable]
let newTimeTables = [{'test': 'test'}, {'test 2': 'test 2'}]
let fakeVehicleJourneys= [{time_tables: fakeTimetables}, {time_tables: fakeTimetables}]
- state.modalProps = {vehicleJourneys : fakeVehicleJourneys, timetables: fakeTimetables }
- let footnote = {}
+ state.modalProps = Object.assign({}, state.modalProps,{vehicleJourneys : fakeVehicleJourneys, timetables: fakeTimetables })
let newState = {
// for the sake of the test, no need to specify the type
type: '',