From 3861f621766dc24219411f4a2c6b1e375f63557c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=B3=E5=BB=B7=E5=AE=89?= <73953029+nrps9909@users.noreply.github.com> Date: Thu, 27 Aug 2026 05:04:40 +0800 Subject: [PATCH] fix: prevent tour actions from submitting forms --- src/TourStep/DefaultPanel.tsx | 18 +++++++++++++++--- tests/__snapshots__/index.test.tsx.snap | 16 ++++++++++++++++ tests/index.test.tsx | 10 ++++++++-- 3 files changed, 39 insertions(+), 5 deletions(-) diff --git a/src/TourStep/DefaultPanel.tsx b/src/TourStep/DefaultPanel.tsx index ffe7255..c2d5e2b 100644 --- a/src/TourStep/DefaultPanel.tsx +++ b/src/TourStep/DefaultPanel.tsx @@ -87,16 +87,28 @@ export default function DefaultPanel(props: DefaultPanelProps) { style={styles?.actions} > {current !== 0 ? ( - ) : null} {current === total - 1 ? ( - ) : ( - )} diff --git a/tests/__snapshots__/index.test.tsx.snap b/tests/__snapshots__/index.test.tsx.snap index a51c698..a56408c 100644 --- a/tests/__snapshots__/index.test.tsx.snap +++ b/tests/__snapshots__/index.test.tsx.snap @@ -141,6 +141,7 @@ exports[`Tour animated placeholder true 1`] = ` > @@ -294,6 +295,7 @@ exports[`Tour animated true 1`] = ` > @@ -586,6 +588,7 @@ exports[`Tour rootClassName 1`] = ` > @@ -709,6 +712,7 @@ exports[`Tour run in strict mode 1`] = ` > @@ -877,11 +881,13 @@ exports[`Tour run in strict mode 2`] = ` > @@ -995,11 +1001,13 @@ exports[`Tour should keep current when controlled 1`] = ` > @@ -1113,6 +1121,7 @@ exports[`Tour should return step 1 when reopen 1`] = ` > @@ -1268,6 +1277,7 @@ exports[`Tour should update position when window resize 1`] = ` > @@ -1423,6 +1433,7 @@ exports[`Tour should update position when window scroll 1`] = ` > @@ -1572,6 +1583,7 @@ exports[`Tour showArrow should show tooltip arrow default 1`] = ` > @@ -1725,6 +1737,7 @@ exports[`Tour single 1`] = ` > @@ -1880,6 +1893,7 @@ exports[`Tour use custom builtinPlacements 1`] = ` > @@ -2035,6 +2049,7 @@ exports[`Tour use custom builtinPlacements 2`] = ` > @@ -2201,6 +2216,7 @@ exports[`Tour use custom builtinPlacements 3`] = ` > diff --git a/tests/index.test.tsx b/tests/index.test.tsx index 998b867..34a109b 100644 --- a/tests/index.test.tsx +++ b/tests/index.test.tsx @@ -200,14 +200,20 @@ describe('Tour', () => { }; const { getByText, baseElement } = render(); expect(getByText('更新一条数据')).toBeTruthy(); - fireEvent.click(screen.getByRole('button', { name: 'Prev' })); + const prevButton = screen.getByRole('button', { name: 'Prev' }); + const nextButton = screen.getByRole('button', { name: 'Next' }); + expect(prevButton).toHaveAttribute('type', 'button'); + expect(nextButton).toHaveAttribute('type', 'button'); + fireEvent.click(prevButton); expect(getByText('创建一条数据')).toBeTruthy(); fireEvent.click(screen.getByRole('button', { name: 'Next' })); expect(getByText('更新一条数据')).toBeTruthy(); fireEvent.click(screen.getByRole('button', { name: 'Next' })); expect(getByText('危险操作:删除一条数据')).toBeTruthy(); expect(document.querySelector('.rc-tour')).toBeTruthy(); - fireEvent.click(screen.getByRole('button', { name: 'Finish' })); + const finishButton = screen.getByRole('button', { name: 'Finish' }); + expect(finishButton).toHaveAttribute('type', 'button'); + fireEvent.click(finishButton); expect(document.querySelector('.rc-tour')).toBeFalsy(); expect(baseElement).toMatchSnapshot(); });