aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/assets/javascripts/es6_browserified/itineraries/components/StopPoint.js2
-rw-r--r--config/browserify.yml3
-rw-r--r--package.json9
-rw-r--r--spec/javascripts/itineraries/components_spec.js53
4 files changed, 63 insertions, 4 deletions
diff --git a/app/assets/javascripts/es6_browserified/itineraries/components/StopPoint.js b/app/assets/javascripts/es6_browserified/itineraries/components/StopPoint.js
index d92eeff5d..363a1cd4b 100644
--- a/app/assets/javascripts/es6_browserified/itineraries/components/StopPoint.js
+++ b/app/assets/javascripts/es6_browserified/itineraries/components/StopPoint.js
@@ -62,7 +62,7 @@ const StopPoint = (props) => {
<span className='fa fa-arrow-down'></span>
</div>
<div
- className='btn btn-danger'
+ className='btn btn-danger delete'
onClick={props.onDeleteClick}
>
<span className='fa fa-trash'></span>
diff --git a/config/browserify.yml b/config/browserify.yml
new file mode 100644
index 000000000..f6fc5f766
--- /dev/null
+++ b/config/browserify.yml
@@ -0,0 +1,3 @@
+javascript:
+ external:
+ "react/addons": true
diff --git a/package.json b/package.json
index d2e9a56b7..86f9a3081 100644
--- a/package.json
+++ b/package.json
@@ -1,5 +1,5 @@
{
- "name": "something",
+ "name": "stif-boiv",
"dependencies": {
"babel-polyfill": "6.16.0",
"babel-preset-es2015": "6.18.0",
@@ -15,9 +15,12 @@
},
"license": "MIT",
"engines": {
- "node": ">= 0.10"
+ "node": "5.12.0"
},
"devDependencies": {
- "es6-object-assign": "^1.0.3"
+ "enzyme": "2.7.1",
+ "es6-object-assign": "1.0.3",
+ "react-addons-test-utils": "15.3.2",
+ "sinon": "1.17.7"
}
}
diff --git a/spec/javascripts/itineraries/components_spec.js b/spec/javascripts/itineraries/components_spec.js
new file mode 100644
index 000000000..24ead7b5d
--- /dev/null
+++ b/spec/javascripts/itineraries/components_spec.js
@@ -0,0 +1,53 @@
+var React = require('react');
+var shallow = require('enzyme').shallow;
+var mount = require('enzyme').mount;
+var StopPointList = require('es6_browserified/itineraries/components/StopPointList');
+var StopPoint = require('es6_browserified/itineraries/components/StopPoint');
+var sinon = require('sinon')
+
+describe('(Component) StopPointList', () => {
+ it('renders without exploding', () => {
+ const wrapper = shallow(<StopPointList
+ stopPoints = {[]}
+ onChange = {() => {}}
+ onMoveDownClick={() => {}}
+ onMoveUpClick={() => {}}
+ onDeleteClick={() => {}}
+ onSelectChange={() => {}}
+ onSelectMarker={() => {}}
+ onUnselectMarker={() => {}}
+ />);
+ expect(wrapper.length).toEqual(1);
+ });
+
+ it('simulates click events', () => {
+ const state = {
+ text: 'first',
+ index: 0,
+ for_boarding: 'normal',
+ for_alighting: 'normal',
+ user_objectid: '',
+ olMap: {
+ isOpened: false,
+ json: {}
+ }
+ }
+ const onButtonClick = sinon.spy();
+ const wrapper = mount(<StopPoint
+ value = {state}
+ onChange = {() => {}}
+ onMoveDownClick={() => {}}
+ onMoveUpClick={() => {}}
+ onDeleteClick={onButtonClick}
+ onSelectChange={() => {}}
+ onSelectMarker={() => {}}
+ onToggleMap={() => {}}
+ onUnselectMarker={() => {}}
+ first= {true}
+ last= {true}
+ index= {0}
+ />);
+ wrapper.find('.delete').simulate('click');
+ expect(onButtonClick.calledOnce).toEqual(true);
+ });
+});