@@ -139,6 +139,50 @@ func TestModule_Patch(t *testing.T) {
139139 r .Equal (t , map [string ]any {}, v .Export ())
140140 },
141141 },
142+ {
143+ name : "patch array" ,
144+ test : func (t * testing.T , vm * goja.Runtime , host * enginetest.Host ) {
145+ v , err := vm .RunString (`
146+ const m = require('mokapi')
147+ m.patch([1,2,3,4], [1,3,4])
148+ ` )
149+ r .NoError (t , err )
150+ r .Equal (t , []interface {}{int64 (1 ), int64 (3 ), int64 (4 ), int64 (4 )}, v .Export ())
151+ },
152+ },
153+ {
154+ name : "patch array has more items" ,
155+ test : func (t * testing.T , vm * goja.Runtime , host * enginetest.Host ) {
156+ v , err := vm .RunString (`
157+ const m = require('mokapi')
158+ m.patch([1,2], [1,2,3,4])
159+ ` )
160+ r .NoError (t , err )
161+ r .Equal (t , []interface {}{int64 (1 ), int64 (2 ), int64 (3 ), int64 (4 )}, v .Export ())
162+ },
163+ },
164+ {
165+ name : "array with delete" ,
166+ test : func (t * testing.T , vm * goja.Runtime , host * enginetest.Host ) {
167+ v , err := vm .RunString (`
168+ const m = require('mokapi')
169+ m.patch([1,2], [1,m.Delete])
170+ ` )
171+ r .NoError (t , err )
172+ r .Equal (t , []interface {}{int64 (1 )}, v .Export ())
173+ },
174+ },
175+ {
176+ name : "array with undefined" ,
177+ test : func (t * testing.T , vm * goja.Runtime , host * enginetest.Host ) {
178+ v , err := vm .RunString (`
179+ const m = require('mokapi')
180+ m.patch([1,2], [undefined])
181+ ` )
182+ r .NoError (t , err )
183+ r .Equal (t , []interface {}{int64 (1 ), int64 (2 )}, v .Export ())
184+ },
185+ },
142186 }
143187
144188 t .Parallel ()
0 commit comments