@@ -1565,4 +1565,46 @@ describe('ReactShallowRenderer', () => {
15651565 'forwardRef requires a render function but was given object.' ,
15661566 ) ;
15671567 } ) ;
1568+
1569+ it ( 'should let you change type' , ( ) => {
1570+ function Foo ( { prop} ) {
1571+ return < div > Foo { prop } </ div > ;
1572+ }
1573+ function Bar ( { prop} ) {
1574+ return < div > Bar { prop } </ div > ;
1575+ }
1576+
1577+ const shallowRenderer = createRenderer ( ) ;
1578+ shallowRenderer . render ( < Foo prop = "foo1" /> ) ;
1579+ expect ( shallowRenderer . getRenderOutput ( ) ) . toEqual ( < div > Foo { 'foo1' } </ div > ) ;
1580+ shallowRenderer . render ( < Foo prop = "foo2" /> ) ;
1581+ expect ( shallowRenderer . getRenderOutput ( ) ) . toEqual ( < div > Foo { 'foo2' } </ div > ) ;
1582+ shallowRenderer . render ( < Bar prop = "bar1" /> ) ;
1583+ expect ( shallowRenderer . getRenderOutput ( ) ) . toEqual ( < div > Bar { 'bar1' } </ div > ) ;
1584+ shallowRenderer . render ( < Bar prop = "bar2" /> ) ;
1585+ expect ( shallowRenderer . getRenderOutput ( ) ) . toEqual ( < div > Bar { 'bar2' } </ div > ) ;
1586+ } ) ;
1587+
1588+ it ( 'should let you change class type' , ( ) => {
1589+ class Foo extends React . Component {
1590+ render ( ) {
1591+ return < div > Foo { this . props . prop } </ div > ;
1592+ }
1593+ }
1594+ class Bar extends React . Component {
1595+ render ( ) {
1596+ return < div > Bar { this . props . prop } </ div > ;
1597+ }
1598+ }
1599+
1600+ const shallowRenderer = createRenderer ( ) ;
1601+ shallowRenderer . render ( < Foo prop = "foo1" /> ) ;
1602+ expect ( shallowRenderer . getRenderOutput ( ) ) . toEqual ( < div > Foo { 'foo1' } </ div > ) ;
1603+ shallowRenderer . render ( < Foo prop = "foo2" /> ) ;
1604+ expect ( shallowRenderer . getRenderOutput ( ) ) . toEqual ( < div > Foo { 'foo2' } </ div > ) ;
1605+ shallowRenderer . render ( < Bar prop = "bar1" /> ) ;
1606+ expect ( shallowRenderer . getRenderOutput ( ) ) . toEqual ( < div > Bar { 'bar1' } </ div > ) ;
1607+ shallowRenderer . render ( < Bar prop = "bar2" /> ) ;
1608+ expect ( shallowRenderer . getRenderOutput ( ) ) . toEqual ( < div > Bar { 'bar2' } </ div > ) ;
1609+ } ) ;
15681610} ) ;
0 commit comments