@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.
Files changed (63) hide show
  1. package/CHANGELOG.md +561 -0
  2. package/LICENSE +21 -0
  3. package/README.md +550 -0
  4. package/build/main/array-includes.d.ts +0 -0
  5. package/build/main/array-includes.js +45 -0
  6. package/build/main/index.d.ts +7 -0
  7. package/build/main/index.js +12 -0
  8. package/build/main/index.spec.d.ts +1 -0
  9. package/build/main/index.spec.js +16 -0
  10. package/build/main/lib/Generator.d.ts +61 -0
  11. package/build/main/lib/Generator.js +134 -0
  12. package/build/main/lib/Mocker.d.ts +22 -0
  13. package/build/main/lib/Mocker.js +76 -0
  14. package/build/main/lib/Schema.d.ts +9 -0
  15. package/build/main/lib/Schema.js +210 -0
  16. package/build/main/lib/types.d.ts +8 -0
  17. package/build/main/lib/types.js +2 -0
  18. package/build/main/lib/utils.d.ts +10 -0
  19. package/build/main/lib/utils.js +222 -0
  20. package/build/main/tests/Generator.db.spec.d.ts +1 -0
  21. package/build/main/tests/Generator.db.spec.js +33 -0
  22. package/build/main/tests/Generator.eval.spec.d.ts +1 -0
  23. package/build/main/tests/Generator.eval.spec.js +21 -0
  24. package/build/main/tests/Generator.function.spec.d.ts +1 -0
  25. package/build/main/tests/Generator.function.spec.js +48 -0
  26. package/build/main/tests/Generator.generator.spec.d.ts +1 -0
  27. package/build/main/tests/Generator.generator.spec.js +187 -0
  28. package/build/main/tests/Generator.hasMany.spec.d.ts +1 -0
  29. package/build/main/tests/Generator.hasMany.spec.js +115 -0
  30. package/build/main/tests/Generator.hasOne.spec.d.ts +1 -0
  31. package/build/main/tests/Generator.hasOne.spec.js +146 -0
  32. package/build/main/tests/Generator.incrementalId.spec.d.ts +1 -0
  33. package/build/main/tests/Generator.incrementalId.spec.js +26 -0
  34. package/build/main/tests/Generator.self.spec.d.ts +1 -0
  35. package/build/main/tests/Generator.self.spec.js +24 -0
  36. package/build/main/tests/Generator.static.spec.d.ts +1 -0
  37. package/build/main/tests/Generator.static.spec.js +15 -0
  38. package/build/main/tests/Generator.values.spec.d.ts +1 -0
  39. package/build/main/tests/Generator.values.spec.js +16 -0
  40. package/build/main/tests/Mocker.build.spec.d.ts +1 -0
  41. package/build/main/tests/Mocker.build.spec.js +196 -0
  42. package/build/main/tests/Mocker.reset.spec.d.ts +1 -0
  43. package/build/main/tests/Mocker.reset.spec.js +17 -0
  44. package/build/main/tests/Mocker.restart.spec.d.ts +1 -0
  45. package/build/main/tests/Mocker.restart.spec.js +24 -0
  46. package/build/main/tests/Mocker.schema.spec.d.ts +1 -0
  47. package/build/main/tests/Mocker.schema.spec.js +18 -0
  48. package/build/main/tests/Mocker.seed.spec.d.ts +1 -0
  49. package/build/main/tests/Mocker.seed.spec.js +42 -0
  50. package/build/main/tests/Schema.Array.spec.d.ts +1 -0
  51. package/build/main/tests/Schema.Array.spec.js +332 -0
  52. package/build/main/tests/Schema.BuildSingle.spec.d.ts +1 -0
  53. package/build/main/tests/Schema.BuildSingle.spec.js +13 -0
  54. package/build/main/tests/mocker.spec.d.ts +1 -0
  55. package/build/main/tests/mocker.spec.js +405 -0
  56. package/build/module/array-includes.js +45 -0
  57. package/build/module/index.js +7 -0
  58. package/build/module/lib/Generator.js +131 -0
  59. package/build/module/lib/Mocker.js +73 -0
  60. package/build/module/lib/Schema.js +207 -0
  61. package/build/module/lib/types.js +1 -0
  62. package/build/module/lib/utils.js +209 -0
  63. package/package.json +130 -0
