@coderzz/mocker-data-generator 3.0.5
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.
- package/CHANGELOG.md +561 -0
- package/LICENSE +21 -0
- package/README.md +550 -0
- package/build/main/array-includes.d.ts +0 -0
- package/build/main/array-includes.js +45 -0
- package/build/main/index.d.ts +7 -0
- package/build/main/index.js +12 -0
- package/build/main/index.spec.d.ts +1 -0
- package/build/main/index.spec.js +16 -0
- package/build/main/lib/Generator.d.ts +61 -0
- package/build/main/lib/Generator.js +134 -0
- package/build/main/lib/Mocker.d.ts +22 -0
- package/build/main/lib/Mocker.js +76 -0
- package/build/main/lib/Schema.d.ts +9 -0
- package/build/main/lib/Schema.js +210 -0
- package/build/main/lib/types.d.ts +8 -0
- package/build/main/lib/types.js +2 -0
- package/build/main/lib/utils.d.ts +10 -0
- package/build/main/lib/utils.js +222 -0
- package/build/main/tests/Generator.db.spec.d.ts +1 -0
- package/build/main/tests/Generator.db.spec.js +33 -0
- package/build/main/tests/Generator.eval.spec.d.ts +1 -0
- package/build/main/tests/Generator.eval.spec.js +21 -0
- package/build/main/tests/Generator.function.spec.d.ts +1 -0
- package/build/main/tests/Generator.function.spec.js +48 -0
- package/build/main/tests/Generator.generator.spec.d.ts +1 -0
- package/build/main/tests/Generator.generator.spec.js +187 -0
- package/build/main/tests/Generator.hasMany.spec.d.ts +1 -0
- package/build/main/tests/Generator.hasMany.spec.js +115 -0
- package/build/main/tests/Generator.hasOne.spec.d.ts +1 -0
- package/build/main/tests/Generator.hasOne.spec.js +146 -0
- package/build/main/tests/Generator.incrementalId.spec.d.ts +1 -0
- package/build/main/tests/Generator.incrementalId.spec.js +26 -0
- package/build/main/tests/Generator.self.spec.d.ts +1 -0
- package/build/main/tests/Generator.self.spec.js +24 -0
- package/build/main/tests/Generator.static.spec.d.ts +1 -0
- package/build/main/tests/Generator.static.spec.js +15 -0
- package/build/main/tests/Generator.values.spec.d.ts +1 -0
- package/build/main/tests/Generator.values.spec.js +16 -0
- package/build/main/tests/Mocker.build.spec.d.ts +1 -0
- package/build/main/tests/Mocker.build.spec.js +196 -0
- package/build/main/tests/Mocker.reset.spec.d.ts +1 -0
- package/build/main/tests/Mocker.reset.spec.js +17 -0
- package/build/main/tests/Mocker.restart.spec.d.ts +1 -0
- package/build/main/tests/Mocker.restart.spec.js +24 -0
- package/build/main/tests/Mocker.schema.spec.d.ts +1 -0
- package/build/main/tests/Mocker.schema.spec.js +18 -0
- package/build/main/tests/Mocker.seed.spec.d.ts +1 -0
- package/build/main/tests/Mocker.seed.spec.js +42 -0
- package/build/main/tests/Schema.Array.spec.d.ts +1 -0
- package/build/main/tests/Schema.Array.spec.js +332 -0
- package/build/main/tests/Schema.BuildSingle.spec.d.ts +1 -0
- package/build/main/tests/Schema.BuildSingle.spec.js +13 -0
- package/build/main/tests/mocker.spec.d.ts +1 -0
- package/build/main/tests/mocker.spec.js +405 -0
- package/build/module/array-includes.js +45 -0
- package/build/module/index.js +7 -0
- package/build/module/lib/Generator.js +131 -0
- package/build/module/lib/Mocker.js +73 -0
- package/build/module/lib/Schema.js +207 -0
- package/build/module/lib/types.js +1 -0
- package/build/module/lib/utils.js +209 -0
- package/package.json +130 -0
@@ -0,0 +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
|
+
}); });
|
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|
@@ -0,0 +1,13 @@
|
|
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 schema = new __1.Schema('test', {}, {});
|
7
|
+
(0, ava_1.default)('Array: It should recognise static field', function (t) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
|
8
|
+
return tslib_1.__generator(this, function (_a) {
|
9
|
+
schema.buildSingle({ static: 'hello' });
|
10
|
+
t.true(schema.object === 'hello');
|
11
|
+
return [2 /*return*/];
|
12
|
+
});
|
13
|
+
}); });
|
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|