1
1
import * as React from "react" ;
2
+ import * as ReactDOM from "react-dom" ;
2
3
import { shallow , mount } from "enzyme" ;
3
4
import { spy } from "sinon" ;
4
- import * as ReactDOM from "react-dom" ;
5
5
6
- import { BaseForm } from "../../src/abstractions/base-form" ;
7
- import { FormProps } from "../../src/contracts/form" ;
8
- import { BaseField , BaseFieldState } from "../../src/abstractions/base-field" ;
9
- import { FieldProps , FieldValue } from "../../src/contracts/field" ;
10
6
import { FormStoresHandlerClass , FSHContainer } from "../../src/stores/form-stores-handler" ;
11
7
import { FormStore } from "../../src/stores/form-store" ;
12
-
13
- interface MyFormProps extends FormProps {
14
- renderChildren ?: boolean ;
15
- }
16
-
17
- interface MyFormState { }
18
-
19
- class MyForm extends BaseForm < MyFormProps , MyFormState > {
20
- static defaultProps : MyFormProps = {
21
- ...BaseForm . defaultProps ,
22
- renderChildren : true
23
- } ;
24
-
25
- render ( ) : JSX . Element {
26
- return < form >
27
- { this . props . renderChildren ? this . props . children : null }
28
- </ form > ;
29
- }
30
- }
31
-
32
-
33
- interface MyFieldProps extends FieldProps {
34
-
35
- }
36
-
37
- interface MyFieldState extends BaseFieldState { }
38
-
39
- class MyField extends BaseField < MyFieldProps , MyFieldState > {
40
- render ( ) {
41
- return < input type = "text" onChange = { this . onChange } value = { this . state . Value } /> ;
42
- }
43
-
44
- onChange : React . FormEventHandler < HTMLInputElement > = ( event ) => {
45
- const target = event . target as EventTarget & HTMLInputElement ;
46
- this . OnValueChange ( target . value ) ;
47
- }
48
-
49
- protected get RawInitialValue ( ) : FieldValue {
50
- return "" ;
51
- }
52
-
53
- protected get DefaultValue ( ) : FieldValue {
54
- return "" ;
55
- }
56
- }
8
+ import { BasicForm } from "../basic-components/basic-form" ;
9
+ import { BasicField } from "../basic-components/basic-field" ;
57
10
58
11
describe ( "Field Base" , ( ) => {
59
12
beforeEach ( ( ) => {
@@ -66,7 +19,7 @@ describe("Field Base", () => {
66
19
67
20
it ( "is rendered outside of Form" , ( ) => {
68
21
expect ( ( ) => shallow (
69
- < MyField name = "fieldName" > </ MyField >
22
+ < BasicField name = "fieldName" > </ BasicField >
70
23
) ) . toThrow ( ) ;
71
24
} ) ;
72
25
@@ -75,9 +28,9 @@ describe("Field Base", () => {
75
28
const formId = "FORM_ID" ;
76
29
const fieldName = "fieldName" ;
77
30
78
- mount ( < MyForm formId = { formId } >
79
- < MyField name = "fieldName" > </ MyField >
80
- </ MyForm > ) ;
31
+ mount ( < BasicForm formId = { formId } >
32
+ < BasicField name = "fieldName" > </ BasicField >
33
+ </ BasicForm > ) ;
81
34
82
35
const formStore = FormStoresHandler . GetStore ( formId ) ;
83
36
const fieldId = formStore . GetFieldId ( fieldName ) ;
@@ -90,9 +43,9 @@ describe("Field Base", () => {
90
43
const formId = "FORM_ID" ;
91
44
const fieldName = "fieldName" ;
92
45
93
- let form = mount ( < MyForm formId = { formId } >
94
- < MyField name = "fieldName" > </ MyField >
95
- </ MyForm > ) ;
46
+ let form = mount ( < BasicForm formId = { formId } >
47
+ < BasicField name = "fieldName" > </ BasicField >
48
+ </ BasicForm > ) ;
96
49
97
50
let formStore = FormStoresHandler . GetStore ( formId ) ;
98
51
const fieldId = formStore . GetFieldId ( fieldName ) ;
@@ -112,9 +65,9 @@ describe("Field Base", () => {
112
65
const formId = "FORM_ID" ;
113
66
const fieldName = "fieldName" ;
114
67
115
- let form = mount ( < MyForm formId = { formId } >
116
- < MyField destroyOnUnmount = { true } name = "fieldName" > </ MyField >
117
- </ MyForm > ) ;
68
+ let form = mount ( < BasicForm formId = { formId } >
69
+ < BasicField destroyOnUnmount = { true } name = "fieldName" > </ BasicField >
70
+ </ BasicForm > ) ;
118
71
119
72
let formStore = FormStoresHandler . GetStore ( formId ) ;
120
73
const fieldId = formStore . GetFieldId ( fieldName ) ;
@@ -133,42 +86,42 @@ describe("Field Base", () => {
133
86
expect ( ( ) => {
134
87
const fieldName = "fieldName" ;
135
88
136
- mount ( < MyForm >
137
- < MyField name = { fieldName } > </ MyField >
138
- < MyField name = { fieldName } > </ MyField >
139
- </ MyForm > ) ;
89
+ mount ( < BasicForm >
90
+ < BasicField name = { fieldName } > </ BasicField >
91
+ < BasicField name = { fieldName } > </ BasicField >
92
+ </ BasicForm > ) ;
140
93
} ) . toThrow ( ) ;
141
94
} ) ;
142
95
143
96
it ( "throws when rendering an empty fieldName" , ( ) => {
144
97
expect ( ( ) => {
145
- mount ( < MyForm >
146
- < MyField name = "" > </ MyField >
147
- </ MyForm > ) ;
98
+ mount ( < BasicForm >
99
+ < BasicField name = "" > </ BasicField >
100
+ </ BasicForm > ) ;
148
101
} ) . toThrow ( ) ;
149
102
} ) ;
150
103
151
104
it ( "throws when rendering an undefined fieldName" , ( ) => {
152
105
expect ( ( ) => {
153
- mount ( < MyForm >
154
- < MyField name = { undefined as any } > </ MyField >
155
- </ MyForm > ) ;
106
+ mount ( < BasicForm >
107
+ < BasicField name = { undefined as any } > </ BasicField >
108
+ </ BasicForm > ) ;
156
109
} ) . toThrow ( ) ;
157
110
} ) ;
158
111
159
112
it ( "throws when rendering a null fieldName" , ( ) => {
160
113
expect ( ( ) => {
161
- mount ( < MyForm >
162
- < MyField name = { null as any } > </ MyField >
163
- </ MyForm > ) ;
114
+ mount ( < BasicForm >
115
+ < BasicField name = { null as any } > </ BasicField >
116
+ </ BasicForm > ) ;
164
117
} ) . toThrow ( ) ;
165
118
} ) ;
166
119
167
120
it ( "renders html without wrappers" , ( ) => {
168
121
const formId = "FORM_ID" ;
169
- let form = mount ( < MyForm formId = { formId } >
170
- < MyField name = "fieldName" > </ MyField >
171
- </ MyForm > ) ;
122
+ let form = mount ( < BasicForm formId = { formId } >
123
+ < BasicField name = "fieldName" > </ BasicField >
124
+ </ BasicForm > ) ;
172
125
173
126
const formDOM = ReactDOM . findDOMNode ( form . instance ( ) ) ;
174
127
expect ( formDOM . tagName ) . toEqual ( "FORM" ) ;
@@ -179,9 +132,9 @@ describe("Field Base", () => {
179
132
it ( "adds event listener to form store when mounts" , ( ) => {
180
133
const FormStoresHandler = FSHContainer . FormStoresHandler ;
181
134
const formId = "FORM_ID" ;
182
- mount ( < MyForm formId = { formId } >
183
- < MyField name = "fieldName" > </ MyField >
184
- </ MyForm > ) ;
135
+ mount ( < BasicForm formId = { formId } >
136
+ < BasicField name = "fieldName" > </ BasicField >
137
+ </ BasicForm > ) ;
185
138
186
139
const formStore = FormStoresHandler . GetStore ( formId ) ;
187
140
@@ -191,9 +144,9 @@ describe("Field Base", () => {
191
144
it ( "removes event listener form store when destroyOnUnmount is true and it is unmounted" , ( ) => {
192
145
const FormStoresHandler = FSHContainer . FormStoresHandler ;
193
146
const formId = "FORM_ID" ;
194
- const form = mount ( < MyForm formId = { formId } >
195
- < MyField name = "fieldName" destroyOnUnmount = { true } > </ MyField >
196
- </ MyForm > ) ;
147
+ const form = mount ( < BasicForm formId = { formId } >
148
+ < BasicField name = "fieldName" destroyOnUnmount = { true } > </ BasicField >
149
+ </ BasicForm > ) ;
197
150
198
151
const formStore = FormStoresHandler . GetStore ( formId ) ;
199
152
expect ( formStore . listenersCount ( ) ) . toBe ( 1 ) ;
@@ -213,9 +166,9 @@ describe("Field Base", () => {
213
166
spy ( FormStore . prototype , "ValueChanged" ) ;
214
167
215
168
const fieldName = "fieldName" ;
216
- const form = mount ( < MyForm formId = { formId } >
217
- < MyField name = { fieldName } > </ MyField >
218
- </ MyForm > ) ;
169
+ const form = mount ( < BasicForm formId = { formId } >
170
+ < BasicField name = { fieldName } > </ BasicField >
171
+ </ BasicForm > ) ;
219
172
const formStore = FSHContainer . FormStoresHandler . GetStore ( formId ) ;
220
173
221
174
expect ( ( FormStore . prototype . ValueChanged as any ) . callCount ) . toEqual ( 0 ) ;
@@ -237,9 +190,9 @@ describe("Field Base", () => {
237
190
const newValue = "NEW_VALUE" ;
238
191
const fieldName = "fieldName" ;
239
192
240
- const form = mount ( < MyForm >
241
- < MyField name = { fieldName } > </ MyField >
242
- </ MyForm > ) ;
193
+ const form = mount ( < BasicForm >
194
+ < BasicField name = { fieldName } > </ BasicField >
195
+ </ BasicForm > ) ;
243
196
244
197
const input = form . find ( "input" ) ;
245
198
0 commit comments