@goatlab/fluent 0.7.1 → 0.7.4

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 (223) hide show
  1. package/CHANGELOG.md +1072 -0
  2. package/dist/BaseConnector.d.ts +14 -7
  3. package/dist/BaseConnector.js +51 -3
  4. package/dist/Fluent.d.ts +0 -0
  5. package/dist/Fluent.js +0 -0
  6. package/dist/FluentEntity.d.ts +0 -0
  7. package/dist/FluentEntity.js +0 -0
  8. package/dist/TypeOrmConnector/TypeOrmConnector.d.ts +10 -11
  9. package/dist/TypeOrmConnector/TypeOrmConnector.js +134 -146
  10. package/dist/TypeOrmConnector/test/advanced/advancedTestSuite.d.ts +0 -0
  11. package/dist/TypeOrmConnector/test/advanced/advancedTestSuite.js +0 -0
  12. package/dist/TypeOrmConnector/test/advanced/typeOrm.entity.d.ts +6 -6
  13. package/dist/TypeOrmConnector/test/advanced/typeOrm.entity.js +0 -0
  14. package/dist/TypeOrmConnector/test/advanced/typeOrm.mongo.repository.d.ts +0 -0
  15. package/dist/TypeOrmConnector/test/advanced/typeOrm.mongo.repository.js +0 -0
  16. package/dist/TypeOrmConnector/test/advanced/typeOrm.mysql.repository.d.ts +0 -0
  17. package/dist/TypeOrmConnector/test/advanced/typeOrm.mysql.repository.js +0 -0
  18. package/dist/TypeOrmConnector/test/advanced/typeOrm.repository.d.ts +0 -0
  19. package/dist/TypeOrmConnector/test/advanced/typeOrm.repository.js +0 -0
  20. package/dist/TypeOrmConnector/test/basic/basicTestSuite.d.ts +1 -1
  21. package/dist/TypeOrmConnector/test/basic/basicTestSuite.js +116 -4
  22. package/dist/TypeOrmConnector/test/basic/goat.entity.d.ts +0 -0
  23. package/dist/TypeOrmConnector/test/basic/goat.entity.js +0 -0
  24. package/dist/TypeOrmConnector/test/basic/goat.mongo.repository.d.ts +0 -0
  25. package/dist/TypeOrmConnector/test/basic/goat.mongo.repository.js +0 -0
  26. package/dist/TypeOrmConnector/test/basic/goat.mysql.repository.d.ts +0 -0
  27. package/dist/TypeOrmConnector/test/basic/goat.mysql.repository.js +0 -0
  28. package/dist/TypeOrmConnector/test/basic/goat.repository.d.ts +0 -0
  29. package/dist/TypeOrmConnector/test/basic/goat.repository.js +0 -0
  30. package/dist/TypeOrmConnector/test/dbEntities.d.ts +0 -0
  31. package/dist/TypeOrmConnector/test/dbEntities.js +0 -0
  32. package/dist/TypeOrmConnector/test/docker/docker.d.ts +0 -0
  33. package/dist/TypeOrmConnector/test/docker/docker.js +0 -0
  34. package/dist/TypeOrmConnector/test/docker/mysql.d.ts +0 -0
  35. package/dist/TypeOrmConnector/test/docker/mysql.js +0 -0
  36. package/dist/TypeOrmConnector/test/flock.d.ts +0 -0
  37. package/dist/TypeOrmConnector/test/flock.js +0 -0
  38. package/dist/TypeOrmConnector/test/mongo/car.mongo.repository.d.ts +0 -0
  39. package/dist/TypeOrmConnector/test/mongo/car.mongo.repository.js +0 -0
  40. package/dist/TypeOrmConnector/test/mongo/mongo.memory.d.ts +0 -0
  41. package/dist/TypeOrmConnector/test/mongo/mongo.memory.js +0 -0
  42. package/dist/TypeOrmConnector/test/mongo/mongoDatasource.d.ts +0 -0
  43. package/dist/TypeOrmConnector/test/mongo/mongoDatasource.js +0 -0
  44. package/dist/TypeOrmConnector/test/mongo/roles.mongo.repository.d.ts +0 -0
  45. package/dist/TypeOrmConnector/test/mongo/roles.mongo.repository.js +0 -0
  46. package/dist/TypeOrmConnector/test/mongo/roles_user.mongo.repository.d.ts +0 -0
  47. package/dist/TypeOrmConnector/test/mongo/roles_user.mongo.repository.js +0 -0
  48. package/dist/TypeOrmConnector/test/mongo/user.mongo.repository.d.ts +0 -0
  49. package/dist/TypeOrmConnector/test/mongo/user.mongo.repository.js +0 -0
  50. package/dist/TypeOrmConnector/test/mysql/car.mysql.repository.d.ts +0 -0
  51. package/dist/TypeOrmConnector/test/mysql/car.mysql.repository.js +0 -0
  52. package/dist/TypeOrmConnector/test/mysql/mysqlDataSource.d.ts +0 -0
  53. package/dist/TypeOrmConnector/test/mysql/mysqlDataSource.js +0 -0
  54. package/dist/TypeOrmConnector/test/mysql/roles.mysql.repository.d.ts +0 -0
  55. package/dist/TypeOrmConnector/test/mysql/roles.mysql.repository.js +0 -0
  56. package/dist/TypeOrmConnector/test/mysql/roles_user.mysql.repository.d.ts +0 -0
  57. package/dist/TypeOrmConnector/test/mysql/roles_user.mysql.repository.js +0 -0
  58. package/dist/TypeOrmConnector/test/mysql/user.mysql.repository.d.ts +0 -0
  59. package/dist/TypeOrmConnector/test/mysql/user.mysql.repository.js +0 -0
  60. package/dist/TypeOrmConnector/test/relations/car/car.entity.d.ts +0 -0
  61. package/dist/TypeOrmConnector/test/relations/car/car.entity.js +0 -0
  62. package/dist/TypeOrmConnector/test/relations/car/car.repositoryTypeOrm.d.ts +0 -0
  63. package/dist/TypeOrmConnector/test/relations/car/car.repositoryTypeOrm.js +0 -0
  64. package/dist/TypeOrmConnector/test/relations/car/car.schema.d.ts +0 -0
  65. package/dist/TypeOrmConnector/test/relations/car/car.schema.js +0 -0
  66. package/dist/TypeOrmConnector/test/relations/relationsTestsSuite.d.ts +0 -0
  67. package/dist/TypeOrmConnector/test/relations/relationsTestsSuite.js +0 -0
  68. package/dist/TypeOrmConnector/test/relations/roles/role.schema.d.ts +0 -0
  69. package/dist/TypeOrmConnector/test/relations/roles/role.schema.js +0 -0
  70. package/dist/TypeOrmConnector/test/relations/roles/roles.entity.d.ts +0 -0
  71. package/dist/TypeOrmConnector/test/relations/roles/roles.entity.js +0 -0
  72. package/dist/TypeOrmConnector/test/relations/roles/roles.repositoryTypeOrm.d.ts +0 -0
  73. package/dist/TypeOrmConnector/test/relations/roles/roles.repositoryTypeOrm.js +0 -0
  74. package/dist/TypeOrmConnector/test/relations/roles/roles_user.entity.d.ts +0 -0
  75. package/dist/TypeOrmConnector/test/relations/roles/roles_user.entity.js +0 -0
  76. package/dist/TypeOrmConnector/test/relations/roles/roles_user.schema.d.ts +0 -0
  77. package/dist/TypeOrmConnector/test/relations/roles/roles_user.schema.js +0 -0
  78. package/dist/TypeOrmConnector/test/relations/roles/roles_users.repositoryTypeOrm.d.ts +0 -0
  79. package/dist/TypeOrmConnector/test/relations/roles/roles_users.repositoryTypeOrm.js +0 -0
  80. package/dist/TypeOrmConnector/test/relations/user/user.entity.d.ts +0 -0
  81. package/dist/TypeOrmConnector/test/relations/user/user.entity.js +0 -0
  82. package/dist/TypeOrmConnector/test/relations/user/user.repositoryTypeOrm.d.ts +0 -0
  83. package/dist/TypeOrmConnector/test/relations/user/user.repositoryTypeOrm.js +0 -0
  84. package/dist/TypeOrmConnector/test/relations/user/user.schema.d.ts +0 -0
  85. package/dist/TypeOrmConnector/test/relations/user/user.schema.js +0 -0
  86. package/dist/TypeOrmConnector/test/sqlite/memoryDataSource.d.ts +0 -0
  87. package/dist/TypeOrmConnector/test/sqlite/memoryDataSource.js +0 -0
  88. package/dist/cache.d.ts +0 -0
  89. package/dist/cache.js +0 -0
  90. package/dist/core/Loopback/build-schema.d.ts +0 -0
  91. package/dist/core/Loopback/build-schema.js +0 -0
  92. package/dist/core/Loopback/common-types.d.ts +0 -0
  93. package/dist/core/Loopback/common-types.js +0 -0
  94. package/dist/core/Loopback/json-to-schema.d.ts +0 -0
  95. package/dist/core/Loopback/json-to-schema.js +0 -0
  96. package/dist/core/Loopback/mapValues.d.ts +0 -0
  97. package/dist/core/Loopback/mapValues.js +0 -0
  98. package/dist/core/Loopback/metadata.d.ts +0 -0
  99. package/dist/core/Loopback/metadata.js +0 -0
  100. package/dist/core/Loopback/model.d.ts +0 -0
  101. package/dist/core/Loopback/model.js +0 -0
  102. package/dist/core/Loopback/query.d.ts +0 -0
  103. package/dist/core/Loopback/query.js +0 -0
  104. package/dist/core/Loopback/relation.types.d.ts +0 -0
  105. package/dist/core/Loopback/relation.types.js +0 -0
  106. package/dist/core/Loopback/type-resolver.d.ts +0 -0
  107. package/dist/core/Loopback/type-resolver.js +0 -0
  108. package/dist/core/Loopback/type.d.ts +0 -0
  109. package/dist/core/Loopback/type.js +0 -0
  110. package/dist/core/Nestjs/applyDecorators.d.ts +0 -0
  111. package/dist/core/Nestjs/applyDecorators.js +0 -0
  112. package/dist/core/Nestjs/types/common.d.ts +0 -0
  113. package/dist/core/Nestjs/types/common.js +0 -0
  114. package/dist/core/Nestjs/types/decorators/api-hide-property.decorator.d.ts +0 -0
  115. package/dist/core/Nestjs/types/decorators/api-hide-property.decorator.js +0 -0
  116. package/dist/core/Nestjs/types/decorators/api-property.decorator.d.ts +0 -0
  117. package/dist/core/Nestjs/types/decorators/api-property.decorator.js +0 -0
  118. package/dist/core/Nestjs/types/decorators/apply-is-optional.decorator.d.ts +0 -0
  119. package/dist/core/Nestjs/types/decorators/apply-is-optional.decorator.js +0 -0
  120. package/dist/core/Nestjs/types/decorators/args-type.decorator.d.ts +0 -0
  121. package/dist/core/Nestjs/types/decorators/args-type.decorator.js +0 -0
  122. package/dist/core/Nestjs/types/decorators/create-property.decorator.d.ts +0 -0
  123. package/dist/core/Nestjs/types/decorators/create-property.decorator.js +0 -0
  124. package/dist/core/Nestjs/types/decorators/directive.decorator.d.ts +0 -0
  125. package/dist/core/Nestjs/types/decorators/directive.decorator.js +0 -0
  126. package/dist/core/Nestjs/types/decorators/extensions.decorator.d.ts +0 -0
  127. package/dist/core/Nestjs/types/decorators/extensions.decorator.js +0 -0
  128. package/dist/core/Nestjs/types/decorators/field.decorator.d.ts +0 -0
  129. package/dist/core/Nestjs/types/decorators/field.decorator.js +0 -0
  130. package/dist/core/Nestjs/types/decorators/input-type.decorator.d.ts +0 -0
  131. package/dist/core/Nestjs/types/decorators/input-type.decorator.js +0 -0
  132. package/dist/core/Nestjs/types/decorators/interface-type.decorator.d.ts +0 -0
  133. package/dist/core/Nestjs/types/decorators/interface-type.decorator.js +0 -0
  134. package/dist/core/Nestjs/types/decorators/partial-type.helper.d.ts +0 -0
  135. package/dist/core/Nestjs/types/decorators/partial-type.helper.js +0 -0
  136. package/dist/core/Nestjs/types/errors/cannot-determine-host-type.error.d.ts +0 -0
  137. package/dist/core/Nestjs/types/errors/cannot-determine-host-type.error.js +0 -0
  138. package/dist/core/Nestjs/types/errors/directive-parsing.error.d.ts +0 -0
  139. package/dist/core/Nestjs/types/errors/directive-parsing.error.js +0 -0
  140. package/dist/core/Nestjs/types/errors/unable-to-find-fields.error.d.ts +0 -0
  141. package/dist/core/Nestjs/types/errors/unable-to-find-fields.error.js +0 -0
  142. package/dist/core/Nestjs/types/errors/undefined-type.error.d.ts +0 -0
  143. package/dist/core/Nestjs/types/errors/undefined-type.error.js +0 -0
  144. package/dist/core/Nestjs/types/interfaces/add-class-type-metadata.util.d.ts +0 -0
  145. package/dist/core/Nestjs/types/interfaces/add-class-type-metadata.util.js +0 -0
  146. package/dist/core/Nestjs/types/interfaces/base-type-options.interface.d.ts +0 -0
  147. package/dist/core/Nestjs/types/interfaces/base-type-options.interface.js +0 -0
  148. package/dist/core/Nestjs/types/interfaces/class-decorator-factory.interface.d.ts +0 -0
  149. package/dist/core/Nestjs/types/interfaces/class-decorator-factory.interface.js +0 -0
  150. package/dist/core/Nestjs/types/interfaces/complexity.interface.d.ts +0 -0
  151. package/dist/core/Nestjs/types/interfaces/complexity.interface.js +0 -0
  152. package/dist/core/Nestjs/types/interfaces/field-middleware.interface.d.ts +0 -0
  153. package/dist/core/Nestjs/types/interfaces/field-middleware.interface.js +0 -0
  154. package/dist/core/Nestjs/types/interfaces/open-api-spec.interface.d.ts +0 -0
  155. package/dist/core/Nestjs/types/interfaces/open-api-spec.interface.js +0 -0
  156. package/dist/core/Nestjs/types/interfaces/resolve-type-fn.interface.d.ts +0 -0
  157. package/dist/core/Nestjs/types/interfaces/resolve-type-fn.interface.js +0 -0
  158. package/dist/core/Nestjs/types/interfaces/return-type-func.interface.d.ts +0 -0
  159. package/dist/core/Nestjs/types/interfaces/return-type-func.interface.js +0 -0
  160. package/dist/core/Nestjs/types/interfaces/schema-object-metadata.interface.d.ts +0 -0
  161. package/dist/core/Nestjs/types/interfaces/schema-object-metadata.interface.js +0 -0
  162. package/dist/core/Nestjs/types/interfaces/type-options.interface.d.ts +0 -0
  163. package/dist/core/Nestjs/types/interfaces/type-options.interface.js +0 -0
  164. package/dist/core/Nestjs/types/lazy-metadata.storage.d.ts +0 -0
  165. package/dist/core/Nestjs/types/lazy-metadata.storage.js +0 -0
  166. package/dist/core/Nestjs/types/metadata/class.metadata.d.ts +0 -0
  167. package/dist/core/Nestjs/types/metadata/class.metadata.js +0 -0
  168. package/dist/core/Nestjs/types/metadata/directive.metadata.d.ts +0 -0
  169. package/dist/core/Nestjs/types/metadata/directive.metadata.js +0 -0
  170. package/dist/core/Nestjs/types/metadata/enum.metadata.d.ts +0 -0
  171. package/dist/core/Nestjs/types/metadata/enum.metadata.js +0 -0
  172. package/dist/core/Nestjs/types/metadata/extensions.metadata.d.ts +0 -0
  173. package/dist/core/Nestjs/types/metadata/extensions.metadata.js +0 -0
  174. package/dist/core/Nestjs/types/metadata/index.d.ts +0 -0
  175. package/dist/core/Nestjs/types/metadata/index.js +0 -0
  176. package/dist/core/Nestjs/types/metadata/interface.metadata.d.ts +0 -0
  177. package/dist/core/Nestjs/types/metadata/interface.metadata.js +0 -0
  178. package/dist/core/Nestjs/types/metadata/object-type.metadata.d.ts +0 -0
  179. package/dist/core/Nestjs/types/metadata/object-type.metadata.js +0 -0
  180. package/dist/core/Nestjs/types/metadata/param.metadata.d.ts +0 -0
  181. package/dist/core/Nestjs/types/metadata/param.metadata.js +0 -0
  182. package/dist/core/Nestjs/types/metadata/property.metadata.d.ts +0 -0
  183. package/dist/core/Nestjs/types/metadata/property.metadata.js +0 -0
  184. package/dist/core/Nestjs/types/metadata/resolver.metadata.d.ts +0 -0
  185. package/dist/core/Nestjs/types/metadata/resolver.metadata.js +0 -0
  186. package/dist/core/Nestjs/types/metadata/union.metadata.d.ts +0 -0
  187. package/dist/core/Nestjs/types/metadata/union.metadata.js +0 -0
  188. package/dist/core/Nestjs/types/object-type.decorator.d.ts +0 -0
  189. package/dist/core/Nestjs/types/object-type.decorator.js +0 -0
  190. package/dist/core/Nestjs/types/omit-type.d.ts +0 -0
  191. package/dist/core/Nestjs/types/omit-type.js +0 -0
  192. package/dist/core/Nestjs/types/reflection.utils.d.ts +0 -0
  193. package/dist/core/Nestjs/types/reflection.utils.js +0 -0
  194. package/dist/core/Nestjs/types/set-metadata.decorator.d.ts +0 -0
  195. package/dist/core/Nestjs/types/set-metadata.decorator.js +0 -0
  196. package/dist/core/Nestjs/types/type-metadata.storage.d.ts +0 -0
  197. package/dist/core/Nestjs/types/type-metadata.storage.js +0 -0
  198. package/dist/core/Nestjs/types/utils/enum.utils.d.ts +0 -0
  199. package/dist/core/Nestjs/types/utils/enum.utils.js +0 -0
  200. package/dist/core/Nestjs/types/utils/get-fields-and-decorator.util.d.ts +0 -0
  201. package/dist/core/Nestjs/types/utils/get-fields-and-decorator.util.js +0 -0
  202. package/dist/core/Nestjs/types/utils/mapped-types.utils.d.ts +0 -0
  203. package/dist/core/Nestjs/types/utils/mapped-types.utils.js +0 -0
  204. package/dist/core/Nestjs/types/utils/model-properties-accessor.d.ts +0 -0
  205. package/dist/core/Nestjs/types/utils/model-properties-accessor.js +0 -0
  206. package/dist/core/Nestjs/types/utils/type-helpers.utils.d.ts +0 -0
  207. package/dist/core/Nestjs/types/utils/type-helpers.utils.js +0 -0
  208. package/dist/core/types.d.ts +0 -0
  209. package/dist/core/types.js +0 -0
  210. package/dist/decorators.d.ts +0 -0
  211. package/dist/decorators.js +0 -0
  212. package/dist/generatorDatasource.d.ts +0 -0
  213. package/dist/generatorDatasource.js +0 -0
  214. package/dist/index.d.ts +0 -0
  215. package/dist/index.js +0 -0
  216. package/dist/loadRelations.d.ts +0 -0
  217. package/dist/loadRelations.js +0 -0
  218. package/dist/outputKeys.d.ts +0 -0
  219. package/dist/outputKeys.js +0 -0
  220. package/dist/tsconfig.tsbuildinfo +1 -1
  221. package/dist/types.d.ts +1 -1
  222. package/dist/types.js +0 -0
  223. package/package.json +1 -1
