1 | import match from 'MATCH/match';
|
2 | const expect = require('chai').expect;
|
3 |
|
4 |
|
5 |
|
6 | var params = {
|
7 | abc: 1
|
8 | };
|
9 | var data = match.parse(params, {
|
10 | title: '$${{abc}}'
|
11 | });
|
12 | expect(data).to.be.eql({
|
13 | title: 1
|
14 | });
|
15 |
|
16 |
|
17 |
|
18 | var params = {
|
19 | abc: 1,
|
20 | name: {
|
21 | id: 100
|
22 | }
|
23 | };
|
24 | var data = match.parse(params, {
|
25 | title: '$${{abc}}',
|
26 | id: {
|
27 | id: '$${{name.id}}'
|
28 | }
|
29 | });
|
30 | expect(data).to.be.eql({
|
31 | title: 1,
|
32 | id: {
|
33 | id: 100
|
34 | }
|
35 | });
|
36 | var params = {
|
37 | };
|
38 | var data = match.parse(params, {
|
39 | title: '$${{abc}}',
|
40 | data: {
|
41 | id: '$${{name.id}}'
|
42 | },
|
43 | text: {
|
44 | title: '$${{name.abc}}'
|
45 | }
|
46 | });
|
47 | expect(data).to.be.eql({
|
48 | data: {
|
49 | },
|
50 | text: {
|
51 | }
|
52 | });
|
53 |
|
54 |
|
55 | var params = {
|
56 | abcd: 1
|
57 | };
|
58 | var data = match.parse(params, {
|
59 | title: '$${{abc}} || 123'
|
60 | });
|
61 | expect(data).to.be.eql({
|
62 | title: 123
|
63 | });
|
64 |
|
65 | var data = match.parse(params, {
|
66 | title: '$${{abc}} || true'
|
67 | });
|
68 | expect(data).to.be.eql({
|
69 | title: true
|
70 | });
|
71 |
|
72 | var data = match.parse(params, {
|
73 | title: '$${{abc}} || false'
|
74 | });
|
75 | expect(data).to.be.eql({
|
76 | title: false
|
77 | });
|
78 |
|
79 | var data = match.parse(params, {
|
80 | title: '$${{abc}} || "123"'
|
81 | });
|
82 | expect(data).to.be.eql({
|
83 | title: '123'
|
84 | });
|
85 |
|
86 | var data = match.parse(params, {
|
87 | title: "$${{abc}} || '123'"
|
88 | });
|
89 | expect(data).to.be.eql({
|
90 | title: '123'
|
91 | });
|
92 | var data = match.parse(params, {
|
93 | title: '$${{abc}} || []'
|
94 | });
|
95 | expect(data).to.be.eql({
|
96 | title: []
|
97 | });
|
98 | var data = match.parse(params, {
|
99 | title: '$${{abc}} || {}'
|
100 | });
|
101 | expect(data).to.be.eql({
|
102 | title: {}
|
103 | });
|
104 |
|
105 |
|
106 |
|
107 | var b = 1;
|
108 | var data = match.parse(params, {
|
109 | title: '$${{abc}} || {{b}}'
|
110 | });
|
111 |
|
112 |
|
113 |
|
114 |
|
115 | var params = {
|
116 | pid: 1,
|
117 | id: 2
|
118 | };
|
119 | var data = match.parse(params, {
|
120 | pid: 1,
|
121 | id: function (data) {
|
122 |
|
123 | return data.pid + data.id + this.pid;
|
124 | }
|
125 | });
|
126 | expect(data).to.be.eql({
|
127 | pid: 1,
|
128 | id: 4
|
129 | });
|
130 |
|
131 |
|
132 |
|
133 |
|
134 | var params = [
|
135 | {
|
136 | id: 1,
|
137 | type: 2
|
138 | },
|
139 | {
|
140 | id: 2
|
141 | }
|
142 | ];
|
143 | var data = match.parse(params, [{
|
144 | id: '$${{id}}',
|
145 | title: 'string',
|
146 | type: "$${{type}} || 'abc'"
|
147 | }]);
|
148 | expect(data).to.be.eql([
|
149 | {
|
150 | id: 1,
|
151 | title: 'string',
|
152 | type: 2
|
153 | },
|
154 | {
|
155 | id: 2,
|
156 | title: 'string',
|
157 | type: 'abc'
|
158 | }
|
159 | ]);
|
160 | var params = null;
|
161 | var data = match.parse(params, [{
|
162 | id: '$${{id}}',
|
163 | title: 'string',
|
164 | type: "$${{type}} || 'abc'"
|
165 | }]);
|
166 | expect(data).to.be.eql([]);
|
167 |
|
168 | var params = {
|
169 | };
|
170 | var data = match.parse(params, ['data', {
|
171 | id: '$${{id}}',
|
172 | title: 'string',
|
173 | type: "$${{type}} || 'abc'"
|
174 | }]);
|
175 | expect(data).to.be.eql([]);
|
176 |
|
177 | var params = {
|
178 | data: [
|
179 | {
|
180 | id: 1,
|
181 | type: 2
|
182 | },
|
183 | {
|
184 | id: 2
|
185 | }
|
186 | ]
|
187 | };
|
188 | var data = match.parse(params, ['data', {
|
189 | id: '$${{id}}',
|
190 | title: 'string',
|
191 | type: "$${{type}} || 'abc'"
|
192 | }]);
|
193 | expect(data).to.be.eql([
|
194 | {
|
195 | id: 1,
|
196 | title: 'string',
|
197 | type: 2
|
198 | },
|
199 | {
|
200 | id: 2,
|
201 | title: 'string',
|
202 | type: 'abc'
|
203 | }
|
204 | ]);
|
205 | var params = {
|
206 | data: {
|
207 | table: [
|
208 | {
|
209 | id: 1,
|
210 | type: 2
|
211 | },
|
212 | {
|
213 | id: 2
|
214 | }
|
215 | ]
|
216 | }
|
217 | };
|
218 | var data = match.parse(params, ['data.table', {
|
219 | id: '$${{id}}',
|
220 | title: 'string',
|
221 | type: "$${{type}} || 'abc'"
|
222 | }]);
|
223 | expect(data).to.be.eql([
|
224 | {
|
225 | id: 1,
|
226 | title: 'string',
|
227 | type: 2
|
228 | },
|
229 | {
|
230 | id: 2,
|
231 | title: 'string',
|
232 | type: 'abc'
|
233 | }
|
234 | ]);
|
235 |
|
236 |
|
237 | var params = {
|
238 | code: 200,
|
239 | msg: 'ok',
|
240 | data: [
|
241 | {
|
242 | id: 1,
|
243 | type: 'a'
|
244 | },
|
245 | {
|
246 | id: 2
|
247 | }
|
248 | ]
|
249 | };
|
250 | var data = match.parse(params, {
|
251 | code: '$${{code}}',
|
252 | msg: '$${{msg}}',
|
253 | data: ['data', {
|
254 | id: '$${{id}}',
|
255 | title: 'string',
|
256 | type: "$${{type}} || 'abc'"
|
257 | }]
|
258 | });
|
259 | expect(data).to.be.eql({
|
260 | code: 200,
|
261 | msg: 'ok',
|
262 | data: [
|
263 | {
|
264 | id: 1,
|
265 | title: 'string',
|
266 | type: 'a'
|
267 | },
|
268 | {
|
269 | id: 2,
|
270 | title: 'string',
|
271 | type: 'abc'
|
272 | }
|
273 | ]
|
274 | });
|
275 |
|
276 | var params = {
|
277 | code: 200,
|
278 | msg: 'ok',
|
279 | data: null
|
280 | };
|
281 | var data = match.parse(params, {
|
282 | code: '$${{code}}',
|
283 | msg: '$${{msg}}',
|
284 | data: ['data', {
|
285 | id: '$${{id}}',
|
286 | title: 'string',
|
287 | type: "$${{type}} || 'abc'"
|
288 | }]
|
289 | });
|
290 | expect(data).to.be.eql({
|
291 | code: 200,
|
292 | msg: 'ok',
|
293 | data: [
|
294 | ]
|
295 | });
|
296 |
|
297 |
|
298 | var params = {
|
299 | pid: 1,
|
300 | id: 2
|
301 | };
|
302 | var format = {
|
303 | a: function () {
|
304 | return 1;
|
305 | },
|
306 | b: function () {
|
307 | return 2;
|
308 | }
|
309 | };
|
310 |
|
311 |
|
312 | match.register(format, 'format');
|
313 | var data = match.parse(params, {
|
314 | pid: 1,
|
315 | id: function (data, format) {
|
316 |
|
317 | return data.pid + data.id + this.pid + format.b();
|
318 | }
|
319 | });
|
320 | expect(data).to.be.eql({
|
321 | pid: 1,
|
322 | id: 6
|
323 | });
|
324 |
|
325 |
|
326 | match.register([format], 'format');
|
327 | var data = match.parse(params, {
|
328 | pid: 1,
|
329 | id: function (data, format) {
|
330 |
|
331 | return data.pid + data.id + this.pid + format.b();
|
332 | }
|
333 | });
|
334 | expect(data).to.be.eql({
|
335 | pid: 1,
|
336 | id: 6
|
337 | });
|
338 |
|
339 |
|
340 | var format = {
|
341 | a: function () {
|
342 | return 11;
|
343 | },
|
344 | b: function () {
|
345 | return 22;
|
346 | }
|
347 | };
|
348 | match.update(format, 'format');
|
349 | var data = match.parse(params, {
|
350 | pid: 1,
|
351 | id: function (data, format) {
|
352 |
|
353 | return data.pid + data.id + this.pid + format.b();
|
354 | }
|
355 | });
|
356 | expect(data).to.be.eql({
|
357 | pid: 1,
|
358 | id: 26
|
359 | });
|
360 |
|
361 |
|
362 |
|
363 | match.remove('format');
|
364 | var data = match.parse(params, {
|
365 | pid: 1,
|
366 | id: function (data, format) {
|
367 |
|
368 | return data.pid + data.id + this.pid + format.b();
|
369 | }
|
370 | });
|
371 | expect(data).to.be.eql({
|
372 | pid: 1
|
373 | });
|
374 |
|
375 |
|
376 |
|
377 | var data = match.parse(params, {
|
378 | id: '$${{xx}}'
|
379 | });
|
380 | expect(data).to.be.eql({
|
381 | });
|