@@ -0,0 +1,222 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.loopInside = exports.stringToPathOrCall = exports.cleanVirtuals = exports.isConditional = exports.iamLastParent = exports.iamLastChild = exports.fieldArrayCalcLength = exports.evalWithContextData = exports.isObject = exports.isArray = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var isArray = function (arg) {
6
+ return Object.prototype.toString.call(arg) === '[object Array]';
7
+ };
8
+ exports.isArray = isArray;
9
+ var isObject = function (arg) {
10
+ return Object.prototype.toString.call(arg) === '[object Object]';
11
+ };
12
+ exports.isObject = isObject;
13
+ var evalWithContextData = function (key, object, db, generators) {
14
+ // In this (way, we can pass object and use inside the eval string
15
+ return eval(key);
16
+ };
17
+ exports.evalWithContextData = evalWithContextData;
18
+ var fieldArrayCalcLength = function (config, fixedArrayLength, schema) {
19
+ var length;
20
+ if (typeof config.length === 'function') {
21
+ length = config.length.call(schema);
22
+ }
23
+ else if (config.fixedLength) {
24
+ length = config.length - fixedArrayLength;
25
+ }
26
+ else {
27
+ length = Math.floor(Math.random() * config.length + 1);
28
+ }
29
+ return length;
30
+ };
31
+ exports.fieldArrayCalcLength = fieldArrayCalcLength;
32
+ var iamLastChild = function (parent, k) {
33
+ if ((0, exports.isArray)(parent[k])) {
34
+ var last = false;
35
+ if (parent[k].length === 0) {
36
+ return true;
37
+ }
38
+ for (var i = 0; i < parent[k].length; i++) {
39
+ var el = parent[k][i];
40
+ last = !(0, exports.isObject)(el);
41
+ if (last) {
42
+ break;
43
+ }
44
+ }
45
+ return last;
46
+ }
47
+ else {
48
+ return !(0, exports.isObject)(parent[k]);
49
+ }
50
+ };
51
+ exports.iamLastChild = iamLastChild;
52
+ var iamLastParent = function (obj) {
53
+ var last = false;
54
+ if ((0, exports.isObject)(obj)) {
55
+ var ks = Object.keys(obj);
56
+ for (var i = 0; i < ks.length; i++) {
57
+ var k = ks[i];
58
+ last = (0, exports.iamLastChild)(obj, k);
59
+ if (!last) {
60
+ break;
61
+ }
62
+ }
63
+ }
64
+ else {
65
+ last = true;
66
+ }
67
+ return last;
68
+ };
69
+ exports.iamLastParent = iamLastParent;
70
+ var isConditional = function (str) {
71
+ var arr = str.split(',');
72
+ return arr.length > 1;
73
+ };
74
+ exports.isConditional = isConditional;
75
+ var cleanVirtuals = function (paths, object, options) {
76
+ // clean specific paths
77
+ var objectCleaner = function (path, obj, options) {
78
+ var lvls, dest, i, field;
79
+ return tslib_1.__generator(this, function (_a) {
80
+ switch (_a.label) {
81
+ case 0:
82
+ lvls = path.split(options.symbol);
83
+ dest = obj;
84
+ if (!lvls || lvls.length === 0) {
85
+ return [2 /*return*/];
86
+ }
87
+ if (!obj) {
88
+ return [2 /*return*/];
89
+ }
90
+ for (i = 0; i < lvls.length; i++) {
91
+ field = lvls[i];
92
+ if (i === lvls.length - 1 && dest[field]) {
93
+ if (Object.getOwnPropertyNames(dest[field]).length < 1) {
94
+ delete dest[field];
95
+ break;
96
+ }
97
+ }
98
+ else {
99
+ dest = dest[field];
100
+ }
101
+ }
102
+ lvls.pop();
103
+ if (!(lvls.length > 0)) return [3 /*break*/, 2];
104
+ return [5 /*yield**/, tslib_1.__values(objectCleaner(lvls.join(options.symbol), obj, options))];
105
+ case 1:
106
+ _a.sent();
107
+ return [3 /*break*/, 3];
108
+ case 2: return [2 /*return*/];
109
+ case 3: return [2 /*return*/];
110
+ }
111
+ });
112
+ };
113
+ var forEachPath = function (path, object, options) {
114
+ var lvls, dest, i, field;
115
+ return tslib_1.__generator(this, function (_a) {
116
+ switch (_a.label) {
117
+ case 0:
118
+ lvls = path.split(options.symbol);
119
+ dest = object;
120
+ i = 0;
121
+ _a.label = 1;
122
+ case 1:
123
+ if (!(i < lvls.length)) return [3 /*break*/, 5];
124
+ field = lvls[i];
125
+ if (!(i === lvls.length - 1)) return [3 /*break*/, 3];
126
+ // delete specific path
127
+ delete dest[field];
128
+ // clean specific path
129
+ return [5 /*yield**/, tslib_1.__values(objectCleaner(path, object, options))];
130
+ case 2:
131
+ // clean specific path
132
+ _a.sent();
133
+ return [3 /*break*/, 4];
134
+ case 3:
135
+ dest = dest[field];
136
+ _a.label = 4;
137
+ case 4:
138
+ i++;
139
+ return [3 /*break*/, 1];
140
+ case 5: return [2 /*return*/];
141
+ }
142
+ });
143
+ };
144
+ var forPaths = function (paths, object, options) {
145
+ var i, path;
146
+ return tslib_1.__generator(this, function (_a) {
147
+ switch (_a.label) {
148
+ case 0:
149
+ i = 0;
150
+ _a.label = 1;
151
+ case 1:
152
+ if (!(i < paths.length)) return [3 /*break*/, 4];
153
+ path = paths[i];
154
+ return [5 /*yield**/, tslib_1.__values(Array.from(forEachPath(path, object, options)))];
155
+ case 2:
156
+ _a.sent();
157
+ _a.label = 3;
158
+ case 3:
159
+ i++;
160
+ return [3 /*break*/, 1];
161
+ case 4: return [2 /*return*/];
162
+ }
163
+ });
164
+ };
165
+ for (var _i = 0, _a = Array.from(forPaths(paths, object, options)); _i < _a.length; _i++) {
166
+ var res = _a[_i];
167
+ }
168
+ return object;
169
+ };
170
+ exports.cleanVirtuals = cleanVirtuals;
171
+ var stringToPathOrCall = function (name, fn, cfg) {
172
+ var _a = cfg.split('('), body = _a[0], args = _a[1];
173
+ body = body.split('.');
174
+ var func = body.reduce(function (acc, val) {
175
+ if (!acc[val]) {
176
+ throw "This ".concat(name, " method doesnt exists '").concat(cfg, "'.");
177
+ }
178
+ return acc[val];
179
+ }, fn);
180
+ if (!args) {
181
+ if (typeof func === 'function') {
182
+ return func.call(this);
183
+ }
184
+ else {
185
+ return func;
186
+ }
187
+ }
188
+ var _b = args.split(')'), args2 = _b[0], mods = _b[1];
189
+ args = args2
190
+ ? args2[0] === '{'
191
+ ? [JSON.parse(args2)]
192
+ : args2
193
+ .split(',')
194
+ .map(function (e) { return (/^\d+$/.test(e) ? Number.parseInt(e) : e); })
195
+ : [];
196
+ var result = func.call.apply(func, tslib_1.__spreadArray([this], args, false));
197
+ if (!mods || mods === '') {
198
+ return result;
199
+ }
200
+ mods = mods
201
+ .split('[')
202
+ .filter(function (i) { return i !== ''; })
203
+ .map(function (i) { return i.slice(0, -1); })
204
+ .map(function (i) { return (i[0] === '"' ? i.slice(1, -1) : parseInt(i, 10)); });
205
+ return mods.reduce(function (acc, val) {
206
+ if (!acc[val]) {
207
+ throw "'".concat(acc, "' doesnt have key '").concat(val, "'.");
208
+ }
209
+ return acc[val];
210
+ }, result);
211
+ };
212
+ exports.stringToPathOrCall = stringToPathOrCall;
213
+ var loopInside = function (object, path) {
214
+ var p = path.split('.');
215
+ return p.reduce(function (acc, val) {
216
+ if (acc[val] === null) {
217
+ throw "'".concat(acc, "' doesnt have key '").concat(val, "'.");
218
+ }
219
+ return acc[val];
220
+ }, object);
221
+ };
222
+ exports.loopInside = loopInside;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,33 @@
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 gen = new __1.Generator();
7
+ (0, ava_1.default)('Should have access to db', function (t) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
8
+ var res;
9
+ return tslib_1.__generator(this, function (_a) {
10
+ gen.DB = { hello: 'world' };
11
+ res = gen.db({ db: 'hello' });
12
+ t.true(res === 'world');
13
+ return [2 /*return*/];
14
+ });
15
+ }); });
16
+ (0, ava_1.default)('[eval] Should have access to db', function (t) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
17
+ var res;
18
+ return tslib_1.__generator(this, function (_a) {
19
+ gen.DB = { hello: 'world' };
20
+ res = gen.db({ db: 'hello', eval: true });
21
+ t.true(res === 'world');
22
+ return [2 /*return*/];
23
+ });
24
+ }); });
25
+ (0, ava_1.default)('Should have access to db (.0 syntax)', function (t) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
26
+ var res;
27
+ return tslib_1.__generator(this, function (_a) {
28
+ gen.DB = { hello: ['hello', 'world'] };
29
+ res = gen.db({ db: 'hello.0' });
30
+ t.true(res === 'hello');
31
+ return [2 /*return*/];
32
+ });
33
+ }); });
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,21 @@
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 gen = new __1.Generator();
7
+ gen.generators = {};
8
+ (0, ava_1.default)('Should have context {object, db, generators}', function (t) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
9
+ var ctx;
10
+ return tslib_1.__generator(this, function (_a) {
11
+ gen.DB = {};
12
+ gen.object = {};
13
+ ctx = ['object', 'db', 'generators'];
14
+ ctx.forEach(function (c) {
15
+ var res = gen.eval({ eval: c });
16
+ t.true(res !== undefined);
17
+ t.true(res !== null);
18
+ });
19
+ return [2 /*return*/];
20
+ });
21
+ }); });
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var tslib_1 = require("tslib");
4
+ var ava_1 = require("ava");
5
+ var faker_1 = require("@faker-js/faker");
6
+ var __1 = require("..");
7
+ var utils_1 = require("../lib/utils");
8
+ var gen = new __1.Generator();
9
+ gen.object = { generators: { custom: faker_1.faker } };
10
+ (0, ava_1.default)('Normal Function', function (t) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
11
+ var res;
12
+ return tslib_1.__generator(this, function (_a) {
13
+ res = gen.function({
14
+ function: function () {
15
+ return 'test';
16
+ }
17
+ });
18
+ t.true(typeof res === 'string');
19
+ t.true(res === 'test');
20
+ return [2 /*return*/];
21
+ });
22
+ }); });
23
+ (0, ava_1.default)('ES6 Function', function (t) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
24
+ var res;
25
+ return tslib_1.__generator(this, function (_a) {
26
+ res = gen.function({
27
+ function: function () { return 'test'; }
28
+ });
29
+ t.true(typeof res === 'string');
30
+ t.true(res === 'test');
31
+ return [2 /*return*/];
32
+ });
33
+ }); });
34
+ (0, ava_1.default)('Should call function with context', function (t) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
35
+ var res, ctx;
36
+ return tslib_1.__generator(this, function (_a) {
37
+ res = gen.function({
38
+ function: function () {
39
+ return this;
40
+ }
41
+ });
42
+ t.true((0, utils_1.isObject)(res));
43
+ ctx = ['object', 'db', 'generators'];
44
+ t.true((0, utils_1.isObject)(res));
45
+ ctx.forEach(function (c) { return t.true(res.hasOwnProperty(c)); });
46
+ return [2 /*return*/];
47
+ });
48
+ }); });
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,187 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var tslib_1 = require("tslib");
4
+ var ava_1 = require("ava");
5
+ var chance_1 = require("chance");
6
+ var faker_1 = require("@faker-js/faker");
7
+ var randexp = require("randexp");
8
+ var __1 = require("..");
9
+ var utils_1 = require("../lib/utils");
10
+ var casual = require('casual-browserify');
11
+ var chance = new chance_1.Chance();
12
+ var gen = new __1.Generator();
13
+ (0, ava_1.default)('Should be "lorem.words"', function (t) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
14
+ var res;
15
+ return tslib_1.__generator(this, function (_a) {
16
+ res = gen.custom({ generator: faker_1.faker, input: 'lorem.words' });
17
+ t.true(typeof res === 'string');
18
+ return [2 /*return*/];
19
+ });
20
+ }); });
21
+ (0, ava_1.default)('Should be "lorem.words()"', function (t) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
22
+ var res;
23
+ return tslib_1.__generator(this, function (_a) {
24
+ res = gen.custom({ generator: faker_1.faker, input: 'lorem.words()' });
25
+ t.true(typeof res === 'string');
26
+ return [2 /*return*/];
27
+ });
28
+ }); });
29
+ (0, ava_1.default)('Should be "lorem.words(1)"', function (t) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
30
+ var res;
31
+ return tslib_1.__generator(this, function (_a) {
32
+ res = gen.custom({ generator: faker_1.faker, input: 'lorem.words(1)' });
33
+ t.true(typeof res === 'string');
34
+ return [2 /*return*/];
35
+ });
36
+ }); });
37
+ (0, ava_1.default)('Should be "number.int({"max": 1})"', function (t) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
38
+ var res;
39
+ return tslib_1.__generator(this, function (_a) {
40
+ res = gen.custom({
41
+ generator: faker_1.faker,
42
+ input: 'number.int({"max": 1})'
43
+ });
44
+ t.true(typeof res === 'number');
45
+ t.true(res <= 1);
46
+ return [2 /*return*/];
47
+ });
48
+ }); });
49
+ (0, ava_1.default)('Should be "number.int({"min": 1, "max": 2})"', function (t) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
50
+ var res;
51
+ return tslib_1.__generator(this, function (_a) {
52
+ res = gen.custom({
53
+ generator: faker_1.faker,
54
+ input: 'number.int({"min": 1, "max": 2})'
55
+ });
56
+ t.true(typeof res === 'number');
57
+ t.true(res <= 2);
58
+ t.true(res >= 1);
59
+ return [2 /*return*/];
60
+ });
61
+ }); });
62
+ (0, ava_1.default)('Should be "lorem.words()[0]"', function (t) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
63
+ var res;
64
+ return tslib_1.__generator(this, function (_a) {
65
+ res = gen.custom({ generator: faker_1.faker, input: 'lorem.words()[0]' });
66
+ t.true(typeof res === 'string');
67
+ return [2 /*return*/];
68
+ });
69
+ }); });
70
+ (0, ava_1.default)('Should be "lorem.words(1)[0]""', function (t) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
71
+ var res;
72
+ return tslib_1.__generator(this, function (_a) {
73
+ res = gen.custom({ generator: faker_1.faker, input: 'lorem.words(1)[0]' });
74
+ t.true(typeof res === 'string');
75
+ return [2 /*return*/];
76
+ });
77
+ }); });
78
+ // Casual
79
+ (0, ava_1.default)('Should be "country"', function (t) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
80
+ var res;
81
+ return tslib_1.__generator(this, function (_a) {
82
+ res = gen.custom({ generator: casual, input: 'country' });
83
+ t.true(typeof res === 'string');
84
+ return [2 /*return*/];
85
+ });
86
+ }); });
87
+ (0, ava_1.default)('[eval] Should be "country"', function (t) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
88
+ var res;
89
+ return tslib_1.__generator(this, function (_a) {
90
+ res = gen.custom({ generator: casual, input: 'country', eval: true });
91
+ t.true(typeof res === 'string');
92
+ return [2 /*return*/];
93
+ });
94
+ }); });
95
+ (0, ava_1.default)('Should be "array_of_digits()"', function (t) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
96
+ var res;
97
+ return tslib_1.__generator(this, function (_a) {
98
+ res = gen.custom({ generator: casual, input: 'array_of_digits()' });
99
+ t.true((0, utils_1.isArray)(res));
100
+ res.forEach(function (d) { return t.true(typeof d === 'number'); });
101
+ return [2 /*return*/];
102
+ });
103
+ }); });
104
+ (0, ava_1.default)('Should be "array_of_digits(3)"', function (t) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
105
+ var res;
106
+ return tslib_1.__generator(this, function (_a) {
107
+ res = gen.custom({ generator: casual, input: 'array_of_digits(3)' });
108
+ t.true((0, utils_1.isArray)(res));
109
+ t.true(res.length === 3);
110
+ res.forEach(function (d) { return t.true(typeof d === 'number'); });
111
+ return [2 /*return*/];
112
+ });
113
+ }); });
114
+ (0, ava_1.default)('Should be "integer(1,2)"', function (t) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
115
+ var res;
116
+ return tslib_1.__generator(this, function (_a) {
117
+ res = gen.custom({ generator: casual, input: 'integer(1,2)' });
118
+ t.true(typeof res === 'number');
119
+ t.true(res <= 2);
120
+ t.true(res >= 1);
121
+ return [2 /*return*/];
122
+ });
123
+ }); });
124
+ // Randexp
125
+ (0, ava_1.default)('Should be "/hello+ (world|to you)/"', function (t) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
126
+ var res;
127
+ return tslib_1.__generator(this, function (_a) {
128
+ res = gen.custom({
129
+ generator: randexp,
130
+ input: /hello+ (world|to you)/,
131
+ adapter: function (R, input) {
132
+ return new R(input).gen();
133
+ }
134
+ });
135
+ t.true(typeof res === 'string');
136
+ return [2 /*return*/];
137
+ });
138
+ }); });
139
+ // Chance
140
+ (0, ava_1.default)('Should be an integer', function (t) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
141
+ var res;
142
+ return tslib_1.__generator(this, function (_a) {
143
+ res = gen.custom({ generator: chance, input: 'integer' });
144
+ t.true(typeof res === 'number');
145
+ return [2 /*return*/];
146
+ });
147
+ }); });
148
+ (0, ava_1.default)('[eval] Should be an integer', function (t) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
149
+ var res;
150
+ return tslib_1.__generator(this, function (_a) {
151
+ res = gen.custom({ generator: chance, input: 'integer()', eval: true });
152
+ t.true(typeof res === 'number');
153
+ return [2 /*return*/];
154
+ });
155
+ }); });
156
+ (0, ava_1.default)('Should be "integer()"', function (t) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
157
+ var res;
158
+ return tslib_1.__generator(this, function (_a) {
159
+ res = gen.custom({ generator: chance, input: 'integer()' });
160
+ t.true(typeof res === 'number');
161
+ return [2 /*return*/];
162
+ });
163
+ }); });
164
+ (0, ava_1.default)('Should be "integer({"min": 1, "max": 10})"', function (t) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
165
+ var res;
166
+ return tslib_1.__generator(this, function (_a) {
167
+ res = gen.custom({
168
+ generator: chance,
169
+ input: 'integer({"min": 1, "max": 10})'
170
+ });
171
+ t.true(typeof res === 'number');
172
+ t.true(res <= 10);
173
+ t.true(res >= 1);
174
+ return [2 /*return*/];
175
+ });
176
+ }); });
177
+ (0, ava_1.default)('Should be "street_suffixes()[0]["name"]"', function (t) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
178
+ var res;
179
+ return tslib_1.__generator(this, function (_a) {
180
+ res = gen.custom({
181
+ generator: chance,
182
+ input: 'street_suffixes()[0]["name"]'
183
+ });
184
+ t.true(typeof res === 'string');
185
+ return [2 /*return*/];
186
+ });
187
+ }); });
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,115 @@
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 gen = new __1.Generator();
7
+ (0, ava_1.default)('Should get many from the DB with max', function (t) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
8
+ var data, res;
9
+ return tslib_1.__generator(this, function (_a) {
10
+ data = Array.from(new Array(10)).map(function (el, i) { return ({ id: i }); });
11
+ gen.DB = { hello: data };
12
+ res = gen.hasMany({
13
+ hasMany: 'hello',
14
+ max: 2
15
+ });
16
+ res.forEach(function (r) { return t.true(data.indexOf(r) > -1); });
17
+ t.true(res.length <= 2);
18
+ t.true(res.length >= 1);
19
+ return [2 /*return*/];
20
+ });
21
+ }); });
22
+ (0, ava_1.default)('Should get many from the DB with min', function (t) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
23
+ var data, res;
24
+ return tslib_1.__generator(this, function (_a) {
25
+ data = Array.from(new Array(10)).map(function (el, i) { return ({ id: i }); });
26
+ gen.DB = { hello: data };
27
+ res = gen.hasMany({
28
+ hasMany: 'hello',
29
+ max: 10,
30
+ min: 4
31
+ });
32
+ res.forEach(function (r) { return t.true(data.indexOf(r) > -1); });
33
+ t.true(res.length <= 10);
34
+ t.true(res.length >= 4);
35
+ return [2 /*return*/];
36
+ });
37
+ }); });
38
+ (0, ava_1.default)('Should get many from the DB with min = 0', function (t) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
39
+ var data, res;
40
+ return tslib_1.__generator(this, function (_a) {
41
+ data = Array.from(new Array(10)).map(function (el, i) { return ({ id: i }); });
42
+ gen.DB = { hello: data };
43
+ res = gen.hasMany({
44
+ hasMany: 'hello',
45
+ max: 1,
46
+ min: 0
47
+ });
48
+ res.forEach(function (r) { return t.true(data.indexOf(r) > -1); });
49
+ t.true(res.length <= 1);
50
+ t.true(res.length >= 0);
51
+ return [2 /*return*/];
52
+ });
53
+ }); });
54
+ (0, ava_1.default)('Should get many from the DB with fixed amount', function (t) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
55
+ var data, res;
56
+ return tslib_1.__generator(this, function (_a) {
57
+ data = Array.from(new Array(10)).map(function (el, i) { return ({ id: i }); });
58
+ gen.DB = { hello: data };
59
+ res = gen.hasMany({
60
+ hasMany: 'hello',
61
+ amount: 5
62
+ });
63
+ res.forEach(function (r) { return t.true(data.indexOf(r) > -1); });
64
+ t.true(res.length === 5);
65
+ return [2 /*return*/];
66
+ });
67
+ }); });
68
+ (0, ava_1.default)('Should get many from the DB, and one field of each entity', function (t) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
69
+ var data, res;
70
+ return tslib_1.__generator(this, function (_a) {
71
+ data = Array.from(new Array(10)).map(function (el, i) { return ({ id: i }); });
72
+ gen.DB = { hello: data };
73
+ res = gen.hasMany({
74
+ hasMany: 'hello',
75
+ get: 'id',
76
+ amount: 1
77
+ });
78
+ t.true(typeof res[0] === 'number');
79
+ return [2 /*return*/];
80
+ });
81
+ }); });
82
+ (0, ava_1.default)('Should get many from the DB, unique', function (t) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
83
+ var data, res;
84
+ return tslib_1.__generator(this, function (_a) {
85
+ data = Array.from(new Array(2)).map(function (el, i) { return ({ id: i }); });
86
+ gen.DB = { hello: data };
87
+ res = gen.hasMany({
88
+ hasMany: 'hello',
89
+ get: 'id',
90
+ amount: 2,
91
+ unique: true
92
+ });
93
+ t.deepEqual(res, [0, 1]);
94
+ return [2 /*return*/];
95
+ });
96
+ }); });
97
+ (0, ava_1.default)('Should throw an error, not enough unique data', function (t) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
98
+ var data, res;
99
+ return tslib_1.__generator(this, function (_a) {
100
+ data = Array.from(new Array(2)).map(function (el, i) { return ({ id: i }); });
101
+ gen.DB = { hello: data };
102
+ try {
103
+ res = gen.hasMany({
104
+ hasMany: 'hello',
105
+ get: 'id',
106
+ amount: 3,
107
+ unique: true
108
+ });
109
+ }
110
+ catch (e) {
111
+ t.deepEqual(e, 'Can´t get unique data. Source "hello" has not enough data');
112
+ }
113
+ return [2 /*return*/];
114
+ });
115
+ }); });
@@ -0,0 +1 @@
1
+ export {};