Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit e1e8fbb

Browse files
Add test.md
1 parent 6554a31 commit e1e8fbb

File tree

1 file changed

+228
-0
lines changed

1 file changed

+228
-0
lines changed

‎docs/test.md

Lines changed: 228 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,228 @@
1+
# TOC
2+
- [merge.js](#mergejs)
3+
- [merge](#mergejs-merge)
4+
- [schema-defaults.js](#schema-defaultsjs)
5+
- [createDefaults](#schema-defaultsjs-createdefaults)
6+
- [defaultForm](#schema-defaultsjs-defaultform)
7+
<a name=""></a>
8+
9+
<a name="mergejs"></a>
10+
# merge.js
11+
should contain a function for merging schema and form definitions.
12+
13+
```js
14+
_merge.merge.should.be.an('function');
15+
```
16+
17+
<a name="mergejs-merge"></a>
18+
## merge
19+
should combine a schema and form definition, regardless of order.
20+
21+
```js
22+
(0, _merge.merge)(schema, ['name', 'gender']).should.be.deep.equal(stdForm.form);
23+
(0, _merge.merge)(schema, ['gender']).should.be.deep.equal([stdForm.form[1]]);
24+
(0, _merge.merge)(schema, ['gender', 'name']).should.be.deep.equal([stdForm.form[1], stdForm.form[0]]);
25+
```
26+
27+
should handle a wildcard * in the form definition.
28+
29+
```js
30+
(0, _merge.merge)(schema, ['*']).should.be.deep.equal(stdForm.form);
31+
```
32+
33+
should allow items that are not in the schema.
34+
35+
```js
36+
(0, _merge.merge)(schema, ['*', { type: 'fieldset' }]).should.be.deep.equal(stdForm.form.concat([{ type: 'fieldset' }]));
37+
```
38+
39+
<a name="schema-defaultsjs"></a>
40+
# schema-defaults.js
41+
should hold functions for generating a default form schema from defaults it creates.
42+
43+
```js
44+
_schemaDefaults.defaultForm.should.be.an('function');
45+
_schemaDefaults.createDefaults.should.be.an('function');
46+
```
47+
48+
<a name="schema-defaultsjs-createdefaults"></a>
49+
## createDefaults
50+
should create default rules.
51+
52+
```js
53+
var rules = (0, _schemaDefaults.createDefaults)();
54+
rules.should.be.an('object');
55+
```
56+
57+
<a name="schema-defaultsjs-defaultform"></a>
58+
## defaultForm
59+
should generate default form def from a schema.
60+
61+
```js
62+
var schema = {
63+
'type': 'object',
64+
'properties': {
65+
'name': {
66+
'title': 'Name',
67+
'description': 'Gimme yea name lad',
68+
'type': 'string'
69+
},
70+
'gender': {
71+
'title': 'Choose',
72+
'type': 'string',
73+
'enum': ['undefined', 'null', 'NaN']
74+
},
75+
'overEighteen': {
76+
'title': 'Are you over 18 years old?',
77+
'type': 'boolean',
78+
'default': false
79+
},
80+
'attributes': {
81+
'type': 'object',
82+
'required': ['eyecolor'],
83+
'properties': {
84+
'eyecolor': { 'type': 'string', 'title': 'Eye color' },
85+
'haircolor': { 'type': 'string', 'title': 'Hair color' },
86+
'shoulders': {
87+
'type': 'object',
88+
'title': 'Shoulders',
89+
'properties': {
90+
'left': { 'type': 'string' },
91+
'right': { 'type': 'string' }
92+
}
93+
}
94+
}
95+
}
96+
}
97+
};
98+
var form = [{
99+
'title': 'Name',
100+
'description': 'Gimme yea name lad',
101+
'schema': {
102+
'title': 'Name',
103+
'description': 'Gimme yea name lad',
104+
'type': 'string'
105+
},
106+
'ngModelOptions': {},
107+
'key': ['name'],
108+
'type': 'text'
109+
}, {
110+
'title': 'Choose',
111+
'schema': {
112+
'title': 'Choose',
113+
'type': 'string',
114+
'enum': ['undefined', 'null', 'NaN']
115+
},
116+
'ngModelOptions': {},
117+
'key': ['gender'],
118+
'type': 'select',
119+
'titleMap': [{
120+
'name': 'undefined',
121+
'value': 'undefined'
122+
}, {
123+
'name': 'null',
124+
'value': 'null'
125+
}, {
126+
'name': 'NaN',
127+
'value': 'NaN'
128+
}]
129+
}, {
130+
'title': 'Are you over 18 years old?',
131+
'schema': {
132+
'title': 'Are you over 18 years old?',
133+
'type': 'boolean',
134+
'default': false
135+
},
136+
'ngModelOptions': {},
137+
'key': ['overEighteen'],
138+
'type': 'checkbox'
139+
}, {
140+
'title': 'attributes',
141+
'schema': {
142+
'type': 'object',
143+
'required': ['eyecolor'],
144+
'properties': {
145+
'eyecolor': {
146+
'type': 'string',
147+
'title': 'Eye color'
148+
},
149+
'haircolor': {
150+
'type': 'string',
151+
'title': 'Hair color'
152+
},
153+
'shoulders': {
154+
'type': 'object',
155+
'title': 'Shoulders',
156+
'properties': {
157+
'left': {
158+
'type': 'string'
159+
},
160+
'right': {
161+
'type': 'string'
162+
}
163+
}
164+
}
165+
}
166+
},
167+
'ngModelOptions': {},
168+
'key': ['attributes'],
169+
'type': 'fieldset',
170+
'items': [{
171+
'title': 'Eye color',
172+
'required': true,
173+
'schema': {
174+
'type': 'string',
175+
'title': 'Eye color'
176+
},
177+
'ngModelOptions': {},
178+
'key': ['attributes', 'eyecolor'],
179+
'type': 'text'
180+
}, {
181+
'title': 'Hair color',
182+
'schema': {
183+
'type': 'string',
184+
'title': 'Hair color'
185+
},
186+
'ngModelOptions': {},
187+
'key': ['attributes', 'haircolor'],
188+
'type': 'text'
189+
}, {
190+
'title': 'Shoulders',
191+
'schema': {
192+
'type': 'object',
193+
'title': 'Shoulders',
194+
'properties': {
195+
'left': {
196+
'type': 'string'
197+
},
198+
'right': {
199+
'type': 'string'
200+
}
201+
}
202+
},
203+
'ngModelOptions': {},
204+
'key': ['attributes', 'shoulders'],
205+
'type': 'fieldset',
206+
'items': [{
207+
'title': 'left',
208+
'schema': {
209+
'type': 'string'
210+
},
211+
'ngModelOptions': {},
212+
'key': ['attributes', 'shoulders', 'left'],
213+
'type': 'text'
214+
}, {
215+
'title': 'right',
216+
'schema': {
217+
'type': 'string'
218+
},
219+
'ngModelOptions': {},
220+
'key': ['attributes', 'shoulders', 'right'],
221+
'type': 'text'
222+
}]
223+
}]
224+
}];
225+
var f = (0, _schemaDefaults.defaultForm)(schema, (0, _schemaDefaults.createDefaults)());
226+
f.form.should.be.deep.equal(form);
227+
```
228+

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /