@coderzz/mocker-data-generator 3.0.5 → 3.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/LICENSE +0 -0
  3. package/README.md +0 -0
  4. package/build/main/array-includes.d.ts +0 -0
  5. package/build/main/array-includes.js +45 -45
  6. package/build/main/index.d.ts +7 -7
  7. package/build/main/index.js +12 -12
  8. package/build/main/index.spec.d.ts +1 -1
  9. package/build/main/index.spec.js +16 -16
  10. package/build/main/lib/Generator.d.ts +61 -61
  11. package/build/main/lib/Generator.js +134 -134
  12. package/build/main/lib/Mocker.d.ts +22 -22
  13. package/build/main/lib/Mocker.js +76 -76
  14. package/build/main/lib/Schema.d.ts +9 -9
  15. package/build/main/lib/Schema.js +210 -210
  16. package/build/main/lib/types.d.ts +8 -8
  17. package/build/main/lib/types.js +2 -2
  18. package/build/main/lib/utils.d.ts +10 -10
  19. package/build/main/lib/utils.js +222 -222
  20. package/build/main/tests/Generator.db.spec.d.ts +1 -1
  21. package/build/main/tests/Generator.db.spec.js +33 -33
  22. package/build/main/tests/Generator.eval.spec.d.ts +1 -1
  23. package/build/main/tests/Generator.eval.spec.js +21 -21
  24. package/build/main/tests/Generator.function.spec.d.ts +1 -1
  25. package/build/main/tests/Generator.function.spec.js +48 -48
  26. package/build/main/tests/Generator.generator.spec.d.ts +1 -1
  27. package/build/main/tests/Generator.generator.spec.js +187 -187
  28. package/build/main/tests/Generator.hasMany.spec.d.ts +1 -1
  29. package/build/main/tests/Generator.hasMany.spec.js +115 -115
  30. package/build/main/tests/Generator.hasOne.spec.d.ts +1 -1
  31. package/build/main/tests/Generator.hasOne.spec.js +146 -146
  32. package/build/main/tests/Generator.incrementalId.spec.d.ts +1 -1
  33. package/build/main/tests/Generator.incrementalId.spec.js +26 -26
  34. package/build/main/tests/Generator.self.spec.d.ts +1 -1
  35. package/build/main/tests/Generator.self.spec.js +24 -24
  36. package/build/main/tests/Generator.static.spec.d.ts +1 -1
  37. package/build/main/tests/Generator.static.spec.js +15 -15
  38. package/build/main/tests/Generator.values.spec.d.ts +1 -1
  39. package/build/main/tests/Generator.values.spec.js +16 -16
  40. package/build/main/tests/Mocker.build.spec.d.ts +1 -1
  41. package/build/main/tests/Mocker.build.spec.js +196 -196
  42. package/build/main/tests/Mocker.reset.spec.d.ts +1 -1
  43. package/build/main/tests/Mocker.reset.spec.js +17 -17
  44. package/build/main/tests/Mocker.restart.spec.d.ts +1 -1
  45. package/build/main/tests/Mocker.restart.spec.js +24 -24
  46. package/build/main/tests/Mocker.schema.spec.d.ts +1 -1
  47. package/build/main/tests/Mocker.schema.spec.js +18 -18
  48. package/build/main/tests/Mocker.seed.spec.d.ts +1 -1
  49. package/build/main/tests/Mocker.seed.spec.js +42 -42
  50. package/build/main/tests/Schema.Array.spec.d.ts +1 -1
  51. package/build/main/tests/Schema.Array.spec.js +332 -332
  52. package/build/main/tests/Schema.BuildSingle.spec.d.ts +1 -1
  53. package/build/main/tests/Schema.BuildSingle.spec.js +13 -13
  54. package/build/main/tests/mocker.spec.d.ts +1 -1
  55. package/build/main/tests/mocker.spec.js +405 -405
  56. package/build/module/array-includes.js +45 -45
  57. package/build/module/index.js +7 -7
  58. package/build/module/lib/Generator.js +131 -131
  59. package/build/module/lib/Mocker.js +73 -73
  60. package/build/module/lib/Schema.js +207 -207
  61. package/build/module/lib/types.js +1 -1
  62. package/build/module/lib/utils.js +209 -209
  63. package/package.json +1 -1
