diff --git a/packages/react/src/__tests__/ReactChildren-test.js b/packages/react/src/__tests__/ReactChildren-test.js index a767a38c2f3..65733dab157 100644 --- a/packages/react/src/__tests__/ReactChildren-test.js +++ b/packages/react/src/__tests__/ReactChildren-test.js @@ -114,6 +114,40 @@ describe('ReactChildren', () => { expect(mappedChildren[0]).toEqual(); }); + it('should use the same key pattern for single child and array with one item', () => { + const unkeyedSingleChild = ; + const unkeyedArrayChild = ; + + const unkeyedSingleInstance =
{unkeyedSingleChild}
; + const unkeyedArrayInstance =
{[unkeyedArrayChild]}
; + + const mappedUnkeyedSingle = React.Children.map( + unkeyedSingleInstance.props.children, + child => child, + ); + const mappedUnkeyedArray = React.Children.map( + unkeyedArrayInstance.props.children, + child => child, + ); + expect(mappedUnkeyedSingle[0].key).toBe(mappedUnkeyedArray[0].key); + + const keyedSingleChild = ; + const keyedArrayChild = ; + + const keyedSingleInstance =
{keyedSingleChild}
; + const keyedArrayInstance =
{[keyedArrayChild]}
; + + const mappedKeyedSingle = React.Children.map( + keyedSingleInstance.props.children, + child => child, + ); + const mappedKeyedArray = React.Children.map( + keyedArrayInstance.props.children, + child => child, + ); + expect(mappedKeyedSingle[0].key).toBe(mappedKeyedArray[0].key); + }); + it('should be called for each child', () => { const zero =
; const one = null;