@@ -808,4 +808,62 @@ describe('SchemaController', () => {
808
808
} ) ;
809
809
done ( ) ;
810
810
} ) ;
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
+ } ) ;
811
869
} ) ;
0 commit comments