1
- import { DrawerForm , ModalForm , ProFormText } from '@ant-design/pro-components' ;
1
+ /**
2
+ * @vitest -environment jsdom
3
+ */
4
+
5
+ import { DrawerForm , ModalForm , ProFormText } from '@ant-design/pro-components' ;
2
6
import {
3
7
act ,
4
8
cleanup ,
5
9
fireEvent ,
10
+ getByText ,
6
11
render ,
7
12
waitFor ,
8
13
} from '@testing-library/react' ;
@@ -695,6 +700,7 @@ describe('DrawerForm', () => {
695
700
props : 'modalProps' ,
696
701
} ,
697
702
] ;
703
+ // need jsdom support
698
704
tests . forEach ( ( item ) => {
699
705
const { name, Comp, close, props } = item ;
700
706
it ( `📦 ${ name } resetFields when destroy` , async ( ) => {
@@ -732,9 +738,11 @@ describe('DrawerForm', () => {
732
738
await waitForWaitTime ( 300 ) ;
733
739
// 点击取消按钮后重置
734
740
act ( ( ) => {
735
- html . baseElement . querySelectorAll < HTMLDivElement > ( '#new' ) [ 0 ] . click ( ) ;
741
+ fireEvent . click ( getByText ( html . baseElement , '新 建' ) ) ;
736
742
} ) ;
737
- await waitForWaitTime ( 300 ) ;
743
+ await waitFor ( ( ) => {
744
+ expect ( html . baseElement . querySelector < HTMLDivElement > ( 'input#name' ) ) . toBeInTheDocument ( )
745
+ } )
738
746
act ( ( ) => {
739
747
fireEvent . change (
740
748
html . baseElement . querySelector < HTMLDivElement > ( 'input#name' ) ! ,
@@ -745,22 +753,26 @@ describe('DrawerForm', () => {
745
753
} ,
746
754
) ;
747
755
} ) ;
748
- await waitForWaitTime ( 300 ) ;
749
- expect (
750
- html . baseElement . querySelector < HTMLInputElement > ( 'input#name' ) ?. value ,
751
- ) . toBe ( '12345' ) ;
756
+ await waitFor ( ( ) => {
757
+ expect ( html . baseElement . querySelector < HTMLDivElement > ( 'input#name' ) ) . toHaveValue ( '12345' )
758
+ } )
752
759
act ( ( ) => {
753
- html . baseElement
754
- . querySelectorAll < HTMLDivElement > ( '.ant-btn-default' ) [ 0 ]
755
- . click ( ) ;
760
+ fireEvent . click ( getByText ( html . baseElement , '取 消' ) ) ;
756
761
} ) ;
762
+
763
+ await waitFor ( ( ) => {
764
+ expect ( html . baseElement . querySelector < HTMLDivElement > ( 'input#name' ) ) . not . toBeInTheDocument ( )
765
+ } )
757
766
act ( ( ) => {
758
- html . baseElement . querySelectorAll < HTMLDivElement > ( '#new' ) [ 0 ] . click ( ) ;
767
+ fireEvent . click ( getByText ( html . baseElement , '新 建' ) ) ;
759
768
} ) ;
760
- await waitForWaitTime ( 300 ) ;
769
+ await waitFor ( ( ) => {
770
+ expect ( html . baseElement . querySelector < HTMLDivElement > ( 'input#name' ) ) . toBeInTheDocument ( )
771
+ } )
761
772
expect (
762
773
html . baseElement . querySelector < HTMLInputElement > ( 'input#name' ) ?. value ,
763
774
) . toBeFalsy ( ) ;
775
+
764
776
// 点击关闭按钮后重置
765
777
act ( ( ) => {
766
778
fireEvent . change (
@@ -772,20 +784,26 @@ describe('DrawerForm', () => {
772
784
} ,
773
785
) ;
774
786
} ) ;
775
- await waitForWaitTime ( 300 ) ;
776
- expect (
777
- html . baseElement . querySelector < HTMLInputElement > ( 'input#name' ) ?. value ,
778
- ) . toBe ( '12345' ) ;
787
+ await waitFor ( ( ) => {
788
+ expect ( html . baseElement . querySelector < HTMLDivElement > ( 'input#name' ) ) . toHaveValue ( '12345' )
789
+ } )
790
+
779
791
act ( ( ) => {
780
792
html . baseElement . querySelectorAll < HTMLDivElement > ( close ) [ 0 ] . click ( ) ;
781
793
} ) ;
794
+ await waitFor ( ( ) => {
795
+ expect ( html . baseElement . querySelector < HTMLDivElement > ( 'input#name' ) ) . not . toBeInTheDocument ( )
796
+ } )
782
797
act ( ( ) => {
783
- html . baseElement . querySelectorAll < HTMLDivElement > ( '#new' ) [ 0 ] . click ( ) ;
798
+ fireEvent . click ( getByText ( html . baseElement , '新 建' ) ) ;
784
799
} ) ;
785
- await waitForWaitTime ( 300 ) ;
800
+ await waitFor ( ( ) => {
801
+ expect ( html . baseElement . querySelector < HTMLDivElement > ( 'input#name' ) ) . toBeInTheDocument ( )
802
+ } )
786
803
expect (
787
804
html . baseElement . querySelector < HTMLInputElement > ( 'input#name' ) ?. value ,
788
805
) . toBeFalsy ( ) ;
806
+
789
807
// 点击提交按钮后重置
790
808
act ( ( ) => {
791
809
fireEvent . change (
@@ -797,21 +815,22 @@ describe('DrawerForm', () => {
797
815
} ,
798
816
) ;
799
817
} ) ;
800
- await waitForWaitTime ( 300 ) ;
801
- expect (
802
- html . baseElement . querySelector < HTMLInputElement > ( 'input#name' ) ?. value ,
803
- ) . toBe ( '12345' ) ;
818
+ await waitFor ( ( ) => {
819
+ expect ( html . baseElement . querySelector < HTMLDivElement > ( 'input#name' ) ) . toHaveValue ( '12345' )
820
+ } )
804
821
805
822
act ( ( ) => {
806
- html . baseElement
807
- . querySelectorAll < HTMLDivElement > ( '.ant-btn-primary' ) [ 0 ]
808
- . click ( ) ;
823
+ fireEvent . click ( getByText ( html . baseElement , '确 认' ) ) ;
809
824
} ) ;
810
- await waitForWaitTime ( 300 ) ;
825
+ await waitFor ( ( ) => {
826
+ expect ( html . baseElement . querySelector < HTMLDivElement > ( 'input#name' ) ) . not . toBeInTheDocument ( )
827
+ } )
811
828
act ( ( ) => {
812
- html . baseElement . querySelectorAll < HTMLDivElement > ( '#new' ) [ 0 ] . click ( ) ;
829
+ fireEvent . click ( getByText ( html . baseElement , '新 建' ) ) ;
813
830
} ) ;
814
- await waitForWaitTime ( 300 ) ;
831
+ await waitFor ( ( ) => {
832
+ expect ( html . baseElement . querySelector < HTMLDivElement > ( 'input#name' ) ) . toBeInTheDocument ( )
833
+ } )
815
834
expect (
816
835
html . baseElement . querySelector < HTMLInputElement > ( 'input#name' ) ?. value ,
817
836
) . toBeFalsy ( ) ;
0 commit comments