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.
Files changed (2) hide show
  1. package/lib/index.js +25 -14
  2. 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 a) {
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 checkIds = (model, data) => {
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 checkId = (ids) => {
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({ [id]: ids.reduce((prev, field) => {
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
- checkId(idFields);
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
- checkId(uniqueField);
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(val, filter);
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(val, filter);
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 = checkIds(model, 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
- updateMany(args);
488
- return findOne(args);
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 = checkIds(model, 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) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "prisma-mock",
3
- "version": "0.0.25",
3
+ "version": "0.0.26",
4
4
  "description": "Mock prisma for unit testing database",
5
5
  "main": "lib/index.js",
6
6
  "license": "MIT",