From e7ade9ee12df9b05c3b5d432a9732aeab42ea430 Mon Sep 17 00:00:00 2001 From: Rain <958414905@qq.com> Date: Fri, 28 Jul 2023 11:02:13 +0800 Subject: [PATCH] chore: make testing more stable --- .../antd/cascader/__tests__/cascader.test.tsx | 7 ++++--- .../antd/form-v2/__tests__/form-v2.test.tsx | 10 +++++----- .../antd/g2plot/__tests__/g2plot.test.tsx | 10 +++++----- .../__tests__/record-picker.test.tsx | 15 +++++++++------ 4 files changed, 23 insertions(+), 19 deletions(-) diff --git a/packages/core/client/src/schema-component/antd/cascader/__tests__/cascader.test.tsx b/packages/core/client/src/schema-component/antd/cascader/__tests__/cascader.test.tsx index 06ee79393..3b5954f57 100644 --- a/packages/core/client/src/schema-component/antd/cascader/__tests__/cascader.test.tsx +++ b/packages/core/client/src/schema-component/antd/cascader/__tests__/cascader.test.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import { fireEvent, render, screen, sleep, userEvent } from 'testUtils'; +import { fireEvent, render, screen, userEvent, waitFor } from 'testUtils'; import App1 from '../demos/demo1'; import App2 from '../demos/demo2'; @@ -33,8 +33,9 @@ describe('Cascader', () => { // 因为是异步加载,所以需要等待一下 expect(screen.queryByText('Zhejiang Dynamic 1')).not.toBeInTheDocument(); - await sleep(300); - expect(screen.getByText('Zhejiang Dynamic 1')).toBeInTheDocument(); + await waitFor(() => { + expect(screen.getByText('Zhejiang Dynamic 1')).toBeInTheDocument(); + }); fireEvent.click(screen.getByText('Zhejiang Dynamic 1')); diff --git a/packages/core/client/src/schema-component/antd/form-v2/__tests__/form-v2.test.tsx b/packages/core/client/src/schema-component/antd/form-v2/__tests__/form-v2.test.tsx index d7acde526..6f863d02f 100644 --- a/packages/core/client/src/schema-component/antd/form-v2/__tests__/form-v2.test.tsx +++ b/packages/core/client/src/schema-component/antd/form-v2/__tests__/form-v2.test.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import { render, screen, sleep, userEvent, waitFor } from 'testUtils'; +import { render, screen, userEvent, waitFor } from 'testUtils'; import App1 from '../demos/demo1'; import App2 from '../demos/demo2'; import App3 from '../demos/demo3'; @@ -17,10 +17,10 @@ describe('FormV2', () => { await userEvent.type(input, '李四'); await userEvent.click(submit); - await sleep(100); - - // notification 的内容 - expect(screen.getByText(/\{"nickname":"李四"\}/i)).toBeInTheDocument(); + await waitFor(() => { + // notification 的内容 + expect(screen.getByText(/\{"nickname":"李四"\}/i)).toBeInTheDocument(); + }); }); it('initial values', async () => { diff --git a/packages/core/client/src/schema-component/antd/g2plot/__tests__/g2plot.test.tsx b/packages/core/client/src/schema-component/antd/g2plot/__tests__/g2plot.test.tsx index 70abde673..61467e40e 100644 --- a/packages/core/client/src/schema-component/antd/g2plot/__tests__/g2plot.test.tsx +++ b/packages/core/client/src/schema-component/antd/g2plot/__tests__/g2plot.test.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import { render, sleep } from 'testUtils'; +import { render, waitFor } from 'testUtils'; import App1 from '../demos/demo1'; // jsdom does not support canvas, so we need to skip this test @@ -7,9 +7,9 @@ describe.skip('G2Plot', () => { it('basic', async () => { render(); - await sleep(100); - - const g2plot = document.querySelector('.g2plot') as HTMLDivElement; - expect(g2plot).toBeInTheDocument(); + await waitFor(() => { + const g2plot = document.querySelector('.g2plot') as HTMLDivElement; + expect(g2plot).toBeInTheDocument(); + }); }); }); diff --git a/packages/core/client/src/schema-component/antd/record-picker/__tests__/record-picker.test.tsx b/packages/core/client/src/schema-component/antd/record-picker/__tests__/record-picker.test.tsx index 4f32c14dd..a73b04ec4 100644 --- a/packages/core/client/src/schema-component/antd/record-picker/__tests__/record-picker.test.tsx +++ b/packages/core/client/src/schema-component/antd/record-picker/__tests__/record-picker.test.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import { render, screen, sleep, userEvent, within } from 'testUtils'; +import { render, screen, userEvent, waitFor, within } from 'testUtils'; import App1 from '../demos/demo1'; describe('RecordPicker', () => { @@ -10,17 +10,20 @@ describe('RecordPicker', () => { expect(selector).toBeInTheDocument(); await userEvent.click(selector); - await sleep(100); - // 弹窗标题 - expect(screen.getByText(/select record/i)).toBeInTheDocument(); + await waitFor(() => { + // 弹窗标题 + expect(screen.getByText(/select record/i)).toBeInTheDocument(); + }); const checkboxes = document.querySelectorAll('.ant-checkbox'); // 第 3 个选项的内容是: “软件开发” await userEvent.click(checkboxes[2]); await userEvent.click(screen.getByText(/submit/i)); - expect(within(selector).getByText(/软件开发/i)).toBeInTheDocument(); - expect(screen.getByText(/软件开发/i, { selector: '.test-record-picker-read-pretty-item' })).toBeInTheDocument(); + await waitFor(() => { + expect(within(selector).getByText(/软件开发/i)).toBeInTheDocument(); + expect(screen.getByText(/软件开发/i, { selector: '.test-record-picker-read-pretty-item' })).toBeInTheDocument(); + }); }); });