@@ -11,7 +11,7 @@ describe('Testing componentReducer functionality', function () {
11
11
// TEST 'ADD COMPONENT'
12
12
describe ( 'ADD COMPONENT reducer' , ( ) => {
13
13
it ( 'should add new reuseable component to state' , ( ) => {
14
- const action = {
14
+ const action : Action = {
15
15
type : 'ADD COMPONENT' ,
16
16
payload : {
17
17
componentName : "TestRegular" ,
@@ -30,7 +30,7 @@ describe('Testing componentReducer functionality', function () {
30
30
// TEST 'ADD CHILD'
31
31
describe ( 'ADD CHILD reducer' , ( ) => {
32
32
it ( 'should add child component to top-level component' , ( ) => {
33
- const action = {
33
+ const action : Action = {
34
34
type : 'ADD CHILD' ,
35
35
payload : {
36
36
type : 'Component' ,
@@ -40,40 +40,74 @@ describe('Testing componentReducer functionality', function () {
40
40
}
41
41
// switch focus to very first root component
42
42
state . canvasFocus = { componentId : 1 , childId : null } ;
43
- console . log ( state ) ;
44
43
state = reducer ( state , action ) ;
45
44
const newParent = state . components [ 0 ] ;
46
45
// expect new parent's children array to have length 1
47
46
expect ( newParent . children . length ) . toEqual ( 1 ) ;
48
47
// expect new child to have type 'Component'
49
- console . log ( 'new child ' , newParent . children [ 0 ] ) ;
50
48
expect ( newParent . children [ 0 ] . type ) . toEqual ( 'Component' ) ;
51
49
const addedChild = state . components . find ( comp => comp . id === newParent . children [ 0 ] . typeId ) ;
52
50
// expect new child typeId to correspond to component with name 'TestRegular'
53
51
expect ( addedChild . name ) . toEqual ( 'TestRegular' ) ;
54
52
} )
55
53
} )
56
-
54
+
55
+ // TEST 'CHANGE POSITION'
56
+ describe ( 'CHANGE POSITION reducer ' , ( ) => {
57
+ it ( 'should move position of an instance' , ( ) => {
58
+ const actionHtml : Action = {
59
+ type : 'ADD CHILD' ,
60
+ payload : {
61
+ type : 'HTML Element' ,
62
+ typeId : 9 ,
63
+ childId : null
64
+ }
65
+ }
66
+ state = reducer ( state , actionHtml ) ;
67
+ const actionChangePos : Action = {
68
+ type : 'CHANGE POSITION' ,
69
+ payload : {
70
+ currentChildId : 1 ,
71
+ newParentChildId : null
72
+ }
73
+ }
74
+ state = reducer ( state , actionChangePos ) ;
75
+ const changeParent = state . components . find ( comp => comp . id === state . canvasFocus . componentId ) ;
76
+ const changeParentChildLength = changeParent . children . length ;
77
+ // expect last child of parent to be moved Component element
78
+ expect ( changeParent . children [ changeParentChildLength - 1 ] . type ) . toEqual ( 'Component' ) ;
79
+ // expect last child of parent to have current child ID of payload
80
+ expect ( changeParent . children [ changeParentChildLength - 1 ] . childId ) . toEqual ( 1 ) ;
81
+ } )
82
+ } )
83
+
57
84
// TEST 'DELETE CHILD'
58
85
describe ( 'DELETE CHILD reducer' , ( ) => {
59
86
it ( 'should delete child of focused top-level component' , ( ) => {
60
- console . log ( 'state before delete child ' , state ) ;
87
+ // canvas still focused on childId: 2, which is an HTML element
88
+ const action : Action = {
89
+ type : 'DELETE CHILD'
90
+ }
91
+ state = reducer ( state , action ) ;
92
+ // expect only one remaining child
93
+ const delParent = state . components . find ( comp => comp . id === state . canvasFocus . componentId ) ;
94
+ // expect remaining child to have type 'Component'
95
+ expect ( delParent . children . length ) . toEqual ( 1 ) ;
96
+ expect ( delParent . children [ delParent . children . length - 1 ] . type ) . toEqual ( 'Component' ) ;
61
97
} )
62
98
} )
63
99
64
100
// TEST 'CHANGE FOCUS'
65
101
describe ( 'CHANGE FOCUS reducer' , ( ) => {
66
102
it ( 'should change focus to specified component' , ( ) => {
67
- const action = {
103
+ const action : Action = {
68
104
type : 'CHANGE FOCUS' ,
69
105
payload : {
70
106
componentId : 2 ,
71
107
childId : null
72
108
}
73
109
}
74
- console . log ( 'before change focus ' , state . canvasFocus ) ;
75
110
state = reducer ( state , action ) ;
76
- console . log ( 'after change focus ' , state . canvasFocus ) ;
77
111
expect ( state . canvasFocus . componentId ) . toEqual ( 2 ) ;
78
112
expect ( state . canvasFocus . childId ) . toEqual ( null ) ;
79
113
} )
@@ -82,7 +116,7 @@ describe('Testing componentReducer functionality', function () {
82
116
// TEST 'UPDATE CSS'
83
117
describe ( 'UPDATE CSS reducer' , ( ) => {
84
118
it ( 'should add style to focused component' , ( ) => {
85
- const action = {
119
+ const action : Action = {
86
120
type : 'UPDATE CSS' ,
87
121
payload : {
88
122
style : {
@@ -100,7 +134,7 @@ describe('Testing componentReducer functionality', function () {
100
134
// TEST 'UPDATE PROJECT NAME'
101
135
describe ( 'UPDATE PROJECT NAME reducer' , ( ) => {
102
136
it ( 'should update project with specified name' , ( ) => {
103
- const action = {
137
+ const action : Action = {
104
138
type : 'UPDATE PROJECT NAME' ,
105
139
payload : 'TESTNAME'
106
140
}
@@ -113,7 +147,7 @@ describe('Testing componentReducer functionality', function () {
113
147
// TEST 'CHANGE PROJECT TYPE'
114
148
describe ( 'CHANGE PROJECT TYPE reducer' , ( ) => {
115
149
it ( 'should change project type to specified type' , ( ) => {
116
- const action = {
150
+ const action : Action = {
117
151
type : 'CHANGE PROJECT TYPE' ,
118
152
payload : {
119
153
projectType : 'Classic React'
@@ -127,7 +161,7 @@ describe('Testing componentReducer functionality', function () {
127
161
// TEST 'RESET STATE'
128
162
describe ( 'RESET STATE reducer' , ( ) => {
129
163
it ( 'should reset project to initial state' , ( ) => {
130
- const action = {
164
+ const action : Action = {
131
165
type : 'RESET STATE'
132
166
}
133
167
state = reducer ( state , action ) ;
0 commit comments