ssr test src/date-time-picker/_example/with-title.t
exports[`ssr snapshot test > ssr test src/date-time-picker/_example/year-month.tsx 1`] = `"
"`;
-exports[`ssr snapshot test > ssr test src/dialog/_example/confirm.tsx 1`] = `"
"`;
+exports[`ssr snapshot test > ssr test src/dialog/_example/confirm.tsx 1`] = `"
"`;
-exports[`ssr snapshot test > ssr test src/dialog/_example/feedback.tsx 1`] = `"
"`;
+exports[`ssr snapshot test > ssr test src/dialog/_example/feedback.tsx 1`] = `"
"`;
-exports[`ssr snapshot test > ssr test src/dialog/_example/image-dialog.tsx 1`] = `"
"`;
+exports[`ssr snapshot test > ssr test src/dialog/_example/image-dialog.tsx 1`] = `"
"`;
-exports[`ssr snapshot test > ssr test src/dialog/_example/index.tsx 1`] = `"
"`;
+exports[`ssr snapshot test > ssr test src/dialog/_example/index.tsx 1`] = `"
水平基础按钮
垂直基础按钮
带关闭按钮的对话框
"`;
exports[`ssr snapshot test > ssr test src/dialog/_example/input.tsx 1`] = `"
"`;
-exports[`ssr snapshot test > ssr test src/dialog/_example/multi-state.tsx 1`] = `"
"`;
+exports[`ssr snapshot test > ssr test src/dialog/_example/multi-state.tsx 1`] = `"
水平基础按钮
垂直基础按钮
带关闭按钮的对话框
"`;
exports[`ssr snapshot test > ssr test src/dialog/_example/plugin.tsx 1`] = `"
"`;
diff --git a/test/snap/__snapshots__/ssr.test.jsx.snap b/test/snap/__snapshots__/ssr.test.jsx.snap
index a6a5ee090..c2c8316a9 100644
--- a/test/snap/__snapshots__/ssr.test.jsx.snap
+++ b/test/snap/__snapshots__/ssr.test.jsx.snap
@@ -174,17 +174,17 @@ exports[`ssr snapshot test > ssr test src/date-time-picker/_example/with-title.t
exports[`ssr snapshot test > ssr test src/date-time-picker/_example/year-month.tsx 1`] = `"
"`;
-exports[`ssr snapshot test > ssr test src/dialog/_example/confirm.tsx 1`] = `"
"`;
+exports[`ssr snapshot test > ssr test src/dialog/_example/confirm.tsx 1`] = `"
"`;
-exports[`ssr snapshot test > ssr test src/dialog/_example/feedback.tsx 1`] = `"
"`;
+exports[`ssr snapshot test > ssr test src/dialog/_example/feedback.tsx 1`] = `"
"`;
-exports[`ssr snapshot test > ssr test src/dialog/_example/image-dialog.tsx 1`] = `"
"`;
+exports[`ssr snapshot test > ssr test src/dialog/_example/image-dialog.tsx 1`] = `"
"`;
-exports[`ssr snapshot test > ssr test src/dialog/_example/index.tsx 1`] = `"
"`;
+exports[`ssr snapshot test > ssr test src/dialog/_example/index.tsx 1`] = `"
水平基础按钮
垂直基础按钮
带关闭按钮的对话框
"`;
exports[`ssr snapshot test > ssr test src/dialog/_example/input.tsx 1`] = `"
"`;
-exports[`ssr snapshot test > ssr test src/dialog/_example/multi-state.tsx 1`] = `"
"`;
+exports[`ssr snapshot test > ssr test src/dialog/_example/multi-state.tsx 1`] = `"
水平基础按钮
垂直基础按钮
带关闭按钮的对话框
"`;
exports[`ssr snapshot test > ssr test src/dialog/_example/plugin.tsx 1`] = `"
"`;
From 26b1092ebbe2c3849ffc17a6f1642cddba0075f7 Mon Sep 17 00:00:00 2001
From: Boomkaa <173308582@qq.com>
Date: Fri, 12 Sep 2025 14:15:19 +0800
Subject: [PATCH 2/2] test: add dialog test
---
src/dialog/__tests__/dialog.test.tsx | 38 +++++++++++++++-------------
src/dialog/show.tsx | 2 +-
2 files changed, 22 insertions(+), 18 deletions(-)
diff --git a/src/dialog/__tests__/dialog.test.tsx b/src/dialog/__tests__/dialog.test.tsx
index ebcda3dce..e13f087c7 100644
--- a/src/dialog/__tests__/dialog.test.tsx
+++ b/src/dialog/__tests__/dialog.test.tsx
@@ -1,5 +1,5 @@
import React, { act } from 'react';
-import { render, screen, fireEvent, vi, it, describe, expect, afterEach, beforeEach } from '@test/utils';
+import { render, screen, fireEvent, vi, it, describe, expect, afterEach, beforeEach, cleanup } from '@test/utils';
import Button from 'tdesign-mobile-react/button/Button';
import { DialogPlugin, Dialog } from '../index';
@@ -12,6 +12,14 @@ describe('Dialog', () => {
});
afterEach(() => {
+ cleanup();
+ const overlays = document.querySelectorAll('.t-overlay');
+ const popups = document.querySelectorAll('.t-popup');
+ const dialogs = document.querySelectorAll('.t-dialog');
+
+ overlays.forEach((overlay) => overlay.remove());
+ popups.forEach((popup) => popup.remove());
+ dialogs.forEach((dialog) => dialog.remove());
vi.useRealTimers();
});
@@ -76,16 +84,12 @@ describe('Dialog', () => {
it(': buttonLayout', () => {
const confirmBtn = {
content: '确认',
- variant: 'text',
- size: 'large',
+ variant: 'text' as const,
+ size: 'large' as const,
};
+ const cancelBtn = () =>
;
const { rerender } = render(
-
}
- />,
+
,
);
expect(document.querySelector(`${name}__footer--column`)).toBeTruthy();
@@ -227,12 +231,11 @@ describe('Dialog', () => {
title: '标题',
});
});
-
instance.destroy();
-
- setTimeout(() => {
- expect(document.querySelector(name)).toBeFalsy();
- }, 1000);
+ await act(async () => {
+ vi.advanceTimersByTime(1000);
+ });
+ expect(document.querySelector(name)).toBeFalsy();
});
it(': alert', async () => {
@@ -310,9 +313,10 @@ describe('Dialog', () => {
render(
);
const overlay = document.querySelector('.t-overlay');
fireEvent.click(overlay);
- setTimeout(() => {
- expect(onOverlayClick).toHaveBeenCalled();
- }, 1000);
+ await act(async () => {
+ vi.advanceTimersByTime(1000);
+ });
+ expect(onOverlayClick).toHaveBeenCalled();
});
});
});
diff --git a/src/dialog/show.tsx b/src/dialog/show.tsx
index b52864d17..eff446851 100644
--- a/src/dialog/show.tsx
+++ b/src/dialog/show.tsx
@@ -71,7 +71,7 @@ export function show(props: DialogShowProps): DialogInstance {
hide: () => ref.current?.hide(),
show: () => ref.current?.show(),
update: (opts: DialogShowProps) => ref.current?.update(opts),
- destroy,
+ destroy: () => ref.current?.destroy(),
};
}