1
1
import React from 'react' ;
2
- import { fireEvent , render , act } from '@testing-library/react' ;
2
+ import { fireEvent , render , act , screen } from '@testing-library/react' ;
3
3
import '@testing-library/jest-dom/extend-expect' ;
4
4
import { BrowserRouter } from 'react-router-dom' ;
5
5
import AuthForm from './AuthForm' ;
@@ -13,35 +13,36 @@ describe('AuthForm', () => {
13
13
} ) ;
14
14
15
15
it ( 'should only show the Sign Up form by default' , ( ) => {
16
- const { getByText, queryByTestId } = render ( < AuthForm /> ) ;
16
+ render ( < AuthForm /> ) ;
17
+ screen . debug ( ) ;
17
18
18
- expect ( getByText ( 'Create an account' ) ) . toBeInTheDocument ( ) ;
19
- expect ( queryByTestId ( 'loginForm' ) ) . toBeNull ( ) ;
19
+ expect ( screen . getByText ( 'Create an account' ) ) . toBeInTheDocument ( ) ;
20
+ expect ( screen . queryByTestId ( 'loginForm' ) ) . toBeNull ( ) ;
20
21
} ) ;
21
22
22
23
describe ( 'when clicking on the Log in button in the Sign Up Form' , ( ) => {
23
- it ( 'should show the Login Form' , ( ) => {
24
- const { getByText , queryByTestId , getByTestId } = render ( < AuthForm /> ) ;
25
- fireEvent . click ( getByText ( 'Log in' ) ) ;
26
- expect ( getByTestId ( 'loginForm' ) ) . toBeInTheDocument ( ) ;
27
- expect ( queryByTestId ( 'signupForm' ) ) . toBeNull ( ) ;
24
+ it ( 'should show the Login Form' , async ( ) => {
25
+ render ( < AuthForm /> ) ;
26
+ fireEvent . click ( screen . getByText ( 'Log in' ) ) ;
27
+ expect ( await screen . findByTestId ( 'loginForm' ) ) . toBeInTheDocument ( ) ;
28
+ expect ( await screen . queryByTestId ( 'signupForm' ) ) . toBeNull ( ) ;
28
29
} ) ;
29
30
} ) ;
30
31
31
32
describe ( 'when clicking on the Sign up button in the Log In Form' , ( ) => {
32
- it ( 'should show the Sign Up form' , ( ) => {
33
- const { getByText , queryByTestId } = render ( < AuthForm /> ) ;
34
- fireEvent . click ( getByText ( 'Log in' ) ) ;
35
- fireEvent . click ( getByText ( 'Sign up' ) ) ;
36
- expect ( queryByTestId ( 'loginForm' ) ) . toBeNull ( ) ;
37
- expect ( getByText ( 'Create an account' ) ) . toBeInTheDocument ( ) ;
33
+ it ( 'should show the Sign Up form' , async ( ) => {
34
+ render ( < AuthForm /> ) ;
35
+ fireEvent . click ( screen . getByText ( 'Log in' ) ) ;
36
+ fireEvent . click ( screen . getByText ( 'Sign up' ) ) ;
37
+ expect ( await screen . queryByTestId ( 'loginForm' ) ) . toBeNull ( ) ;
38
+ expect ( await screen . findByText ( 'Create an account' ) ) . toBeInTheDocument ( ) ;
38
39
} ) ;
39
40
} ) ;
40
41
} ) ;
41
42
42
43
describe ( 'Signup' , ( ) => {
43
44
it ( 'Register a new user on the signup form' , async ( ) => {
44
- const { getByText , getByLabelText } = render (
45
+ render (
45
46
< BrowserRouter >
46
47
< SignUpForm />
47
48
</ BrowserRouter >
@@ -58,38 +59,27 @@ describe('Signup', () => {
58
59
} ,
59
60
} ) ;
60
61
61
- await act ( async ( ) =>
62
- fireEvent . change ( getByLabelText ( / u s e r n a m e / i) , {
63
- target : { value : 'Carolyne.Carter' } ,
64
- } )
65
- ) ;
62
+ fireEvent . change ( screen . getByLabelText ( / u s e r n a m e / i) , {
63
+ target : { value : 'Carolyne.Carter' } ,
64
+ } ) ;
66
65
67
- await act ( async ( ) =>
68
- fireEvent . change ( getByLabelText ( / p a s s w o r d / i) , {
69
- target : { value : 'password' } ,
70
- } )
71
- ) ;
66
+ fireEvent . change ( screen . getByLabelText ( / p a s s w o r d / i) , {
67
+ target : { value : 'password' } ,
68
+ } ) ;
72
69
73
- await act ( async ( ) =>
74
- fireEvent . change ( getByLabelText ( / e m a i l / i) , {
75
- target :
{ value :
'[email protected] ' } ,
76
- } )
77
- ) ;
70
+ fireEvent . change ( screen . getByLabelText ( / e m a i l / i) , {
71
+ target :
{ value :
'[email protected] ' } ,
72
+ } ) ;
78
73
79
- await act ( async ( ) =>
80
- fireEvent . change ( getByLabelText ( / f i r s t n a m e / i) , {
81
- target : { value : 'Carolyne' } ,
82
- } )
83
- ) ;
74
+ fireEvent . change ( screen . getByLabelText ( / f i r s t n a m e / i) , {
75
+ target : { value : 'Carolyne' } ,
76
+ } ) ;
84
77
85
- await act ( async ( ) =>
86
- fireEvent . change ( getByLabelText ( / l a s t n a m e / i) , {
87
- target : { value : 'Carter' } ,
88
- } )
89
- ) ;
78
+ fireEvent . change ( screen . getByLabelText ( / l a s t n a m e / i) , {
79
+ target : { value : 'Carter' } ,
80
+ } ) ;
90
81
91
- const submit = getByText ( 'Sign Up' ) ;
92
- await act ( async ( ) => fireEvent . click ( submit ) ) ;
82
+ fireEvent . click ( screen . getByText ( 'Sign Up' ) ) ;
93
83
94
84
await act ( async ( ) => mockRegisterResponse ( ) ) ;
95
85
0 commit comments