1+ import { RECEIVE_TEAM_USERS , TEAM_MEMBER_ADD , TEAM_MEMBER_DELETE , FETCH_TEAM_USERS_START } from '../../constants/allTeamsConstants' ;
2+ import { teamUsersReducer , updateObject } from '../teamsTeamMembersReducer'
3+
4+ const teamUsersInitial = {
5+ fetching : false ,
6+ fetched : false ,
7+ teamMembers : [ ] ,
8+ status : 404
9+ } ;
10+
11+ const teamMembers = {
12+ teamMembers : [ {
13+ _id : '1' ,
14+ firstName : 'First name' ,
15+ lastName : 'Last name' ,
16+ jobTitle : [ '' ] ,
17+ teams : [ ] ,
18+ projects : [ 'p1' , 'p2' ]
19+ } ]
20+ } ;
21+
22+ describe ( 'Teams Team Members Reducer' , ( ) => {
23+
24+ it ( 'Should receive team users' , ( ) => {
25+
26+ const expectedState = { teamMembers :{ } , fetching : false , fetched : true , status : '200' } ;
27+ const action = {
28+ payload : { } ,
29+ type :RECEIVE_TEAM_USERS
30+ } ;
31+
32+ const result = teamUsersReducer ( teamMembers , action ) ;
33+ expect ( result ) . toEqual ( expectedState ) ;
34+
35+ } ) ;
36+
37+ it ( 'Should add team member to team' , ( ) => {
38+
39+ const action = {
40+ member : { _id : '2' , firstName : 'First name' , lastName : 'Last name' } ,
41+ type :TEAM_MEMBER_ADD
42+ } ;
43+
44+ const expectedResult = {
45+ teamMembers :[ ...teamMembers . teamMembers , action . member ] ,
46+ fetching : false ,
47+ fetched : true ,
48+ status : '200'
49+ } ;
50+
51+ const result = teamUsersReducer ( teamMembers , action ) ;
52+ expect ( result ) . toEqual ( expectedResult ) ;
53+
54+ } ) ;
55+
56+ it ( 'Should delete member from team' , ( ) => {
57+
58+ const action = {
59+ member : { _id : '2' , firstName : 'First name' , lastName : 'Last name' } ,
60+ type : TEAM_MEMBER_DELETE
61+ } ;
62+
63+ const expectedResult = {
64+ teamMembers :[ ...teamMembers . teamMembers . filter ( item => item . _id !== action . member . _id ) ] ,
65+ fetching : false ,
66+ fetched : true ,
67+ status : '200'
68+ } ;
69+
70+ const result = teamUsersReducer ( teamMembers , action ) ;
71+ expect ( result ) . toEqual ( expectedResult ) ;
72+
73+ } ) ;
74+
75+ it ( 'Should fetch teams user start' , ( ) => {
76+
77+ const expectedResult = updateObject ( teamMembers , { fetching : true , fetched : false } ) ;
78+
79+ const result = teamUsersReducer ( teamMembers , { type : FETCH_TEAM_USERS_START } ) ;
80+ expect ( result ) . toEqual ( expectedResult ) ;
81+
82+ } ) ;
83+
84+ it ( 'Should return initial teamMembers in default case ' , ( ) => {
85+
86+ const result = teamUsersReducer ( teamMembers , { } ) ;
87+ expect ( result ) . toEqual ( teamMembers ) ;
88+
89+ } ) ;
90+
91+ } )
0 commit comments