prisma-mock 0.0.25 → 0.0.26
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 +25 -14
- package/package.json +1 -1
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,12 +402,13 @@ 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
|
+
data = removeMultiFieldIds(model, data);
|
|
411
412
|
// TODO: multi field ids
|
|
412
413
|
return findOne(Object.assign({ where: { id: d.id } }, args));
|
|
413
414
|
};
|
|
@@ -484,8 +485,18 @@ const createPrismaMock = async (data = {}, pathToSchema, client = (0, jest_mock_
|
|
|
484
485
|
return newItem;
|
|
485
486
|
};
|
|
486
487
|
const update = (args) => {
|
|
487
|
-
|
|
488
|
-
|
|
488
|
+
let updatedItem;
|
|
489
|
+
const newItems = data[prop].map(e => {
|
|
490
|
+
if (matchFnc(args.where)(e)) {
|
|
491
|
+
let data = nestedUpdate(args, false, e);
|
|
492
|
+
updatedItem = Object.assign(Object.assign({}, e), data);
|
|
493
|
+
return updatedItem;
|
|
494
|
+
}
|
|
495
|
+
return e;
|
|
496
|
+
});
|
|
497
|
+
data = Object.assign(Object.assign({}, data), { [prop]: newItems });
|
|
498
|
+
data = removeMultiFieldIds(model, data);
|
|
499
|
+
return findOne(Object.assign(Object.assign({}, args), { where: updatedItem }));
|
|
489
500
|
};
|
|
490
501
|
return {
|
|
491
502
|
findOne,
|
|
@@ -529,7 +540,7 @@ const createPrismaMock = async (data = {}, pathToSchema, client = (0, jest_mock_
|
|
|
529
540
|
if (!data[c]) {
|
|
530
541
|
data = Object.assign(Object.assign({}, (data || {})), { [c]: [] });
|
|
531
542
|
}
|
|
532
|
-
data =
|
|
543
|
+
data = removeMultiFieldIds(model, data);
|
|
533
544
|
const objs = Delegate(c, model);
|
|
534
545
|
Object.keys(objs).forEach(fncName => {
|
|
535
546
|
client[c][fncName].mockImplementation(async (...params) => {
|