1
- /*
2
1
import { expect , fixture , html , oneEvent } from '@open-wc/testing' ;
3
2
import { UUIFormElement } from './uui-form.element' ;
4
3
4
+ const preventSubmit = ( e : SubmitEvent ) => {
5
+ e . preventDefault ( ) ;
6
+ } ;
7
+
5
8
describe ( 'UUIFormElement' , ( ) => {
6
9
let element : UUIFormElement ;
10
+ let formElement : HTMLFormElement ;
7
11
8
12
beforeEach ( async ( ) => {
9
- element = await fixture(html` <form is="uui-form"></form> `);
13
+ element = await fixture (
14
+ html `< uui-form > < form @submit =${ preventSubmit } > </ form > </ uui-form > `
15
+ ) ;
16
+ formElement = element . getFormElement ( ) ! ;
10
17
} ) ;
11
18
12
19
it ( 'is defined' , ( ) => {
@@ -18,81 +25,84 @@ describe('UUIFormElement', () => {
18
25
} ) ;
19
26
20
27
it ( 'set novalidate attribute on form-element' , async ( ) => {
21
- await expect(element .hasAttribute('novalidate')).to.be.true;
22
- await expect(element .getAttribute('novalidate')).to.not.be.null;
23
- await expect(element .getAttribute('novalidate')).to.be.empty;
28
+ await expect ( formElement . hasAttribute ( 'novalidate' ) ) . to . be . true ;
29
+ await expect ( formElement . getAttribute ( 'novalidate' ) ) . to . not . be . null ;
30
+ await expect ( formElement . getAttribute ( 'novalidate' ) ) . to . be . empty ;
24
31
} ) ;
25
32
26
33
describe ( 'events' , ( ) => {
27
34
describe ( 'submit' , ( ) => {
28
35
it ( 'emits a submit event when submitted' , async ( ) => {
29
- const listener = oneEvent(element , 'submit');
36
+ const listener = oneEvent ( formElement , 'submit' ) ;
30
37
31
- element .requestSubmit();
38
+ formElement . requestSubmit ( ) ;
32
39
33
40
const event = await listener ;
34
41
expect ( event ) . to . exist ;
35
42
expect ( event . type ) . to . equal ( 'submit' ) ;
36
- expect(event!.target).to.equal(element );
43
+ expect ( event ! . target ) . to . equal ( formElement ) ;
37
44
} ) ;
38
45
} ) ;
39
46
} ) ;
40
47
41
48
describe ( 'Validation' , ( ) => {
42
49
let element : UUIFormElement ;
50
+ let formElement : HTMLFormElement ;
43
51
let input : HTMLInputElement ;
44
52
45
53
beforeEach ( async ( ) => {
46
54
element = await fixture ( html `
47
- <form is="uui-form">
48
- <input type="text" name="my_required_input" required />
49
- </form>
55
+ < uui-form >
56
+ < form @submit =${ preventSubmit } >
57
+ < input type ="text " name ="my_required_input " required />
58
+ </ form >
59
+ </ uui-form >
50
60
` ) ;
61
+ formElement = element . getFormElement ( ) ! ;
51
62
input = element . querySelector ( 'input' ) as HTMLInputElement ;
52
63
} ) ;
53
64
54
65
it ( 'does not have "submit-invalid" attribute before submission.' , async ( ) => {
55
- await expect(element .hasAttribute('submit-invalid')).to.be.false;
66
+ await expect ( formElement . hasAttribute ( 'submit-invalid' ) ) . to . be . false ;
56
67
} ) ;
57
68
58
69
it ( 'has "submit-invalid" attribute if Form Control was invalid at submission.' , async ( ) => {
59
- const listener = oneEvent(element , 'submit');
70
+ const listener = oneEvent ( formElement , 'submit' ) ;
60
71
61
- element .requestSubmit();
72
+ formElement . requestSubmit ( ) ;
62
73
63
74
await listener ;
64
- await expect(element .hasAttribute('submit-invalid')).to.be.true;
65
- await expect(element .getAttribute('submit-invalid')).to.not.be.null;
66
- await expect(element .getAttribute('submit-invalid')).to.be.empty;
75
+ await expect ( formElement . hasAttribute ( 'submit-invalid' ) ) . to . be . true ;
76
+ await expect ( formElement . getAttribute ( 'submit-invalid' ) ) . to . not . be . null ;
77
+ await expect ( formElement . getAttribute ( 'submit-invalid' ) ) . to . be . empty ;
67
78
} ) ;
68
79
69
80
it ( 'only has "submit-invalid" attribute if Form Control was invalid at submission.' , async ( ) => {
70
- const listener = oneEvent(element , 'submit');
81
+ const listener = oneEvent ( formElement , 'submit' ) ;
71
82
72
83
input . value = 'something' ;
73
- element .requestSubmit();
84
+ formElement . requestSubmit ( ) ;
74
85
75
86
await listener ;
76
- await expect(element .hasAttribute('submit-invalid')).to.be.false;
87
+ await expect ( formElement . hasAttribute ( 'submit-invalid' ) ) . to . be . false ;
77
88
} ) ;
78
89
79
90
it ( '"submit-invalid" attribute is removed when form is re-validated and submitted.' , async ( ) => {
80
- const listener = oneEvent(element , 'submit');
91
+ const listener = oneEvent ( formElement , 'submit' ) ;
81
92
82
- element .requestSubmit();
93
+ formElement . requestSubmit ( ) ;
83
94
84
95
await listener ;
85
- await expect(element .hasAttribute('submit-invalid')).to.be.true;
96
+ await expect ( formElement . hasAttribute ( 'submit-invalid' ) ) . to . be . true ;
86
97
87
- const listener2 = oneEvent(element , 'submit');
98
+ const listener2 = oneEvent ( formElement , 'submit' ) ;
88
99
input . value = 'something' ;
89
- element .requestSubmit();
100
+ formElement . requestSubmit ( ) ;
90
101
91
102
await listener2 ;
92
- await expect(element .hasAttribute('submit-invalid')).to.be.false;
103
+ await expect ( formElement . hasAttribute ( 'submit-invalid' ) ) . to . be . false ;
93
104
} ) ;
94
105
} ) ;
95
106
} ) ;
96
- */
97
107
98
108
export { } ;
0 commit comments