@@ -28,7 +28,7 @@ describe('update: ', function() {
28
28
assert . equal ( convertUpdate ( 'data' , { $set : { field : 'value' } } ) , 'jsonb_set(data,\'{field}\',\'"value"\')' )
29
29
} )
30
30
it ( '$set multiple' , function ( ) {
31
- assert . equal ( convertUpdate ( 'data' , { $set : { field : 'value' , second : 2 } } ) , 'jsonb_set(jsonb_set(data,\'{second }\',\'2\'::jsonb ),\'{field }\',\'"value"\' )' )
31
+ assert . equal ( convertUpdate ( 'data' , { $set : { field : 'value' , second : 2 } } ) , 'jsonb_set(jsonb_set(data,\'{field }\',\'"value"\' ),\'{second }\',\'2\'::jsonb )' )
32
32
} )
33
33
it ( '$set deep' , function ( ) {
34
34
assert . equal ( convertUpdate ( 'data' , { $set : { 'a.b' : 2 } } ) , 'jsonb_set(jsonb_set(data,\'{a}\',COALESCE(data->\'a\', \'{}\'::jsonb)),\'{a,b}\',\'2\'::jsonb)' )
@@ -47,7 +47,7 @@ describe('update: ', function() {
47
47
assert . equal ( convertUpdate ( 'data' , { $unset : { 'field.inner' : 1 } } ) , 'data #- \'{field,inner}\'' )
48
48
} )
49
49
it ( '$unset multiple' , function ( ) {
50
- assert . equal ( convertUpdate ( 'data' , { $unset : { field : 1 , second : 1 } } ) , 'data #- \'{second }\' #- \'{field }\'' )
50
+ assert . equal ( convertUpdate ( 'data' , { $unset : { field : 1 , second : 1 } } ) , 'data #- \'{field }\' #- \'{second }\'' )
51
51
} )
52
52
53
53
it ( '$inc' , function ( ) {
@@ -87,4 +87,17 @@ describe('update: ', function() {
87
87
assert . equal ( convertUpdate ( 'data' , { $set : { active : true } , $unset : { field : 'value' } , $inc : { purchases : 2 } } ) , 'jsonb_set(jsonb_set(data,\'{active}\',\'true\'::jsonb) #- \'{field}\',\'{purchases}\',to_jsonb(COALESCE(Cast(data->>\'purchases\' as numeric),0)+2))' )
88
88
} )
89
89
} )
90
+
91
+ describe ( 'array by index' , function ( ) {
92
+ it ( '$set' , function ( ) {
93
+ assert . equal ( convertUpdate ( 'data' , { $set : {
94
+ 'Items.0' : { test : 0 } ,
95
+ 'Items.2' : { test : 2 } ,
96
+ 'Items.1' : { test : 1 } ,
97
+ } } ) ,
98
+ 'jsonb_set(jsonb_set(jsonb_set(jsonb_set(data,\'{Items}\',COALESCE(data->\'Items\', ' +
99
+ '\'{}\'::jsonb)),\'{Items,0}\',\'{"test":0}\'::jsonb),\'{Items,1}\',\'{"test":1}\'::jsonb)' +
100
+ ',\'{Items,2}\',\'{"test":2}\'::jsonb)' )
101
+ } )
102
+ } )
90
103
} )
0 commit comments