Skip to content

Commit 659d2a1

Browse files
committed
test component done
1 parent 025d34d commit 659d2a1

7 files changed

Lines changed: 110 additions & 3 deletions

File tree

13 TestComponents/src/components/member/__snapshots__/page.spec.tsx.snap

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// Jest Snapshot v1, https://goo.gl/fbAQLP
22

3-
exports[`/components/member/page specs should retur as expected when definde props 1`] = `
3+
exports[`/components/member/page specs should return as expected when props are passed 1`] = `
44
<Component
55
member={
66
Object {

13 TestComponents/src/components/member/page.spec.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import { MemberEntity } from '../../model';
88

99

1010
describe ('/components/member/page specs',()=>{
11-
it('should retur as expected when definde props',()=>{
11+
it('should return as expected when props are passed',()=>{
1212
//arrange
1313
const props:Props = {
1414
memberId:-1,
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
// Jest Snapshot v1, https://goo.gl/fbAQLP
2+
3+
exports[`components/members/page specs should return as expected when props are passed 1`] = `
4+
<div
5+
className="row"
6+
>
7+
<h2>
8+
Members Page
9+
</h2>
10+
<Link
11+
replace={false}
12+
to="/member"
13+
>
14+
New Member
15+
</Link>
16+
<table
17+
className="table"
18+
>
19+
<thead>
20+
<Component />
21+
</thead>
22+
<tbody />
23+
</table>
24+
</div>
25+
`;

13 TestComponents/src/components/members/__snapshots__/pageContainer.spec.tsx.snap

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
// Jest Snapshot v1, https://goo.gl/fbAQLP
22

3+
exports[`/components/members/pageContainer should call to fetchMembers action creator when call to fetchMembers prop 1`] = `[MockFunction]`;
4+
35
exports[`/components/members/pageContainer should render as spected passing state 1`] = `
46
<MembersPage
57
fetchMembers={[Function]}
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
import * as React from 'react';
2+
import {MembersPage,Props} from './page';
3+
import {shallow} from 'enzyme';
4+
import { createEmptyMembers } from '../../reducers/members';
5+
import * as FetchMembers from './actions/fetchMembers';
6+
import { members } from '../../api/member/mockData';
7+
8+
9+
describe ('components/members/page specs', ()=>{
10+
it('should return as expected when props are passed',()=>{
11+
//arrange
12+
const props: Props = {
13+
members: createEmptyMembers(),
14+
fetchMembers: ()=>{}
15+
}
16+
//act
17+
const component = shallow (
18+
<MembersPage {...props} />
19+
)
20+
//assert
21+
22+
expect(component).toMatchSnapshot();
23+
})
24+
25+
it('should display members when fetchMembers is used', () => {
26+
//arrange
27+
28+
const props: Props = {
29+
members: createEmptyMembers(),
30+
fetchMembers: jest.fn(),
31+
}
32+
33+
34+
const fetchActionStub = jest.spyOn(FetchMembers, 'fetchMembersAction')
35+
.mockImplementation(()=>(
36+
props.members
37+
));
38+
39+
40+
const component = shallow(
41+
<MembersPage {...props} />,
42+
);
43+
44+
45+
component.find('member');
46+
47+
//assert
48+
expect(props.fetchMembers).toHaveBeenCalled();
49+
50+
});
51+
})

13 TestComponents/src/components/members/page.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { MemberEntity } from '../../model';
44
import { MemberHeader } from './memberHeader';
55
import { MemberRow } from './memberRow';
66

7-
interface Props {
7+
export interface Props {
88
members: MemberEntity[];
99
fetchMembers(): void;
1010
}

13 TestComponents/src/components/members/pageContainer.spec.tsx

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import { createEmptyMembers } from '../../reducers/members';
66
import { createEmptyMember } from '../../reducers/member';
77
import { createEmptyMemberErrors } from '../../reducers/memberErrors';
88
import { MembersPageContainer } from './pageContainer';
9+
import * as FetchMembers from './actions/fetchMembers';
910

1011
const getMockStore = configureStore();
1112

@@ -29,4 +30,32 @@ describe('/components/members/pageContainer', () => {
2930
//assert
3031
expect(component).toMatchSnapshot();
3132
});
33+
it('should call to fetchMembers action creator when call to fetchMembers prop', () => {
34+
// Arrange
35+
const state = {
36+
members: createEmptyMembers(),
37+
member: createEmptyMember(),
38+
memberErrors: createEmptyMemberErrors()
39+
} as State;
40+
41+
42+
const store = getMockStore(state);
43+
const fetchMembersStub = jest.spyOn(FetchMembers, 'fetchMembersAction')
44+
.mockImplementation(() => ({
45+
type: 'test action type',
46+
}));
47+
48+
// Act
49+
const component = shallow(
50+
<MembersPageContainer
51+
/>,
52+
{
53+
context: { store },
54+
},
55+
);
56+
57+
58+
// Assert
59+
expect(fetchMembersStub).toMatchSnapshot();
60+
});
3261
});

0 commit comments

Comments
 (0)