@@ -1,332 +1,332 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- var tslib_1 = require("tslib");
4
- var ava_1 = require("ava");
5
- var __1 = require("..");
6
- var utils_1 = require("../lib/utils");
7
- var schema = new __1.Schema('test', {}, {});
8
- var arrayGenerationFixed = function (arrayModel, result) {
9
- var length = 10;
10
- var arrResult = Array.from(new Array(10)).map(function (_, index) { return result; });
11
- var arr = [];
12
- for (var i = 0; i < arrayModel.length; i++) {
13
- arr.push(result);
14
- }
15
- var situation = {
16
- test: [tslib_1.__assign(tslib_1.__assign({}, arrayModel), { length: 10, fixedLength: true })]
17
- };
18
- return {
19
- model: situation,
20
- expectedResult: {
21
- test: arrResult
22
- }
23
- };
24
- };
25
- (0, ava_1.default)('Array: It should recognise static field', function (t) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
26
- var _a, model, expectedResult, schema, data;
27
- return tslib_1.__generator(this, function (_b) {
28
- _a = arrayGenerationFixed({ static: 'hello' }, 'hello'), model = _a.model, expectedResult = _a.expectedResult;
29
- schema = new __1.Schema('web', model, 1);
30
- data = schema.build();
31
- t.deepEqual(data[0], expectedResult);
32
- return [2 /*return*/];
33
- });
34
- }); });
35
- (0, ava_1.default)('Array: It should recognise arrow function field', function (t) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
36
- var _a, model, expectedResult, schema, data;
37
- return tslib_1.__generator(this, function (_b) {
38
- _a = arrayGenerationFixed({ function: function () { return 'hello'; } }, 'hello'), model = _a.model, expectedResult = _a.expectedResult;
39
- schema = new __1.Schema('web', model, 1);
40
- data = schema.build();
41
- t.deepEqual(data[0], expectedResult);
42
- return [2 /*return*/];
43
- });
44
- }); });
45
- (0, ava_1.default)('Array: It should recognise normal function field', function (t) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
46
- var _a, model, expectedResult, schema, data;
47
- return tslib_1.__generator(this, function (_b) {
48
- _a = arrayGenerationFixed({
49
- function: function () {
50
- return 'hello';
51
- }
52
- }, 'hello'), model = _a.model, expectedResult = _a.expectedResult;
53
- schema = new __1.Schema('web', model, 1);
54
- data = schema.build();
55
- t.deepEqual(data[0], expectedResult);
56
- return [2 /*return*/];
57
- });
58
- }); });
59
- (0, ava_1.default)('Array: Should generate fixed length', function (t) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
60
- var expectedResult, model, schema, data;
61
- return tslib_1.__generator(this, function (_a) {
62
- expectedResult = {
63
- test: Array.from(new Array(10)).map(function (_) { return 'test'; })
64
- };
65
- model = {
66
- test: [
67
- {
68
- static: 'test',
69
- length: 10,
70
- fixedLength: true
71
- }
72
- ]
73
- };
74
- schema = new __1.Schema('web', model, 1);
75
- data = schema.build();
76
- t.deepEqual(data[0], expectedResult);
77
- return [2 /*return*/];
78
- });
79
- }); });
80
- (0, ava_1.default)('Array: Should generate function length', function (t) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
81
- var model, schema, data;
82
- return tslib_1.__generator(this, function (_a) {
83
- model = {
84
- test: [
85
- {
86
- static: 'test',
87
- length: function () { return 10; }
88
- }
89
- ]
90
- };
91
- schema = new __1.Schema('web', model, 1);
92
- data = schema.build();
93
- t.true(data[0].test.length === 10);
94
- return [2 /*return*/];
95
- });
96
- }); });
97
- (0, ava_1.default)('Array: Should generate dynamic length', function (t) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
98
- var model, schema, data;
99
- return tslib_1.__generator(this, function (_a) {
100
- model = {
101
- test: [
102
- {
103
- static: 'test',
104
- length: 10
105
- }
106
- ]
107
- };
108
- schema = new __1.Schema('web', model, 1);
109
- data = schema.build();
110
- t.true(data[0].test.length <= 10);
111
- t.true(data[0].test.length > 0);
112
- return [2 /*return*/];
113
- });
114
- }); });
115
- (0, ava_1.default)('Array: It should recognise index param in normal function field', function (t) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
116
- var expectedResult, model, schema, data;
117
- return tslib_1.__generator(this, function (_a) {
118
- expectedResult = {
119
- test: Array.from(new Array(10)).map(function (_, index) { return index; })
120
- };
121
- model = {
122
- test: [
123
- {
124
- function: function (i) {
125
- return i;
126
- },
127
- length: 10,
128
- fixedLength: true
129
- }
130
- ]
131
- };
132
- schema = new __1.Schema('web', model, 1);
133
- data = schema.build();
134
- t.deepEqual(data[0], expectedResult);
135
- return [2 /*return*/];
136
- });
137
- }); });
138
- (0, ava_1.default)('Array: It should recognise index param in arrow function field', function (t) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
139
- var expectedResult, model, schema, data;
140
- return tslib_1.__generator(this, function (_a) {
141
- expectedResult = {
142
- test: Array.from(new Array(10)).map(function (_, index) { return index; })
143
- };
144
- model = {
145
- test: [
146
- {
147
- function: function (i) { return i; },
148
- length: 10,
149
- fixedLength: true
150
- }
151
- ]
152
- };
153
- schema = new __1.Schema('web', model, 1);
154
- data = schema.build();
155
- t.deepEqual(data[0], expectedResult);
156
- return [2 /*return*/];
157
- });
158
- }); });
159
- (0, ava_1.default)('Array: It should recognise context in function field', function (t) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
160
- var model, schema, data;
161
- return tslib_1.__generator(this, function (_a) {
162
- model = {
163
- test: [
164
- {
165
- function: function () {
166
- return tslib_1.__assign({}, this);
167
- },
168
- length: 10,
169
- fixedLength: true
170
- }
171
- ]
172
- };
173
- schema = new __1.Schema('web', model, 1);
174
- data = schema.build();
175
- data[0].test.forEach(function (d) {
176
- var keys = Object.keys(d);
177
- t.deepEqual(keys, ['object', 'db', 'generators']);
178
- });
179
- return [2 /*return*/];
180
- });
181
- }); });
182
- (0, ava_1.default)('Array: Function generator should include index and length', function (t) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
183
- var expectedResult, model, schema, data;
184
- return tslib_1.__generator(this, function (_a) {
185
- expectedResult = {
186
- test: Array.from(new Array(10)).map(function (_, index) { return ({
187
- index: index,
188
- length: 10
189
- }); })
190
- };
191
- model = {
192
- test: [
193
- {
194
- function: function (index, length, self) {
195
- return {
196
- index: index,
197
- length: length
198
- };
199
- },
200
- fixedLength: true,
201
- length: 10
202
- }
203
- ]
204
- };
205
- schema = new __1.Schema('web', model, 1);
206
- data = schema.build();
207
- t.deepEqual(data[0], expectedResult);
208
- return [2 /*return*/];
209
- });
210
- }); });
211
- (0, ava_1.default)('Array: Function generator should include self too', function (t) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
212
- var expectedResult, model, schema, data;
213
- return tslib_1.__generator(this, function (_a) {
214
- expectedResult = {
215
- test: Array.from(new Array(10)).map(function (_, index) { return 'hello'; })
216
- };
217
- model = {
218
- test: [
219
- {
220
- function: function (index, length, self) {
221
- // index is provided
222
- t.deepEqual(self, Array.from(new Array(index)).map(function (_, index) { return 'hello'; }));
223
- return 'hello';
224
- },
225
- fixedLength: true,
226
- length: 10
227
- }
228
- ]
229
- };
230
- schema = new __1.Schema('web', model, 1);
231
- data = schema.build();
232
- t.deepEqual(data[0], expectedResult);
233
- return [2 /*return*/];
234
- });
235
- }); });
236
- (0, ava_1.default)('Array: It should concat elements', function (t) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
237
- var model, schema, data;
238
- return tslib_1.__generator(this, function (_a) {
239
- model = {
240
- name: {
241
- values: ['txuri', 'pitxi', 'kitty']
242
- },
243
- emails: [
244
- {
245
- static: 'lorem.words()[0]',
246
- length: 10,
247
- concat: '[object.name, object.name]'
248
- }
249
- ]
250
- };
251
- schema = new __1.Schema('test', model, 1);
252
- data = schema.build();
253
- t.true((0, utils_1.isArray)(data[0].emails));
254
- t.true(data[0].emails.length < 13);
255
- t.true(data[0].emails.length > 2);
256
- return [2 /*return*/];
257
- });
258
- }); });
259
- /*
260
- // TODO: check this behaviour
261
- test('Should generate correctly with 2 ways of Array specification', async t => {
262
- let values = ['txuri', 'pitxi', 'kitty']
263
- let model = {
264
- name: {
265
- values,
266
- },
267
- name2: values
268
- }
269
-
270
- let schema = new Schema('test', model, 1)
271
- let data = schema.build()
272
- console.log(data[0])
273
- t.true(values.indexOf(data[0].name) > -1)
274
- t.true(values.indexOf(data[0].name2) > -1)
275
- })*/
276
- (0, ava_1.default)('Array: It should concatenated strings but not repeat same element itself (concatStrict)', function (t) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
277
- var model, schema, data, appeared;
278
- return tslib_1.__generator(this, function (_a) {
279
- model = {
280
- name: {
281
- values: ['txuri', 'pitxi', 'kitty']
282
- },
283
- emails: [
284
- {
285
- static: 'lorem.words()[0]',
286
- length: 4,
287
- concat: '[object.name, object.name]',
288
- concatStrict: true,
289
- fixedLength: true
290
- }
291
- ]
292
- };
293
- schema = new __1.Schema('test', model, 1);
294
- data = schema.build();
295
- t.true((0, utils_1.isArray)(data[0].emails));
296
- t.true(data[0].emails.length === 4);
297
- appeared = 0;
298
- data[0].emails.forEach(function (d) {
299
- appeared = d === data[0].name ? appeared + 1 : appeared;
300
- });
301
- t.true(appeared === 1);
302
- return [2 /*return*/];
303
- });
304
- }); });
305
- (0, ava_1.default)('Array: It should concatenated strings but increase the length if it is fixed', function (t) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
306
- var model, schema, data, appeared;
307
- return tslib_1.__generator(this, function (_a) {
308
- model = {
309
- name: {
310
- values: ['txuri', 'pitxi', 'kitty']
311
- },
312
- emails: [
313
- {
314
- static: 'lorem.words()[0]',
315
- length: 10,
316
- concat: '[object.name, object.name]',
317
- fixedLength: true
318
- }
319
- ]
320
- };
321
- schema = new __1.Schema('test', model, 1);
322
- data = schema.build();
323
- t.true((0, utils_1.isArray)(data[0].emails));
324
- t.true(data[0].emails.length === 10);
325
- appeared = 0;
326
- data[0].emails.forEach(function (d) {
327
- appeared = d === data[0].name ? appeared + 1 : appeared;
328
- });
329
- t.true(appeared === 2);
330
- return [2 /*return*/];
331
- });
332
- }); });
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var tslib_1 = require("tslib");
4
+ var ava_1 = require("ava");
5
+ var __1 = require("..");
6
+ var utils_1 = require("../lib/utils");
7
+ var schema = new __1.Schema('test', {}, {});
8
+ var arrayGenerationFixed = function (arrayModel, result) {
9
+ var length = 10;
10
+ var arrResult = Array.from(new Array(10)).map(function (_, index) { return result; });
11
+ var arr = [];
12
+ for (var i = 0; i < arrayModel.length; i++) {
13
+ arr.push(result);
14
+ }
15
+ var situation = {
16
+ test: [tslib_1.__assign(tslib_1.__assign({}, arrayModel), { length: 10, fixedLength: true })]
17
+ };
18
+ return {
19
+ model: situation,
20
+ expectedResult: {
21
+ test: arrResult
22
+ }
23
+ };
24
+ };
25
+ (0, ava_1.default)('Array: It should recognise static field', function (t) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
26
+ var _a, model, expectedResult, schema, data;
27
+ return tslib_1.__generator(this, function (_b) {
28
+ _a = arrayGenerationFixed({ static: 'hello' }, 'hello'), model = _a.model, expectedResult = _a.expectedResult;
29
+ schema = new __1.Schema('web', model, 1);
30
+ data = schema.build();
31
+ t.deepEqual(data[0], expectedResult);
32
+ return [2 /*return*/];
33
+ });
34
+ }); });
35
+ (0, ava_1.default)('Array: It should recognise arrow function field', function (t) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
36
+ var _a, model, expectedResult, schema, data;
37
+ return tslib_1.__generator(this, function (_b) {
38
+ _a = arrayGenerationFixed({ function: function () { return 'hello'; } }, 'hello'), model = _a.model, expectedResult = _a.expectedResult;
39
+ schema = new __1.Schema('web', model, 1);
40
+ data = schema.build();
41
+ t.deepEqual(data[0], expectedResult);
42
+ return [2 /*return*/];
43
+ });
44
+ }); });
45
+ (0, ava_1.default)('Array: It should recognise normal function field', function (t) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
46
+ var _a, model, expectedResult, schema, data;
47
+ return tslib_1.__generator(this, function (_b) {
48
+ _a = arrayGenerationFixed({
49
+ function: function () {
50
+ return 'hello';
51
+ }
52
+ }, 'hello'), model = _a.model, expectedResult = _a.expectedResult;
53
+ schema = new __1.Schema('web', model, 1);
54
+ data = schema.build();
55
+ t.deepEqual(data[0], expectedResult);
56
+ return [2 /*return*/];
57
+ });
58
+ }); });
59
+ (0, ava_1.default)('Array: Should generate fixed length', function (t) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
60
+ var expectedResult, model, schema, data;
61
+ return tslib_1.__generator(this, function (_a) {
62
+ expectedResult = {
63
+ test: Array.from(new Array(10)).map(function (_) { return 'test'; })
64
+ };
65
+ model = {
66
+ test: [
67
+ {
68
+ static: 'test',
69
+ length: 10,
70
+ fixedLength: true
71
+ }
72
+ ]
73
+ };
74
+ schema = new __1.Schema('web', model, 1);
75
+ data = schema.build();
76
+ t.deepEqual(data[0], expectedResult);
77
+ return [2 /*return*/];
78
+ });
79
+ }); });
80
+ (0, ava_1.default)('Array: Should generate function length', function (t) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
81
+ var model, schema, data;
82
+ return tslib_1.__generator(this, function (_a) {
83
+ model = {
84
+ test: [
85
+ {
86
+ static: 'test',
87
+ length: function () { return 10; }
88
+ }
89
+ ]
90
+ };
91
+ schema = new __1.Schema('web', model, 1);
92
+ data = schema.build();
93
+ t.true(data[0].test.length === 10);
94
+ return [2 /*return*/];
95
+ });
96
+ }); });
97
+ (0, ava_1.default)('Array: Should generate dynamic length', function (t) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
98
+ var model, schema, data;
99
+ return tslib_1.__generator(this, function (_a) {
100
+ model = {
101
+ test: [
102
+ {
103
+ static: 'test',
104
+ length: 10
105
+ }
106
+ ]
107
+ };
108
+ schema = new __1.Schema('web', model, 1);
109
+ data = schema.build();
110
+ t.true(data[0].test.length <= 10);
111
+ t.true(data[0].test.length > 0);
112
+ return [2 /*return*/];
113
+ });
114
+ }); });
115
+ (0, ava_1.default)('Array: It should recognise index param in normal function field', function (t) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
116
+ var expectedResult, model, schema, data;
117
+ return tslib_1.__generator(this, function (_a) {
118
+ expectedResult = {
119
+ test: Array.from(new Array(10)).map(function (_, index) { return index; })
120
+ };
121
+ model = {
122
+ test: [
123
+ {
124
+ function: function (i) {
125
+ return i;
126
+ },
127
+ length: 10,
128
+ fixedLength: true
129
+ }
130
+ ]
131
+ };
132
+ schema = new __1.Schema('web', model, 1);
133
+ data = schema.build();
134
+ t.deepEqual(data[0], expectedResult);
135
+ return [2 /*return*/];
136
+ });
137
+ }); });
138
+ (0, ava_1.default)('Array: It should recognise index param in arrow function field', function (t) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
139
+ var expectedResult, model, schema, data;
140
+ return tslib_1.__generator(this, function (_a) {
141
+ expectedResult = {
142
+ test: Array.from(new Array(10)).map(function (_, index) { return index; })
143
+ };
144
+ model = {
145
+ test: [
146
+ {
147
+ function: function (i) { return i; },
148
+ length: 10,
149
+ fixedLength: true
150
+ }
151
+ ]
152
+ };
153
+ schema = new __1.Schema('web', model, 1);
154
+ data = schema.build();
155
+ t.deepEqual(data[0], expectedResult);
156
+ return [2 /*return*/];
157
+ });
158
+ }); });
159
+ (0, ava_1.default)('Array: It should recognise context in function field', function (t) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
160
+ var model, schema, data;
161
+ return tslib_1.__generator(this, function (_a) {
162
+ model = {
163
+ test: [
164
+ {
165
+ function: function () {
166
+ return tslib_1.__assign({}, this);
167
+ },
168
+ length: 10,
169
+ fixedLength: true
170
+ }
171
+ ]
172
+ };
173
+ schema = new __1.Schema('web', model, 1);
174
+ data = schema.build();
175
+ data[0].test.forEach(function (d) {
176
+ var keys = Object.keys(d);
177
+ t.deepEqual(keys, ['object', 'db', 'generators']);
178
+ });
179
+ return [2 /*return*/];
180
+ });
181
+ }); });
182
+ (0, ava_1.default)('Array: Function generator should include index and length', function (t) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
183
+ var expectedResult, model, schema, data;
184
+ return tslib_1.__generator(this, function (_a) {
185
+ expectedResult = {
186
+ test: Array.from(new Array(10)).map(function (_, index) { return ({
187
+ index: index,
188
+ length: 10
189
+ }); })
190
+ };
191
+ model = {
192
+ test: [
193
+ {
194
+ function: function (index, length, self) {
195
+ return {
196
+ index: index,
197
+ length: length
198
+ };
199
+ },
200
+ fixedLength: true,
201
+ length: 10
202
+ }
203
+ ]
204
+ };
205
+ schema = new __1.Schema('web', model, 1);
206
+ data = schema.build();
207
+ t.deepEqual(data[0], expectedResult);
208
+ return [2 /*return*/];
209
+ });
210
+ }); });
211
+ (0, ava_1.default)('Array: Function generator should include self too', function (t) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
212
+ var expectedResult, model, schema, data;
213
+ return tslib_1.__generator(this, function (_a) {
214
+ expectedResult = {
215
+ test: Array.from(new Array(10)).map(function (_, index) { return 'hello'; })
216
+ };
217
+ model = {
218
+ test: [
219
+ {
220
+ function: function (index, length, self) {
221
+ // index is provided
222
+ t.deepEqual(self, Array.from(new Array(index)).map(function (_, index) { return 'hello'; }));
223
+ return 'hello';
224
+ },
225
+ fixedLength: true,
226
+ length: 10
227
+ }
228
+ ]
229
+ };
230
+ schema = new __1.Schema('web', model, 1);
231
+ data = schema.build();
232
+ t.deepEqual(data[0], expectedResult);
233
+ return [2 /*return*/];
234
+ });
235
+ }); });
236
+ (0, ava_1.default)('Array: It should concat elements', function (t) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
237
+ var model, schema, data;
238
+ return tslib_1.__generator(this, function (_a) {
239
+ model = {
240
+ name: {
241
+ values: ['txuri', 'pitxi', 'kitty']
242
+ },
243
+ emails: [
244
+ {
245
+ static: 'lorem.words()[0]',
246
+ length: 10,
247
+ concat: '[object.name, object.name]'
248
+ }
249
+ ]
250
+ };
251
+ schema = new __1.Schema('test', model, 1);
252
+ data = schema.build();
253
+ t.true((0, utils_1.isArray)(data[0].emails));
254
+ t.true(data[0].emails.length < 13);
255
+ t.true(data[0].emails.length > 2);
256
+ return [2 /*return*/];
257
+ });
258
+ }); });
259
+ /*
260
+ // TODO: check this behaviour
261
+ test('Should generate correctly with 2 ways of Array specification', async t => {
262
+ let values = ['txuri', 'pitxi', 'kitty']
263
+ let model = {
264
+ name: {
265
+ values,
266
+ },
267
+ name2: values
268
+ }
269
+
270
+ let schema = new Schema('test', model, 1)
271
+ let data = schema.build()
272
+ console.log(data[0])
273
+ t.true(values.indexOf(data[0].name) > -1)
274
+ t.true(values.indexOf(data[0].name2) > -1)
275
+ })*/
276
+ (0, ava_1.default)('Array: It should concatenated strings but not repeat same element itself (concatStrict)', function (t) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
277
+ var model, schema, data, appeared;
278
+ return tslib_1.__generator(this, function (_a) {
279
+ model = {
280
+ name: {
281
+ values: ['txuri', 'pitxi', 'kitty']
282
+ },
283
+ emails: [
284
+ {
285
+ static: 'lorem.words()[0]',
286
+ length: 4,
287
+ concat: '[object.name, object.name]',
288
+ concatStrict: true,
289
+ fixedLength: true
290
+ }
291
+ ]
292
+ };
293
+ schema = new __1.Schema('test', model, 1);
294
+ data = schema.build();
295
+ t.true((0, utils_1.isArray)(data[0].emails));
296
+ t.true(data[0].emails.length === 4);
297
+ appeared = 0;
298
+ data[0].emails.forEach(function (d) {
299
+ appeared = d === data[0].name ? appeared + 1 : appeared;
300
+ });
301
+ t.true(appeared === 1);
302
+ return [2 /*return*/];
303
+ });
304
+ }); });
305
+ (0, ava_1.default)('Array: It should concatenated strings but increase the length if it is fixed', function (t) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
306
+ var model, schema, data, appeared;
307
+ return tslib_1.__generator(this, function (_a) {
308
+ model = {
309
+ name: {
310
+ values: ['txuri', 'pitxi', 'kitty']
311
+ },
312
+ emails: [
313
+ {
314
+ static: 'lorem.words()[0]',
315
+ length: 10,
316
+ concat: '[object.name, object.name]',
317
+ fixedLength: true
318
+ }
319
+ ]
320
+ };
321
+ schema = new __1.Schema('test', model, 1);
322
+ data = schema.build();
323
+ t.true((0, utils_1.isArray)(data[0].emails));
324
+ t.true(data[0].emails.length === 10);
325
+ appeared = 0;
326
+ data[0].emails.forEach(function (d) {
327
+ appeared = d === data[0].name ? appeared + 1 : appeared;
328
+ });
329
+ t.true(appeared === 2);
330
+ return [2 /*return*/];
331
+ });
332
+ }); });
@@ -1 +1 @@
1
- export {};
1
+ export {};