Skip to content

Commit 10607bf

Browse files
Merge pull request #40 from highideas/develop
Bug fix
2 parents 178978c + 577ea57 commit 10607bf

File tree

15 files changed

+146
-46
lines changed

15 files changed

+146
-46
lines changed

app/components/Area/Create/Area.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,13 @@ class Area extends React.Component
2121
e.preventDefault();
2222

2323
let form = e.target;
24+
let parent = '';
25+
if (form.querySelector('[name="parent"]')) {
26+
parent = form.querySelector('[name="parent"]').value;
27+
}
2428
let formData = {
2529
_id : this.refs.area.value,
26-
parent: form.querySelector('[name="parent"]').value
30+
parent: parent
2731
};
2832

2933
this.setState({area: formData});

app/components/Area/List/Area.js

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ class Area extends React.Component
1313
areas : null,
1414
error : ''
1515
};
16+
this.showError = this.showError.bind(this);
17+
this.listAreas = this.listAreas.bind(this);
1618
this.getAreas();
1719
}
1820

@@ -27,15 +29,11 @@ class Area extends React.Component
2729
});
2830
}
2931

30-
render() {
32+
listAreas() {
3133
if (this.state.error) {
32-
return (<Error error={this.state.error} />);
33-
}
34-
if (!this.state.areas) {
35-
return <div>Loading...</div>;
34+
return '';
3635
}
37-
const areaList = this.state.areas.map((area, key) => {
38-
let line = ((key % 2) ? 'is-success' : 'is-info');
36+
return this.state.areas.map((area, key) => {
3937
return (
4038
<tr key={key}>
4139
<td>
@@ -44,10 +42,24 @@ class Area extends React.Component
4442
</tr>
4543
);
4644
});
45+
}
46+
47+
showError() {
48+
if (this.state.error) {
49+
return (<Error error={this.state.error} />);
50+
}
51+
return '';
52+
}
53+
54+
render() {
55+
if (!this.state.areas && !this.state.error) {
56+
return <div>Loading...</div>;
57+
}
4758

4859
return (
4960
<section className="">
5061
<div className="container hello">
62+
{ this.showError() }
5163
<div className="level header">
5264
<div className="level-left">
5365
<h2 className="title is-2">Areas</h2>
@@ -63,7 +75,7 @@ class Area extends React.Component
6375
</div>
6476
<table className="table">
6577
<tbody>
66-
{ areaList }
78+
{ this.listAreas() }
6779
</tbody>
6880
</table>
6981
</div>

app/components/Client/List/Client.js

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ class Client extends React.Component
1212
clients : null,
1313
error : ''
1414
};
15+
this.showError = this.showError.bind(this);
16+
this.listClients = this.listClients.bind(this);
1517
this.getClients();
1618
}
1719

@@ -26,14 +28,18 @@ class Client extends React.Component
2628
});
2729
}
2830

29-
render() {
31+
showError() {
3032
if (this.state.error) {
3133
return (<Error error={this.state.error} />);
3234
}
33-
if (!this.state.clients) {
34-
return <div>Loading...</div>;
35+
return '';
36+
}
37+
38+
listClients() {
39+
if (this.state.error) {
40+
return '';
3541
}
36-
const clientList = this.state.clients.map((client, key) => {
42+
return this.state.clients.map((client, key) => {
3743
let line = ((key % 2) ? 'is-success' : 'is-info');
3844
return (
3945
<tr key={key}>
@@ -58,10 +64,17 @@ class Client extends React.Component
5864
</tr>
5965
);
6066
});
67+
}
68+
69+
render() {
70+
if (!this.state.clients && !this.state.error) {
71+
return <div>Loading...</div>;
72+
}
6173

6274
return (
6375
<section className="">
6476
<div className="container hello">
77+
{ this.showError() }
6578
<div className="level header">
6679
<div className="level-left">
6780
<h2 className="title is-2">iClient</h2>
@@ -77,7 +90,7 @@ class Client extends React.Component
7790
</div>
7891
<table className="table">
7992
<tbody>
80-
{ clientList }
93+
{ this.listClients() }
8194
</tbody>
8295
</table>
8396
</div>

app/components/Client/Save/Client.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,9 @@ class Client extends React.Component
164164
name='area'
165165
value={ this.state.client.area }
166166
onChange={this.handleChange}
167+
required="true"
167168
>
169+
<option value="">Select One</option>
168170
{
169171
this.state.areas.map((area, key) => (
170172
<option value={ area._id } key={ key }>{ area._id}</option>

app/components/Visit/Show/Visit.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { Link } from 'react-router'
44
import VisitService from 'services/Visit'
55
import Error from 'components/Error/Error'
66
import styles from 'components/Visit/Show/styles.css'
7-
import DateHelper from 'helpers/DateHelper'
7+
import DateHelper from 'helpers/Date'
88

99
class Visit extends React.Component
1010
{
@@ -51,7 +51,7 @@ class Visit extends React.Component
5151
<strong>{this.state.visit.client.name}</strong>
5252
</h3>
5353
<p className="tagline">
54-
<strong>Visit Date: </strong>{DateHelper.formateDate(this.state.visit.visit_date)}
54+
<strong>Visit Date: </strong>{DateHelper.format(this.state.visit.visit_date)}
5555
</p>
5656
<p className="tagline">
5757
<strong>Address: </strong>{this.state.visit.client.address}

app/components/Visit/Visit.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import React from 'react';
22
import { Link } from 'react-router'
3+
import DateHelper from 'helpers/Date'
34

45
class Visit extends React.Component
56
{
@@ -15,7 +16,7 @@ class Visit extends React.Component
1516
return this.state.visits.map((areaVisit, key) => (
1617
<tr key={ key } >
1718
<td>{ areaVisit.visit.client.name }</td>
18-
<td>{ areaVisit.visit.visit_date }</td>
19+
<td>{ DateHelper.format(areaVisit.visit.visit_date) }</td>
1920
<td className="is-icon">
2021
<Link to={ `/visit/${areaVisit.visit._id}` } >
2122
<i className="fa fa-info-circle" />

app/helpers/Date.js

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
const Date = {
2+
format(date) {
3+
let dateObj = new window.Date(date);
4+
let options = {
5+
day: '2-digit',
6+
month: '2-digit',
7+
year: 'numeric'
8+
}
9+
return dateObj.toGMTString();
10+
}
11+
}
12+
13+
export default Date;

app/helpers/DateHelper.js

Lines changed: 0 additions & 13 deletions
This file was deleted.

tests/Create.Area.test.js

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -256,5 +256,50 @@ describe('Test Create Area', () => {
256256
}
257257
}, 0);
258258
});
259+
260+
it('Should return data on submit when first time using areas', (done) => {
261+
262+
let areaInput;
263+
let areaSelected;
264+
let Area = require('components/Area/Create/Area').default;
265+
let mockAdapter = new MockAdapter(axios);
266+
let component = mount(
267+
<Area />,
268+
{ context }
269+
);
270+
let expected = {
271+
_id : 'Test',
272+
parent : '',
273+
}
274+
275+
mockAdapter
276+
.onGet(HOST + '/api/v1/area').reply(404, {error: "Not Found"})
277+
.onPost(HOST + '/api/v1/area').reply(201)
278+
279+
setTimeout(() => {
280+
281+
try {
282+
283+
let inputs = {
284+
area : component.find('input'),
285+
parent : component.find('select'),
286+
}
287+
288+
areaInput = component.find('input');
289+
areaInput.node.value = 'Test';
290+
areaInput.simulate('change', areaInput);
291+
292+
expect(component.find('.is-danger').text()).toEqual('Not Found');
293+
294+
component.find('form').simulate('submit', { target: component.find('form').get(0) });
295+
296+
expect(component.state().area).toEqual(expected);
297+
expect(component.state().error).toEqual('');
298+
done();
299+
} catch (e) {
300+
console.log(e);
301+
}
302+
}, 25);
303+
});
259304
});
260305

tests/DateHelper.test.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
2+
describe('Test DateHelper', () => {
3+
4+
const DateHelper = require('helpers/Date').default;
5+
6+
it ('should return date on format GMT', (done) => {
7+
let date = DateHelper.format('2016-10-19T13:30:13.329Z');
8+
expect(date).toEqual("Wed, 19 Oct 2016 13:30:13 GMT");
9+
done();
10+
});
11+
});

0 commit comments

Comments
 (0)