@@ -1,23 +1,63 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.basicTestSuite = void 0;
4
+ const js_utils_1 = require("@goatlab/js-utils");
4
5
  const flock_1 = require("../flock");
5
- const basicTestSuite = Repository => {
6
+ const basicTestSuite = Repo => {
6
7
  let storedId;
8
+ let Repository;
7
9
  beforeAll(() => {
8
- Repository = new Repository();
10
+ Repository = new Repo();
9
11
  });
10
- test('Insert - Should insert data', async () => {
12
+ test('insert - Should insert data', async () => {
11
13
  const a = await Repository.insert({ name: 'myGoat', age: 13 });
12
14
  expect(typeof a.id).toBe('string');
13
15
  expect(a.name).toBe('myGoat');
14
16
  expect(0).toBe(0);
15
17
  });
16
- it('Create Multiple - Should insert Multiple elements', async () => {
18
+ it('insertMany - Should insert Multiple elements', async () => {
17
19
  const insertedFlock = await Repository.insertMany(flock_1.flock);
18
20
  expect(insertedFlock[0].name).toBe('Goatee');
19
21
  storedId = insertedFlock[0].id;
20
22
  });
23
+ test('findById - Should GET an object by its ID', async () => {
24
+ const goats = await Repository.insertMany(flock_1.flock);
25
+ const goat = await Repository.findById(goats[0].id);
26
+ expect(goat?.id).toBe(goats[0].id);
27
+ expect(typeof goat?.id).toBe('string');
28
+ const anotherGoat = await Repository.findById('507f1f77bcf86cd799439011');
29
+ expect(anotherGoat).toBe(null);
30
+ });
31
+ test('findById - Should GET selected Data', async () => {
32
+ const goats = await Repository.insertMany(flock_1.flock);
33
+ const goat = await Repository.findById(goats[0].id, {
34
+ select: {
35
+ age: true
36
+ }
37
+ });
38
+ expect(goat).not.toHaveProperty('name');
39
+ expect(goat?.age).toBe(goats[0].age);
40
+ });
41
+ test('findByIds - Should GET data', async () => {
42
+ const goats = await Repository.insertMany(flock_1.flock);
43
+ const ids = [goats[0].id, goats[1].id];
44
+ const selectedGoats = await Repository.findByIds(ids);
45
+ expect(selectedGoats.length).toBe(2);
46
+ expect(selectedGoats[0].id === ids[0] || selectedGoats[1].id === ids[0]).toBe(true);
47
+ });
48
+ test('findByIds - Should GET selectedData', async () => {
49
+ const goats = await Repository.insertMany(flock_1.flock);
50
+ const ids = [goats[0].id, goats[1].id];
51
+ const ages = [goats[0].age, goats[1].age];
52
+ const selectedGoats = await Repository.findByIds(ids, {
53
+ select: {
54
+ age: true
55
+ }
56
+ });
57
+ expect(selectedGoats.length).toBe(2);
58
+ expect(selectedGoats[0].age === ages[0] || selectedGoats[1].age === ages[0]).toBe(true);
59
+ expect(selectedGoats[0]).not.toHaveProperty('name');
60
+ });
21
61
  test('findMany - Should GET data', async () => {
22
62
  await Repository.insertMany(flock_1.flock);
23
63
  const storedGoats = await Repository.findMany();
@@ -47,6 +87,69 @@ const basicTestSuite = Repository => {
47
87
  expect(Array.isArray(storedGoats)).toBe(true);
48
88
  expect(storedGoats.length).toBe(0);
49
89
  });
90
+ test('findMany - Should SELECT attributes', async () => {
91
+ await Repository.insertMany(flock_1.flock);
92
+ const storedGoats = await Repository.findMany({
93
+ where: {
94
+ name: 'Goatee'
95
+ },
96
+ select: {
97
+ age: true
98
+ }
99
+ });
100
+ expect(Array.isArray(storedGoats)).toBe(true);
101
+ expect(storedGoats.length > 0).toBe(true);
102
+ expect(storedGoats[0]).not.toHaveProperty('name');
103
+ });
104
+ test('findFirst - Should get only 1 object back', async () => {
105
+ await Repository.insertMany(flock_1.flock);
106
+ const storedGoats = await Repository.findFirst({
107
+ where: {
108
+ name: 'Goatee'
109
+ }
110
+ });
111
+ expect(Array.isArray(storedGoats)).toBe(false);
112
+ expect(typeof storedGoats.id).toBe('string');
113
+ });
114
+ test('findFirst - Should FILTER AND SELECT DATA', async () => {
115
+ await Repository.insertMany(flock_1.flock);
116
+ const storedGoats = await Repository.findFirst({
117
+ where: {
118
+ name: 'Goatee'
119
+ },
120
+ select: {
121
+ name: true
122
+ }
123
+ });
124
+ expect(Array.isArray(storedGoats)).toBe(false);
125
+ expect(storedGoats.name).toBe('Goatee');
126
+ expect(storedGoats).not.toHaveProperty('age');
127
+ });
128
+ test('requireFirst - Should fail if not found', async () => {
129
+ const insertedUser = await Repository.insert({
130
+ name: 'testGoat',
131
+ age: 20
132
+ });
133
+ const [error] = await js_utils_1.Promises.try(Repository.requireFirst({
134
+ where: {
135
+ name: 'noneExistingGoat'
136
+ }
137
+ }));
138
+ expect(error?.message).toBe('No objects found matching: {"where":{"name":"noneExistingGoat"}}');
139
+ });
140
+ test('requireFirst - Should find first item', async () => {
141
+ const insertedUser = await Repository.insert({
142
+ name: 'testGoat',
143
+ age: 20
144
+ });
145
+ const [error, goat] = await js_utils_1.Promises.try(Repository.requireFirst({
146
+ where: {
147
+ name: 'testGoat'
148
+ }
149
+ }));
150
+ expect(error).toBe(null);
151
+ expect(goat.name).toBe(insertedUser.name);
152
+ });
50
153
  it('UpdateById - Should Update a single element', async () => {
51
154
  await Repository.insertMany(flock_1.flock);
52
155
  const goats = await Repository.findMany();
@@ -67,5 +170,14 @@ const basicTestSuite = Repository => {
67
170
  expect(data.name).toBe('MyReplacedGoat');
68
171
  expect(data.id).toBe(goats[0].id);
69
172
  });
173
+ it('deleteById - Should delete an item', async () => {
174
+ await Repository.insertMany(flock_1.flock);
175
+ const goats = await Repository.findMany();
176
+ const foundGoat = await Repository.requireById(goats[0].id);
177
+ expect(foundGoat.id).toBe(goats[0].id);
178
+ await Repository.deleteById(foundGoat.id);
179
+ const [error] = await js_utils_1.Promises.try(Repository.requireById(goats[0].id));
180
+ expect(error?.message).toBe(`Object ${goats[0].id} not found`);
181
+ });
70
182
  };
71
183
  exports.basicTestSuite = basicTestSuite;
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
package/dist/cache.d.ts CHANGED
File without changes
package/dist/cache.js CHANGED
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes