Skip to content

Commit 2375deb

Browse files
fix(GenerateId): add randomness to id generator to prevent id collisions (#10178)
* fix(GenerateId): add randomness to id generator to prevent id collisions * chore(docs): Correct prop description
1 parent 57651d7 commit 2375deb

File tree

28 files changed

+138
-84
lines changed

28 files changed

+138
-84
lines changed

packages/react-core/src/components/Chip/__tests__/ChipGroup.test.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ import { ChipGroup } from '../index';
77
import { Chip } from '../../Chip';
88
import styles from '@patternfly/react-styles/css/components/Chip/chip-group';
99

10+
jest.mock('../../../helpers/GenerateId/GenerateId');
11+
1012
test('chip group default', () => {
1113
render(
1214
<ChipGroup>
@@ -71,7 +73,7 @@ test('chip group has aria-labelledby attribute', () => {
7173
<Chip>1.1</Chip>
7274
</ChipGroup>
7375
);
74-
expect(screen.getByRole('group')).toHaveAttribute('aria-labelledby', expect.stringContaining(`pf-random-id`));
76+
expect(screen.getByRole('group')).toHaveAttribute('aria-labelledby', expect.stringContaining(`generated-id`));
7577
});
7678

7779
test('chip group has aria-labelledby attribute set to ID value', () => {

packages/react-core/src/components/ClipboardCopy/__tests__/ClipboardCopy.test.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ import { ClipboardCopy } from '../ClipboardCopy';
44
import styles from '@patternfly/react-styles/css/components/ClipboardCopy/clipboard-copy';
55
import userEvent from '@testing-library/user-event';
66

7+
jest.mock('../../../helpers/GenerateId/GenerateId');
8+
79
jest.mock('../ClipboardCopyButton', () => ({
810
ClipboardCopyButton: ({ 'aria-label': ariaLabel, children, entryDelay, exitDelay, maxWidth, position, onClick }) => (
911
<div data-testid="clipboardCopyButton-mock">

packages/react-core/src/components/ClipboardCopy/__tests__/__snapshots__/ClipboardCopy.test.tsx.snap

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ exports[`Matches snapshot 1`] = `
2121
data-ouia-component-id="OUIA-Generated-TextInputBase-26"
2222
data-ouia-component-type="PF5/TextInput"
2323
data-ouia-safe="true"
24-
id="text-input-34"
24+
id="text-input-generated-id"
2525
type="text"
2626
value="Copyable text"
2727
/>

packages/react-core/src/components/Drawer/__tests__/Drawer.test.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ import { render } from '@testing-library/react';
1414
import userEvent from '@testing-library/user-event';
1515
import { KeyTypes } from '../../../helpers';
1616

17+
jest.mock('../../../helpers/GenerateId/GenerateId');
18+
1719
Object.values([
1820
{ isExpanded: true, isInline: false, isStatic: false },
1921
{ isExpanded: false, isInline: false, isStatic: false },

packages/react-core/src/components/Drawer/__tests__/DrawerPanelContent.test.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ import { render, screen } from '@testing-library/react';
33
import { DrawerPanelContent } from '../DrawerPanelContent';
44
import { Drawer } from '../Drawer';
55

6+
jest.mock('../../../helpers/GenerateId/GenerateId');
7+
68
test('Does not render with aria-labelledby by default', () => {
79
render(
810
<Drawer isExpanded>

packages/react-core/src/components/Drawer/__tests__/Generated/DrawerPanelContent.test.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ import { DrawerPanelContent } from '../../DrawerPanelContent';
77
// any missing imports can usually be resolved by adding them here
88
import {} from '../..';
99

10+
jest.mock('../../../../helpers/GenerateId/GenerateId');
11+
1012
it('DrawerPanelContent should match snapshot (auto-generated)', () => {
1113
const { asFragment } = render(<DrawerPanelContent className={"''"} children={<div>ReactNode</div>} />);
1214
expect(asFragment()).toMatchSnapshot();

packages/react-core/src/components/Drawer/__tests__/Generated/__snapshots__/DrawerPanelContent.test.tsx.snap

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ exports[`DrawerPanelContent should match snapshot (auto-generated) 1`] = `
55
<div
66
class="pf-v5-c-drawer__panel ''"
77
hidden=""
8-
id="pf-drawer-panel-0"
8+
id="generated-id"
99
/>
1010
</DocumentFragment>
1111
`;

packages/react-core/src/components/Drawer/__tests__/__snapshots__/Drawer.test.tsx.snap

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ exports[`Drawer expands from bottom 1`] = `
1919
</div>
2020
<div
2121
class="pf-v5-c-drawer__panel"
22-
id="pf-drawer-panel-5"
22+
id="generated-id"
2323
>
2424
<div
2525
class="pf-v5-c-drawer__body"
@@ -187,11 +187,11 @@ exports[`Drawer has resizable css and color variants 1`] = `
187187
</div>
188188
<div
189189
class="pf-v5-c-drawer__panel pf-m-resizable pf-m-light-200"
190-
id="pf-drawer-panel-6"
190+
id="generated-id"
191191
style="--pf-v5-c-drawer__panel--md--FlexBasis: 300px; --pf-v5-c-drawer__panel--md--FlexBasis--min: 200px; --pf-v5-c-drawer__panel--md--FlexBasis--max: 400px;"
192192
>
193193
<div
194-
aria-controls="pf-drawer-panel-6"
194+
aria-controls="generated-id"
195195
aria-label="Resize"
196196
aria-orientation="vertical"
197197
aria-valuemax="100"
@@ -283,7 +283,7 @@ exports[`Drawer isExpanded = false and isInline = false and isStatic = false 1`]
283283
<div
284284
class="pf-v5-c-drawer__panel"
285285
hidden=""
286-
id="pf-drawer-panel-1"
286+
id="generated-id"
287287
/>
288288
</div>
289289
</div>
@@ -310,7 +310,7 @@ exports[`Drawer isExpanded = false and isInline = true and isStatic = false 1`]
310310
<div
311311
class="pf-v5-c-drawer__panel"
312312
hidden=""
313-
id="pf-drawer-panel-3"
313+
id="generated-id"
314314
/>
315315
</div>
316316
</div>
@@ -336,7 +336,7 @@ exports[`Drawer isExpanded = true and isInline = false and isStatic = false 1`]
336336
</div>
337337
<div
338338
class="pf-v5-c-drawer__panel"
339-
id="pf-drawer-panel-0"
339+
id="generated-id"
340340
>
341341
<div
342342
class="pf-v5-c-drawer__body"
@@ -410,7 +410,7 @@ exports[`Drawer isExpanded = true and isInline = false and isStatic = true 1`] =
410410
</div>
411411
<div
412412
class="pf-v5-c-drawer__panel"
413-
id="pf-drawer-panel-4"
413+
id="generated-id"
414414
>
415415
<div
416416
class="pf-v5-c-drawer__body"
@@ -484,7 +484,7 @@ exports[`Drawer isExpanded = true and isInline = true and isStatic = false 1`] =
484484
</div>
485485
<div
486486
class="pf-v5-c-drawer__panel"
487-
id="pf-drawer-panel-2"
487+
id="generated-id"
488488
>
489489
<div
490490
class="pf-v5-c-drawer__body"

packages/react-core/src/components/Form/__tests__/FormFieldGroup.test.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ import { FormFieldGroupExpandable } from '../FormFieldGroupExpandable';
77
import { FormFieldGroupHeader } from '../FormFieldGroupHeader';
88
import { Button } from '../../Button';
99

10+
jest.mock('../../../helpers/GenerateId/GenerateId');
11+
1012
test('Check form field group example against snapshot', () => {
1113
const FieldGroup = (
1214
<FormFieldGroup

packages/react-core/src/components/Form/__tests__/FormSection.test.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ import * as React from 'react';
22
import { FormSection } from '../FormSection';
33
import { render, screen } from '@testing-library/react';
44

5+
jest.mock('../../../helpers/GenerateId/GenerateId');
6+
57
test('Check form section example against snapshot', () => {
68
const Section = <FormSection />;
79
const { asFragment } = render(Section);

0 commit comments

Comments
 (0)