@@ -808,4 +808,62 @@ describe('SchemaController', () => {
808808 } ) ;
809809 done ( ) ;
810810 } ) ;
811+
812+ it ( 'yields a proper schema mismatch error (#2661)' , done => {
813+ let anObject = new Parse . Object ( 'AnObject' ) ;
814+ let anotherObject = new Parse . Object ( 'AnotherObject' ) ;
815+ let someObject = new Parse . Object ( 'SomeObject' ) ;
816+ Parse . Object . saveAll ( [ anObject , anotherObject , someObject ] ) . then ( ( ) => {
817+ anObject . set ( 'pointer' , anotherObject ) ;
818+ return anObject . save ( ) ;
819+ } ) . then ( ( ) => {
820+ anObject . set ( 'pointer' , someObject ) ;
821+ return anObject . save ( ) ;
822+ } ) . then ( ( ) => {
823+ fail ( 'shoud not save correctly' ) ;
824+ done ( ) ;
825+ } , ( err ) => {
826+ expect ( err instanceof Parse . Error ) . toBeTruthy ( ) ;
827+ expect ( err . message ) . toEqual ( 'schema mismatch for AnObject.pointer; expected Pointer<AnotherObject> but got Pointer<SomeObject>' )
828+ done ( ) ;
829+ } ) ;
830+ } ) ;
831+
832+ it ( 'yields a proper schema mismatch error bis (#2661)' , done => {
833+ let anObject = new Parse . Object ( 'AnObject' ) ;
834+ let someObject = new Parse . Object ( 'SomeObject' ) ;
835+ Parse . Object . saveAll ( [ anObject , someObject ] ) . then ( ( ) => {
836+ anObject . set ( 'number' , 1 ) ;
837+ return anObject . save ( ) ;
838+ } ) . then ( ( ) => {
839+ anObject . set ( 'number' , someObject ) ;
840+ return anObject . save ( ) ;
841+ } ) . then ( ( ) => {
842+ fail ( 'shoud not save correctly' ) ;
843+ done ( ) ;
844+ } , ( err ) => {
845+ expect ( err instanceof Parse . Error ) . toBeTruthy ( ) ;
846+ expect ( err . message ) . toEqual ( 'schema mismatch for AnObject.number; expected Number but got Pointer<SomeObject>' )
847+ done ( ) ;
848+ } ) ;
849+ } ) ;
850+
851+ it ( 'yields a proper schema mismatch error ter (#2661)' , done => {
852+ let anObject = new Parse . Object ( 'AnObject' ) ;
853+ let someObject = new Parse . Object ( 'SomeObject' ) ;
854+ Parse . Object . saveAll ( [ anObject , someObject ] ) . then ( ( ) => {
855+ anObject . set ( 'pointer' , someObject ) ;
856+ return anObject . save ( ) ;
857+ } ) . then ( ( ) => {
858+ anObject . set ( 'pointer' , 1 ) ;
859+ return anObject . save ( ) ;
860+ } ) . then ( ( ) => {
861+ fail ( 'shoud not save correctly' ) ;
862+ done ( ) ;
863+ } , ( err ) => {
864+ expect ( err instanceof Parse . Error ) . toBeTruthy ( ) ;
865+ expect ( err . message ) . toEqual ( 'schema mismatch for AnObject.pointer; expected Pointer<SomeObject> but got Number' )
866+ done ( ) ;
867+ } ) ;
868+ } ) ;
811869} ) ;
0 commit comments