prisma-mock 0.0.24 → 0.0.27
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/lib/index.js +32 -16
- package/package.json +2 -3
package/lib/index.js
CHANGED
|
@@ -24,31 +24,29 @@ const createPrismaMock = async (data = {}, pathToSchema, client = (0, jest_mock_
|
|
|
24
24
|
return name.substr(0, 1).toLowerCase() + name.substr(1);
|
|
25
25
|
};
|
|
26
26
|
const shallowCompare = (a, b) => {
|
|
27
|
-
for (let key in
|
|
27
|
+
for (let key in b) {
|
|
28
28
|
if (a[key] !== b[key])
|
|
29
29
|
return false;
|
|
30
30
|
}
|
|
31
31
|
return true;
|
|
32
32
|
};
|
|
33
|
-
const
|
|
33
|
+
const removeMultiFieldIds = (model, data) => {
|
|
34
34
|
var _a, _b;
|
|
35
35
|
const c = getCamelCase(model.name);
|
|
36
36
|
const idFields = model.idFields || ((_a = model.primaryKey) === null || _a === void 0 ? void 0 : _a.fields);
|
|
37
|
-
const
|
|
37
|
+
const removeId = (ids) => {
|
|
38
38
|
const id = ids.join('_');
|
|
39
39
|
data = Object.assign(Object.assign({}, data), { [c]: data[c].map(item => {
|
|
40
40
|
const _a = item, _b = id, idVal = _a[_b], rest = __rest(_a, [typeof _b === "symbol" ? _b : _b + ""]);
|
|
41
|
-
return Object.assign(Object.assign({
|
|
42
|
-
return Object.assign(Object.assign({}, prev), { [field]: item[field] });
|
|
43
|
-
}, {}) }, item), idVal);
|
|
41
|
+
return Object.assign(Object.assign({}, rest), idVal);
|
|
44
42
|
}) });
|
|
45
43
|
};
|
|
46
44
|
if ((idFields === null || idFields === void 0 ? void 0 : idFields.length) > 1) {
|
|
47
|
-
|
|
45
|
+
removeId(idFields);
|
|
48
46
|
}
|
|
49
47
|
if (((_b = model.uniqueFields) === null || _b === void 0 ? void 0 : _b.length) > 0) {
|
|
50
48
|
for (const uniqueField of model.uniqueFields) {
|
|
51
|
-
|
|
49
|
+
removeId(uniqueField);
|
|
52
50
|
}
|
|
53
51
|
}
|
|
54
52
|
return data;
|
|
@@ -162,6 +160,8 @@ const createPrismaMock = async (data = {}, pathToSchema, client = (0, jest_mock_
|
|
|
162
160
|
delegate.update({ data: c.update, where: getFieldRelationshipWhere(item, field) });
|
|
163
161
|
}
|
|
164
162
|
}
|
|
163
|
+
const _e = d, _f = field.name, _update = _e[_f], rest = __rest(_e, [typeof _f === "symbol" ? _f : _f + ""]);
|
|
164
|
+
d = rest; //?
|
|
165
165
|
}
|
|
166
166
|
}
|
|
167
167
|
if (c.increment) {
|
|
@@ -275,13 +275,13 @@ const createPrismaMock = async (data = {}, pathToSchema, client = (0, jest_mock_
|
|
|
275
275
|
const idFields = model.idFields || ((_a = model.primaryKey) === null || _a === void 0 ? void 0 : _a.fields);
|
|
276
276
|
if ((idFields === null || idFields === void 0 ? void 0 : idFields.length) > 1) {
|
|
277
277
|
if (child === idFields.join('_')) {
|
|
278
|
-
return shallowCompare(
|
|
278
|
+
return shallowCompare(item, filter);
|
|
279
279
|
}
|
|
280
280
|
}
|
|
281
281
|
if (((_b = model.uniqueFields) === null || _b === void 0 ? void 0 : _b.length) > 0) {
|
|
282
282
|
for (const uniqueField of model.uniqueFields) {
|
|
283
283
|
if (child === uniqueField.join('_')) {
|
|
284
|
-
return shallowCompare(
|
|
284
|
+
return shallowCompare(item, filter);
|
|
285
285
|
}
|
|
286
286
|
}
|
|
287
287
|
}
|
|
@@ -402,14 +402,20 @@ const createPrismaMock = async (data = {}, pathToSchema, client = (0, jest_mock_
|
|
|
402
402
|
return e;
|
|
403
403
|
});
|
|
404
404
|
data = Object.assign(Object.assign({}, data), { [prop]: newItems });
|
|
405
|
+
data = removeMultiFieldIds(model, data);
|
|
405
406
|
return data;
|
|
406
407
|
};
|
|
407
408
|
const create = args => {
|
|
408
409
|
const d = nestedUpdate(args, true, null);
|
|
409
410
|
data = Object.assign(Object.assign({}, data), { [prop]: [...data[prop], d] });
|
|
410
|
-
data =
|
|
411
|
-
|
|
412
|
-
|
|
411
|
+
data = removeMultiFieldIds(model, data);
|
|
412
|
+
let where = {};
|
|
413
|
+
for (const field of model.fields) {
|
|
414
|
+
if (field.default) {
|
|
415
|
+
where[field.name] = d[field.name];
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
return findOne(Object.assign({ where }, args));
|
|
413
419
|
};
|
|
414
420
|
const deleteMany = args => {
|
|
415
421
|
const model = cachedSchema.datamodel.models.find(model => {
|
|
@@ -484,8 +490,18 @@ const createPrismaMock = async (data = {}, pathToSchema, client = (0, jest_mock_
|
|
|
484
490
|
return newItem;
|
|
485
491
|
};
|
|
486
492
|
const update = (args) => {
|
|
487
|
-
|
|
488
|
-
|
|
493
|
+
let updatedItem;
|
|
494
|
+
const newItems = data[prop].map(e => {
|
|
495
|
+
if (matchFnc(args.where)(e)) {
|
|
496
|
+
let data = nestedUpdate(args, false, e);
|
|
497
|
+
updatedItem = Object.assign(Object.assign({}, e), data);
|
|
498
|
+
return updatedItem;
|
|
499
|
+
}
|
|
500
|
+
return e;
|
|
501
|
+
});
|
|
502
|
+
data = Object.assign(Object.assign({}, data), { [prop]: newItems });
|
|
503
|
+
data = removeMultiFieldIds(model, data);
|
|
504
|
+
return findOne(Object.assign(Object.assign({}, args), { where: updatedItem }));
|
|
489
505
|
};
|
|
490
506
|
return {
|
|
491
507
|
findOne,
|
|
@@ -529,7 +545,7 @@ const createPrismaMock = async (data = {}, pathToSchema, client = (0, jest_mock_
|
|
|
529
545
|
if (!data[c]) {
|
|
530
546
|
data = Object.assign(Object.assign({}, (data || {})), { [c]: [] });
|
|
531
547
|
}
|
|
532
|
-
data =
|
|
548
|
+
data = removeMultiFieldIds(model, data);
|
|
533
549
|
const objs = Delegate(c, model);
|
|
534
550
|
Object.keys(objs).forEach(fncName => {
|
|
535
551
|
client[c][fncName].mockImplementation(async (...params) => {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "prisma-mock",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.27",
|
|
4
4
|
"description": "Mock prisma for unit testing database",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"license": "MIT",
|
|
@@ -24,8 +24,7 @@
|
|
|
24
24
|
"scripts": {
|
|
25
25
|
"preversion": "tsc",
|
|
26
26
|
"build": "tsc",
|
|
27
|
-
"watch": "tsc --watch"
|
|
28
|
-
"postinstall": "prisma generate"
|
|
27
|
+
"watch": "tsc --watch"
|
|
29
28
|
},
|
|
30
29
|
"peerDependencies": {
|
|
31
30
|
"@prisma/client": "^3.5.0"
|