From f9f23726cb9ff8e8693e1eb0a289ad28b2ebf738 Mon Sep 17 00:00:00 2001 From: Adam Rasheed Date: Thu, 4 Dec 2025 15:15:31 -0800 Subject: [PATCH 1/7] [LG-5794] chore: Added id prop support for ConfirmationModel buttons --- .../ConfirmationModal.spec.tsx | 20 +++++++++++++++++-- .../ConfirmationModal/ConfirmationModal.tsx | 2 ++ .../ConfirmationModal.types.ts | 18 ++++++++++++++--- tools/install/src/ALL_PACKAGES.ts | 2 ++ 4 files changed, 37 insertions(+), 5 deletions(-) diff --git a/packages/confirmation-modal/src/ConfirmationModal/ConfirmationModal.spec.tsx b/packages/confirmation-modal/src/ConfirmationModal/ConfirmationModal.spec.tsx index 4eb5609bdb..d61d60799e 100644 --- a/packages/confirmation-modal/src/ConfirmationModal/ConfirmationModal.spec.tsx +++ b/packages/confirmation-modal/src/ConfirmationModal/ConfirmationModal.spec.tsx @@ -6,7 +6,7 @@ import { axe } from 'jest-axe'; import { getLgIds as getLgModalIds } from '@leafygreen-ui/modal'; import { getLgIds } from '..'; -import ConfirmationModal from '..'; +import { ConfirmationModal } from '..'; const lgIds = getLgIds(); @@ -110,7 +110,7 @@ describe('packages/confirmation-modal', () => { }); // TODO: remove - buttonText is deprecated - test('overrides "confirmButtonProps"', () => { + test('overrides deprecated "buttonText" with "confirmButtonProps"', () => { const { getByText } = renderModal({ open: true, buttonText: 'custom button text', @@ -203,6 +203,22 @@ describe('packages/confirmation-modal', () => { }); }); + describe('button id props', () => { + test('propagates to the buttons', () => { + const { getByText } = renderModal({ + open: true, + confirmButtonProps: { id: 'my-confirm-btn', children: 'Confirm' }, + cancelButtonProps: { id: 'my-cancel-btn' }, + }); + + const confirmButton = getByText('Confirm').closest('button'); + expect(confirmButton).toHaveAttribute('id', 'my-confirm-btn'); + + const cancelButton = getByText('Cancel').closest('button'); + expect(cancelButton).toHaveAttribute('id', 'my-cancel-btn'); + }); + }); + describe('closes when', () => { test('escape key is pressed', async () => { const { getByRole } = renderModal({ open: true }); diff --git a/packages/confirmation-modal/src/ConfirmationModal/ConfirmationModal.tsx b/packages/confirmation-modal/src/ConfirmationModal/ConfirmationModal.tsx index dbcb5f804a..2983dc4a90 100644 --- a/packages/confirmation-modal/src/ConfirmationModal/ConfirmationModal.tsx +++ b/packages/confirmation-modal/src/ConfirmationModal/ConfirmationModal.tsx @@ -136,6 +136,7 @@ export const ConfirmationModal = forwardRef<