@@ -9,6 +9,8 @@ function renderForm({
9
9
showName = true ,
10
10
showEmail = true ,
11
11
isAnonymous = false ,
12
+ isNameRequired = false ,
13
+ isEmailRequired = false ,
12
14
defaultName = 'Foo Bar' ,
13
15
defaultEmail
= '[email protected] ' ,
14
16
nameLabel = 'Name' ,
@@ -25,6 +27,8 @@ function renderForm({
25
27
isAnonymous,
26
28
showName,
27
29
showEmail,
30
+ isNameRequired,
31
+ isEmailRequired,
28
32
defaultName,
29
33
defaultEmail,
30
34
nameLabel,
@@ -80,13 +84,15 @@ describe('Form', () => {
80
84
emailPlaceholder :
'[email protected] !' ,
81
85
messageLabel : 'Description!' ,
82
86
messagePlaceholder : 'What is the issue?!' ,
87
+ isNameRequired : true ,
88
+ isEmailRequired : true ,
83
89
} ) ;
84
90
85
91
const nameLabel = formComponent . el . querySelector ( 'label[htmlFor="name"]' ) as HTMLLabelElement ;
86
92
const emailLabel = formComponent . el . querySelector ( 'label[htmlFor="email"]' ) as HTMLLabelElement ;
87
93
const messageLabel = formComponent . el . querySelector ( 'label[htmlFor="message"]' ) as HTMLLabelElement ;
88
- expect ( nameLabel . textContent ) . toBe ( 'Name!' ) ;
89
- expect ( emailLabel . textContent ) . toBe ( 'Email!' ) ;
94
+ expect ( nameLabel . textContent ) . toBe ( 'Name! (required) ' ) ;
95
+ expect ( emailLabel . textContent ) . toBe ( 'Email! (required) ' ) ;
90
96
expect ( messageLabel . textContent ) . toBe ( 'Description! (required)' ) ;
91
97
92
98
const nameInput = formComponent . el . querySelector ( '[name="name"]' ) as HTMLInputElement ;
@@ -98,18 +104,6 @@ describe('Form', () => {
98
104
expect ( messageInput . placeholder ) . toBe ( 'What is the issue?!' ) ;
99
105
} ) ;
100
106
101
- it ( 'submit is enabled if message is not empty' , ( ) => {
102
- const formComponent = renderForm ( ) ;
103
-
104
- const message = formComponent . el . querySelector ( '[name="message"]' ) as HTMLTextAreaElement ;
105
-
106
- message . value = 'Foo (message)' ;
107
- message . dispatchEvent ( new KeyboardEvent ( 'keyup' ) ) ;
108
-
109
- message . value = '' ;
110
- message . dispatchEvent ( new KeyboardEvent ( 'keyup' ) ) ;
111
- } ) ;
112
-
113
107
it ( 'can show error' , ( ) => {
114
108
const formComponent = renderForm ( ) ;
115
109
const errorEl = formComponent . el . querySelector ( '.form__error-container' ) as HTMLDivElement ;
@@ -148,6 +142,8 @@ describe('Form', () => {
148
142
it ( 'does not show name or email inputs for anonymous mode' , ( ) => {
149
143
const onSubmit = jest . fn ( ) ;
150
144
const formComponent = renderForm ( {
145
+ isNameRequired : true ,
146
+ isEmailRequired : true ,
151
147
isAnonymous : true ,
152
148
onSubmit,
153
149
} ) ;
0 commit comments