@@ -3348,6 +3348,122 @@ describe('Parse.Query testing', () => {
33483348 }
33493349 ) ;
33503350 } ) ;
3351+ it ( 'exclude keys' , async ( ) => {
3352+ const obj = new TestObject ( { foo : 'baz' , hello : 'world' } ) ;
3353+ await obj . save ( ) ;
3354+
3355+ const response = await request ( {
3356+ url : Parse . serverURL + '/classes/TestObject' ,
3357+ qs : {
3358+ excludeKeys : 'foo' ,
3359+ where : JSON . stringify ( { objectId : obj . id } ) ,
3360+ } ,
3361+ headers : masterKeyHeaders ,
3362+ } ) ;
3363+ expect ( response . data . results [ 0 ] . foo ) . toBeUndefined ( ) ;
3364+ expect ( response . data . results [ 0 ] . hello ) . toBe ( 'world' ) ;
3365+ } ) ;
3366+
3367+ it ( 'exclude keys with select same key' , async ( ) => {
3368+ const obj = new TestObject ( { foo : 'baz' , hello : 'world' } ) ;
3369+ await obj . save ( ) ;
3370+
3371+ const response = await request ( {
3372+ url : Parse . serverURL + '/classes/TestObject' ,
3373+ qs : {
3374+ keys : 'foo' ,
3375+ excludeKeys : 'foo' ,
3376+ where : JSON . stringify ( { objectId : obj . id } ) ,
3377+ } ,
3378+ headers : masterKeyHeaders ,
3379+ } ) ;
3380+ expect ( response . data . results [ 0 ] . foo ) . toBeUndefined ( ) ;
3381+ expect ( response . data . results [ 0 ] . hello ) . toBeUndefined ( ) ;
3382+ } ) ;
3383+
3384+ it ( 'exclude keys with select different key' , async ( ) => {
3385+ const obj = new TestObject ( { foo : 'baz' , hello : 'world' } ) ;
3386+ await obj . save ( ) ;
3387+
3388+ const response = await request ( {
3389+ url : Parse . serverURL + '/classes/TestObject' ,
3390+ qs : {
3391+ keys : 'foo,hello' ,
3392+ excludeKeys : 'foo' ,
3393+ where : JSON . stringify ( { objectId : obj . id } ) ,
3394+ } ,
3395+ headers : masterKeyHeaders ,
3396+ } ) ;
3397+ expect ( response . data . results [ 0 ] . foo ) . toBeUndefined ( ) ;
3398+ expect ( response . data . results [ 0 ] . hello ) . toBe ( 'world' ) ;
3399+ } ) ;
3400+
3401+ it ( 'exclude keys with include same key' , async ( ) => {
3402+ const pointer = new TestObject ( ) ;
3403+ await pointer . save ( ) ;
3404+ const obj = new TestObject ( { child : pointer , hello : 'world' } ) ;
3405+ await obj . save ( ) ;
3406+
3407+ const response = await request ( {
3408+ url : Parse . serverURL + '/classes/TestObject' ,
3409+ qs : {
3410+ include : 'child' ,
3411+ excludeKeys : 'child' ,
3412+ where : JSON . stringify ( { objectId : obj . id } ) ,
3413+ } ,
3414+ headers : masterKeyHeaders ,
3415+ } ) ;
3416+ expect ( response . data . results [ 0 ] . child ) . toBeUndefined ( ) ;
3417+ expect ( response . data . results [ 0 ] . hello ) . toBe ( 'world' ) ;
3418+ } ) ;
3419+
3420+ it ( 'exclude keys with include different key' , async ( ) => {
3421+ const pointer = new TestObject ( ) ;
3422+ await pointer . save ( ) ;
3423+ const obj = new TestObject ( {
3424+ child1 : pointer ,
3425+ child2 : pointer ,
3426+ hello : 'world' ,
3427+ } ) ;
3428+ await obj . save ( ) ;
3429+
3430+ const response = await request ( {
3431+ url : Parse . serverURL + '/classes/TestObject' ,
3432+ qs : {
3433+ include : 'child1,child2' ,
3434+ excludeKeys : 'child1' ,
3435+ where : JSON . stringify ( { objectId : obj . id } ) ,
3436+ } ,
3437+ headers : masterKeyHeaders ,
3438+ } ) ;
3439+ expect ( response . data . results [ 0 ] . child1 ) . toBeUndefined ( ) ;
3440+ expect ( response . data . results [ 0 ] . child2 . objectId ) . toEqual ( pointer . id ) ;
3441+ expect ( response . data . results [ 0 ] . hello ) . toBe ( 'world' ) ;
3442+ } ) ;
3443+
3444+ it ( 'exclude keys with includeAll' , async ( ) => {
3445+ const pointer = new TestObject ( ) ;
3446+ await pointer . save ( ) ;
3447+ const obj = new TestObject ( {
3448+ child1 : pointer ,
3449+ child2 : pointer ,
3450+ hello : 'world' ,
3451+ } ) ;
3452+ await obj . save ( ) ;
3453+
3454+ const response = await request ( {
3455+ url : Parse . serverURL + '/classes/TestObject' ,
3456+ qs : {
3457+ includeAll : true ,
3458+ excludeKeys : 'child1' ,
3459+ where : JSON . stringify ( { objectId : obj . id } ) ,
3460+ } ,
3461+ headers : masterKeyHeaders ,
3462+ } ) ;
3463+ expect ( response . data . results [ 0 ] . child ) . toBeUndefined ( ) ;
3464+ expect ( response . data . results [ 0 ] . child2 . objectId ) . toEqual ( pointer . id ) ;
3465+ expect ( response . data . results [ 0 ] . hello ) . toBe ( 'world' ) ;
3466+ } ) ;
33513467
33523468 it ( 'select keys with each query' , function ( done ) {
33533469 const obj = new TestObject ( { foo : 'baz' , bar : 1 } ) ;
0 commit comments