@@ -21,9 +21,156 @@ describe('Module', () => {
21
21
} )
22
22
23
23
it ( 'get namespacer: namespace option is true' , ( ) => {
24
- const module = new Module ( {
24
+ let module = new Module ( {
25
25
namespaced : true
26
26
} )
27
27
expect ( module . namespaced ) . toBe ( true )
28
+
29
+ module = new Module ( {
30
+ namespaced : 100
31
+ } )
32
+ expect ( module . namespaced ) . toBe ( true )
33
+ } )
34
+
35
+ it ( 'add child method' , ( ) => {
36
+ const module = new Module ( { } )
37
+
38
+ module . addChild ( 'v1' , new Module ( { } ) )
39
+ module . addChild ( 'v2' , new Module ( { } ) )
40
+ expect ( Object . keys ( module . _children ) ) . toEqual ( [ 'v1' , 'v2' ] )
41
+ } )
42
+
43
+ it ( 'remove child method' , ( ) => {
44
+ const module = new Module ( { } )
45
+
46
+ module . addChild ( 'v1' , new Module ( { } ) )
47
+ module . addChild ( 'v2' , new Module ( { } ) )
48
+ expect ( Object . keys ( module . _children ) ) . toEqual ( [ 'v1' , 'v2' ] )
49
+ module . removeChild ( 'v2' )
50
+ module . removeChild ( 'abc' )
51
+ expect ( Object . keys ( module . _children ) ) . toEqual ( [ 'v1' ] )
52
+ } )
53
+
54
+ it ( 'get child method' , ( ) => {
55
+ const module = new Module ( { } )
56
+
57
+ const subModule1 = new Module ( { state : { name : 'v1' } } )
58
+ const subModule2 = new Module ( { state : { name : 'v2' } } )
59
+ module . addChild ( 'v1' , subModule1 )
60
+ module . addChild ( 'v2' , subModule2 )
61
+ expect ( module . getChild ( 'v2' ) ) . toEqual ( subModule2 )
62
+ expect ( module . getChild ( 'v1' ) ) . toEqual ( subModule1 )
63
+ } )
64
+
65
+ it ( 'update method' , ( ) => {
66
+ const originObject = {
67
+ state : {
68
+ name : 'vuex' ,
69
+ version : '2.x.x'
70
+ } ,
71
+ namespaced : true ,
72
+ actions : {
73
+ a1 : ( ) => { } ,
74
+ a2 : ( ) => { }
75
+ } ,
76
+ mutations : {
77
+ m1 : ( ) => { } ,
78
+ m2 : ( ) => { }
79
+ } ,
80
+ getters : {
81
+ g1 : ( ) => { } ,
82
+ g2 : ( ) => { }
83
+ }
84
+ }
85
+ const newObject = {
86
+ actions : {
87
+ a3 : ( ) => { } ,
88
+ a4 : ( ) => { }
89
+ } ,
90
+ mutations : {
91
+ m3 : ( ) => { } ,
92
+ m2 : ( ) => { }
93
+ } ,
94
+ getters : {
95
+ g1 : ( ) => { }
96
+ } ,
97
+ namespaced : false ,
98
+ state : {
99
+ name : 'vuex' ,
100
+ version : '3.x.x'
101
+ }
102
+ }
103
+ const module = new Module ( originObject )
104
+
105
+ expect ( module . _rawModule ) . toEqual ( originObject )
106
+
107
+ module . update ( newObject )
108
+ expect ( module . _rawModule . actions ) . toEqual ( newObject . actions )
109
+ expect ( module . _rawModule . mutations ) . toEqual ( newObject . mutations )
110
+ expect ( module . _rawModule . getters ) . toEqual ( newObject . getters )
111
+ expect ( module . _rawModule . namespaced ) . toEqual ( newObject . namespaced )
112
+ expect ( module . _rawModule . state ) . toEqual ( originObject . state )
113
+ } )
114
+
115
+ it ( 'forEachChild method' , ( ) => {
116
+ const module = new Module ( { } )
117
+ const module1 = new Module ( { } )
118
+ const module2 = new Module ( { } )
119
+
120
+ module . addChild ( 'v1' , module1 )
121
+ module . addChild ( 'v2' , module2 )
122
+
123
+ const collections = [ ]
124
+ module . forEachChild ( ( item ) => { collections . push ( item ) } )
125
+ expect ( collections . length ) . toEqual ( 2 )
126
+ expect ( collections ) . toEqual ( [ module2 , module1 ] )
127
+ } )
128
+
129
+ it ( 'forEachAction method' , ( ) => {
130
+ const action1 = ( ) => { }
131
+ const action2 = ( ) => { }
132
+
133
+ const module = new Module ( {
134
+ actions : {
135
+ action1, action2
136
+ }
137
+ } )
138
+
139
+ const collections = [ ]
140
+ module . forEachAction ( ( item ) => { collections . push ( item ) } )
141
+ expect ( collections . length ) . toEqual ( 2 )
142
+ expect ( collections ) . toEqual ( [ action1 , action2 ] )
143
+ } )
144
+
145
+ it ( 'forEachGetter method' , ( ) => {
146
+ const getter1 = ( ) => { }
147
+ const getter2 = ( ) => { }
148
+
149
+ const module = new Module ( {
150
+ getters : {
151
+ getter1, getter2
152
+ }
153
+ } )
154
+
155
+ const collections = [ ]
156
+ module . forEachGetter ( ( item ) => { collections . push ( item ) } )
157
+ expect ( collections . length ) . toEqual ( 2 )
158
+ expect ( collections ) . toEqual ( [ getter1 , getter2 ] )
159
+ } )
160
+
161
+ it ( 'forEachMutation method' , ( ) => {
162
+ const mutation1 = ( ) => { }
163
+ const mutation2 = ( ) => { }
164
+
165
+ const module = new Module ( {
166
+ mutations : {
167
+ mutation1, mutation2
168
+ }
169
+ } )
170
+
171
+ const collections = [ ]
172
+ module . forEachMutation ( ( item ) => { collections . push ( item ) } )
173
+ expect ( collections . length ) . toEqual ( 2 )
174
+ expect ( collections ) . toEqual ( [ mutation1 , mutation2 ] )
28
175
} )
29
176
} )
0 commit comments