@@ -842,8 +842,6 @@ describe('ReactUpdates', () => {
842842 } ) ;
843843
844844 it ( 'throws in setState if the update callback is not a function' , ( ) => {
845- spyOnDev ( console , 'error' ) ;
846-
847845 function Foo ( ) {
848846 this . a = 1 ;
849847 this . b = 2 ;
@@ -859,44 +857,43 @@ describe('ReactUpdates', () => {
859857
860858 let component = ReactTestUtils . renderIntoDocument ( < A /> ) ;
861859
862- expect ( ( ) => component . setState ( { } , 'no' ) ) . toThrowError (
860+ expect ( ( ) => {
861+ expect ( ( ) => component . setState ( { } , 'no' ) ) . toWarnDev (
862+ 'setState(...): Expected the last optional `callback` argument to be ' +
863+ 'a function. Instead received: no.' ,
864+ ) ;
865+ } ) . toThrowError (
863866 'Invalid argument passed as callback. Expected a function. Instead ' +
864867 'received: no' ,
865868 ) ;
866- if ( __DEV__ ) {
867- expect ( console . error . calls . argsFor ( 0 ) [ 0 ] ) . toContain (
869+ component = ReactTestUtils . renderIntoDocument ( < A /> ) ;
870+ expect ( ( ) => {
871+ expect ( ( ) => component . setState ( { } , { foo : 'bar' } ) ) . toWarnDev (
868872 'setState(...): Expected the last optional `callback` argument to be ' +
869- 'a function. Instead received: no .' ,
873+ 'a function. Instead received: [object Object] .' ,
870874 ) ;
871- }
872- component = ReactTestUtils . renderIntoDocument ( < A /> ) ;
873- expect ( ( ) => component . setState ( { } , { foo : 'bar' } ) ) . toThrowError (
875+ } ) . toThrowError (
874876 'Invalid argument passed as callback. Expected a function. Instead ' +
875877 'received: [object Object]' ,
876878 ) ;
877- if ( __DEV__ ) {
878- expect ( console . error . calls . argsFor ( 1 ) [ 0 ] ) . toContain (
879+ component = ReactTestUtils . renderIntoDocument ( < A /> ) ;
880+ expect ( ( ) => {
881+ expect ( ( ) => component . setState ( { } , new Foo ( ) ) ) . toWarnDev (
879882 'setState(...): Expected the last optional `callback` argument to be ' +
880883 'a function. Instead received: [object Object].' ,
881884 ) ;
882- }
885+ } ) . toThrowError (
886+ 'Invalid argument passed as callback. Expected a function. Instead ' +
887+ 'received: [object Object]' ,
888+ ) ;
883889 component = ReactTestUtils . renderIntoDocument ( < A /> ) ;
884- expect ( ( ) => component . setState ( { } , new Foo ( ) ) ) . toThrowError (
890+ expect ( ( ) => component . setState ( { } , { a : 1 , b : 2 } ) ) . toThrowError (
885891 'Invalid argument passed as callback. Expected a function. Instead ' +
886892 'received: [object Object]' ,
887893 ) ;
888- if ( __DEV__ ) {
889- expect ( console . error . calls . argsFor ( 2 ) [ 0 ] ) . toContain (
890- 'setState(...): Expected the last optional `callback` argument to be ' +
891- 'a function. Instead received: [object Object].' ,
892- ) ;
893- expect ( console . error . calls . count ( ) ) . toBe ( 3 ) ;
894- }
895894 } ) ;
896895
897896 it ( 'throws in forceUpdate if the update callback is not a function' , ( ) => {
898- spyOnDev ( console , 'error' ) ;
899-
900897 function Foo ( ) {
901898 this . a = 1 ;
902899 this . b = 2 ;
@@ -912,39 +909,40 @@ describe('ReactUpdates', () => {
912909
913910 let component = ReactTestUtils . renderIntoDocument ( < A /> ) ;
914911
915- expect ( ( ) => component . forceUpdate ( 'no' ) ) . toThrowError (
912+ expect ( ( ) => {
913+ expect ( ( ) => component . forceUpdate ( 'no' ) ) . toWarnDev (
914+ 'forceUpdate(...): Expected the last optional `callback` argument to be ' +
915+ 'a function. Instead received: no.' ,
916+ ) ;
917+ } ) . toThrowError (
916918 'Invalid argument passed as callback. Expected a function. Instead ' +
917919 'received: no' ,
918920 ) ;
919- if ( __DEV__ ) {
920- expect ( console . error . calls . argsFor ( 0 ) [ 0 ] ) . toContain (
921+ component = ReactTestUtils . renderIntoDocument ( < A /> ) ;
922+ expect ( ( ) => {
923+ expect ( ( ) => component . forceUpdate ( { foo : 'bar' } ) ) . toWarnDev (
921924 'forceUpdate(...): Expected the last optional `callback` argument to be ' +
922- 'a function. Instead received: no .' ,
925+ 'a function. Instead received: [object Object] .' ,
923926 ) ;
924- }
925- component = ReactTestUtils . renderIntoDocument ( < A /> ) ;
926- expect ( ( ) => component . forceUpdate ( { foo : 'bar' } ) ) . toThrowError (
927+ } ) . toThrowError (
927928 'Invalid argument passed as callback. Expected a function. Instead ' +
928929 'received: [object Object]' ,
929930 ) ;
930- if ( __DEV__ ) {
931- expect ( console . error . calls . argsFor ( 1 ) [ 0 ] ) . toContain (
931+ component = ReactTestUtils . renderIntoDocument ( < A /> ) ;
932+ expect ( ( ) => {
933+ expect ( ( ) => component . forceUpdate ( new Foo ( ) ) ) . toWarnDev (
932934 'forceUpdate(...): Expected the last optional `callback` argument to be ' +
933935 'a function. Instead received: [object Object].' ,
934936 ) ;
935- }
937+ } ) . toThrowError (
938+ 'Invalid argument passed as callback. Expected a function. Instead ' +
939+ 'received: [object Object]' ,
940+ ) ;
936941 component = ReactTestUtils . renderIntoDocument ( < A /> ) ;
937- expect ( ( ) => component . forceUpdate ( new Foo ( ) ) ) . toThrowError (
942+ expect ( ( ) => component . forceUpdate ( { a : 1 , b : 2 } ) ) . toThrowError (
938943 'Invalid argument passed as callback. Expected a function. Instead ' +
939944 'received: [object Object]' ,
940945 ) ;
941- if ( __DEV__ ) {
942- expect ( console . error . calls . argsFor ( 2 ) [ 0 ] ) . toContain (
943- 'forceUpdate(...): Expected the last optional `callback` argument to be ' +
944- 'a function. Instead received: [object Object].' ,
945- ) ;
946- expect ( console . error . calls . count ( ) ) . toBe ( 3 ) ;
947- }
948946 } ) ;
949947
950948 it ( 'does not update one component twice in a batch (#2410)' , ( ) => {
@@ -1228,8 +1226,6 @@ describe('ReactUpdates', () => {
12281226 ) ;
12291227
12301228 it ( 'uses correct base state for setState inside render phase' , ( ) => {
1231- spyOnDev ( console , 'error' ) ;
1232-
12331229 let ops = [ ] ;
12341230
12351231 class Foo extends React . Component {
@@ -1246,14 +1242,10 @@ describe('ReactUpdates', () => {
12461242 }
12471243
12481244 const container = document . createElement ( 'div' ) ;
1249- ReactDOM . render ( < Foo /> , container ) ;
1245+ expect ( ( ) => ReactDOM . render ( < Foo /> , container ) ) . toWarnDev (
1246+ 'Cannot update during an existing state transition' ,
1247+ ) ;
12501248 expect ( ops ) . toEqual ( [ 'base: 0, memoized: 0' , 'base: 1, memoized: 1' ] ) ;
1251- if ( __DEV__ ) {
1252- expect ( console . error . calls . count ( ) ) . toBe ( 1 ) ;
1253- expect ( console . error . calls . argsFor ( 0 ) [ 0 ] ) . toContain (
1254- 'Cannot update during an existing state transition' ,
1255- ) ;
1256- }
12571249 } ) ;
12581250
12591251 it ( 'does not re-render if state update is null' , ( ) => {
0 commit comments