@loopback/repository-tests 0.20.2 → 0.21.2

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 (187) hide show
  1. package/LICENSE +2 -2
  2. package/dist/crud/create-retrieve.suite.js +1 -1
  3. package/dist/crud/create-retrieve.suite.js.map +1 -1
  4. package/dist/crud/freeform-properties.suite.js +2 -2
  5. package/dist/crud/freeform-properties.suite.js.map +1 -1
  6. package/dist/crud/nested-model-properties.suite.js +1 -1
  7. package/dist/crud/nested-model-properties.suite.js.map +1 -1
  8. package/dist/crud/relations/acceptance/belongs-to.inclusion-resolver.polymorphic.relation.acceptance.d.ts +2 -0
  9. package/dist/crud/relations/acceptance/belongs-to.inclusion-resolver.polymorphic.relation.acceptance.js +170 -0
  10. package/dist/crud/relations/acceptance/belongs-to.inclusion-resolver.polymorphic.relation.acceptance.js.map +1 -0
  11. package/dist/crud/relations/acceptance/belongs-to.inclusion-resolver.relation.acceptance.js +1 -1
  12. package/dist/crud/relations/acceptance/belongs-to.inclusion-resolver.relation.acceptance.js.map +1 -1
  13. package/dist/crud/relations/acceptance/belongs-to.polymorphic.relation.acceptance.d.ts +2 -0
  14. package/dist/crud/relations/acceptance/belongs-to.polymorphic.relation.acceptance.js +55 -0
  15. package/dist/crud/relations/acceptance/belongs-to.polymorphic.relation.acceptance.js.map +1 -0
  16. package/dist/crud/relations/acceptance/belongs-to.relation.acceptance.js +1 -1
  17. package/dist/crud/relations/acceptance/belongs-to.relation.acceptance.js.map +1 -1
  18. package/dist/crud/relations/acceptance/has-many-inclusion-resolver.relation.acceptance.js +1 -1
  19. package/dist/crud/relations/acceptance/has-many-inclusion-resolver.relation.acceptance.js.map +1 -1
  20. package/dist/crud/relations/acceptance/has-many-through-inclusion-resolver.acceptance.js +1 -1
  21. package/dist/crud/relations/acceptance/has-many-through-inclusion-resolver.acceptance.js.map +1 -1
  22. package/dist/crud/relations/acceptance/has-many-through-inclusion-resolver.polymorphic.acceptance.d.ts +2 -0
  23. package/dist/crud/relations/acceptance/has-many-through-inclusion-resolver.polymorphic.acceptance.js +170 -0
  24. package/dist/crud/relations/acceptance/has-many-through-inclusion-resolver.polymorphic.acceptance.js.map +1 -0
  25. package/dist/crud/relations/acceptance/has-many-through.relation.acceptance.js +1 -1
  26. package/dist/crud/relations/acceptance/has-many-through.relation.acceptance.js.map +1 -1
  27. package/dist/crud/relations/acceptance/has-many-through.relation.polymorphic.acceptance.d.ts +2 -0
  28. package/dist/crud/relations/acceptance/has-many-through.relation.polymorphic.acceptance.js +361 -0
  29. package/dist/crud/relations/acceptance/has-many-through.relation.polymorphic.acceptance.js.map +1 -0
  30. package/dist/crud/relations/acceptance/has-many.relation.acceptance.js +1 -1
  31. package/dist/crud/relations/acceptance/has-many.relation.acceptance.js.map +1 -1
  32. package/dist/crud/relations/acceptance/has-one.inclusion-resolver.acceptance.js +1 -1
  33. package/dist/crud/relations/acceptance/has-one.inclusion-resolver.acceptance.js.map +1 -1
  34. package/dist/crud/relations/acceptance/has-one.inclusion-resolver.polymorphic.acceptance.d.ts +2 -0
  35. package/dist/crud/relations/acceptance/has-one.inclusion-resolver.polymorphic.acceptance.js +161 -0
  36. package/dist/crud/relations/acceptance/has-one.inclusion-resolver.polymorphic.acceptance.js.map +1 -0
  37. package/dist/crud/relations/acceptance/has-one.relation.acceptance.js +1 -1
  38. package/dist/crud/relations/acceptance/has-one.relation.acceptance.js.map +1 -1
  39. package/dist/crud/relations/acceptance/has-one.relation.polymorphic.acceptance.d.ts +2 -0
  40. package/dist/crud/relations/acceptance/has-one.relation.polymorphic.acceptance.js +190 -0
  41. package/dist/crud/relations/acceptance/has-one.relation.polymorphic.acceptance.js.map +1 -0
  42. package/dist/crud/relations/acceptance/multi-relations-inclusion-resolver.relation.acceptance.js +1 -1
  43. package/dist/crud/relations/acceptance/multi-relations-inclusion-resolver.relation.acceptance.js.map +1 -1
  44. package/dist/crud/relations/fixtures/models/address.model.js +1 -1
  45. package/dist/crud/relations/fixtures/models/address.model.js.map +1 -1
  46. package/dist/crud/relations/fixtures/models/cart-item.model.js +1 -1
  47. package/dist/crud/relations/fixtures/models/cart-item.model.js.map +1 -1
  48. package/dist/crud/relations/fixtures/models/contact.model.d.ts +18 -0
  49. package/dist/crud/relations/fixtures/models/contact.model.js +49 -0
  50. package/dist/crud/relations/fixtures/models/contact.model.js.map +1 -0
  51. package/dist/crud/relations/fixtures/models/customer-cart-item-link.model.js +1 -1
  52. package/dist/crud/relations/fixtures/models/customer-cart-item-link.model.js.map +1 -1
  53. package/dist/crud/relations/fixtures/models/customer-promotion-link.model.d.ts +14 -0
  54. package/dist/crud/relations/fixtures/models/customer-promotion-link.model.js +46 -0
  55. package/dist/crud/relations/fixtures/models/customer-promotion-link.model.js.map +1 -0
  56. package/dist/crud/relations/fixtures/models/customer.model.d.ts +16 -3
  57. package/dist/crud/relations/fixtures/models/customer.model.js +28 -10
  58. package/dist/crud/relations/fixtures/models/customer.model.js.map +1 -1
  59. package/dist/crud/relations/fixtures/models/index.d.ts +6 -0
  60. package/dist/crud/relations/fixtures/models/index.js +7 -1
  61. package/dist/crud/relations/fixtures/models/index.js.map +1 -1
  62. package/dist/crud/relations/fixtures/models/order.model.js +1 -1
  63. package/dist/crud/relations/fixtures/models/order.model.js.map +1 -1
  64. package/dist/crud/relations/fixtures/models/payment-method.model.d.ts +47 -0
  65. package/dist/crud/relations/fixtures/models/payment-method.model.js +87 -0
  66. package/dist/crud/relations/fixtures/models/payment-method.model.js.map +1 -0
  67. package/dist/crud/relations/fixtures/models/promotion.model.d.ts +27 -0
  68. package/dist/crud/relations/fixtures/models/promotion.model.js +54 -0
  69. package/dist/crud/relations/fixtures/models/promotion.model.js.map +1 -0
  70. package/dist/crud/relations/fixtures/models/shipment.model.js +1 -1
  71. package/dist/crud/relations/fixtures/models/shipment.model.js.map +1 -1
  72. package/dist/crud/relations/fixtures/models/stakeholder.model.d.ts +7 -0
  73. package/dist/crud/relations/fixtures/models/stakeholder.model.js +38 -0
  74. package/dist/crud/relations/fixtures/models/stakeholder.model.js.map +1 -0
  75. package/dist/crud/relations/fixtures/models/supplier.model.d.ts +15 -0
  76. package/dist/crud/relations/fixtures/models/supplier.model.js +23 -0
  77. package/dist/crud/relations/fixtures/models/supplier.model.js.map +1 -0
  78. package/dist/crud/relations/fixtures/models/user-link.model.js +1 -1
  79. package/dist/crud/relations/fixtures/models/user-link.model.js.map +1 -1
  80. package/dist/crud/relations/fixtures/models/user.model.js +1 -1
  81. package/dist/crud/relations/fixtures/models/user.model.js.map +1 -1
  82. package/dist/crud/relations/fixtures/repositories/address.repository.js +1 -1
  83. package/dist/crud/relations/fixtures/repositories/address.repository.js.map +1 -1
  84. package/dist/crud/relations/fixtures/repositories/cart-item.repository.js +1 -1
  85. package/dist/crud/relations/fixtures/repositories/cart-item.repository.js.map +1 -1
  86. package/dist/crud/relations/fixtures/repositories/contact.repository.d.ts +30 -0
  87. package/dist/crud/relations/fixtures/repositories/contact.repository.js +21 -0
  88. package/dist/crud/relations/fixtures/repositories/contact.repository.js.map +1 -0
  89. package/dist/crud/relations/fixtures/repositories/customer-cart-item-link.repository.js +1 -1
  90. package/dist/crud/relations/fixtures/repositories/customer-cart-item-link.repository.js.map +1 -1
  91. package/dist/crud/relations/fixtures/repositories/customer-promotion-link.repository.d.ts +26 -0
  92. package/dist/crud/relations/fixtures/repositories/customer-promotion-link.repository.js +18 -0
  93. package/dist/crud/relations/fixtures/repositories/customer-promotion-link.repository.js.map +1 -0
  94. package/dist/crud/relations/fixtures/repositories/customer.repository.d.ts +9 -2
  95. package/dist/crud/relations/fixtures/repositories/customer.repository.js +8 -2
  96. package/dist/crud/relations/fixtures/repositories/customer.repository.js.map +1 -1
  97. package/dist/crud/relations/fixtures/repositories/index.d.ts +6 -1
  98. package/dist/crud/relations/fixtures/repositories/index.js +7 -2
  99. package/dist/crud/relations/fixtures/repositories/index.js.map +1 -1
  100. package/dist/crud/relations/fixtures/repositories/order.repository.js +1 -1
  101. package/dist/crud/relations/fixtures/repositories/order.repository.js.map +1 -1
  102. package/dist/crud/relations/fixtures/repositories/payment-method.repository.d.ts +77 -0
  103. package/dist/crud/relations/fixtures/repositories/payment-method.repository.js +45 -0
  104. package/dist/crud/relations/fixtures/repositories/payment-method.repository.js.map +1 -0
  105. package/dist/crud/relations/fixtures/repositories/promotion.repository.d.ts +49 -0
  106. package/dist/crud/relations/fixtures/repositories/promotion.repository.js +25 -0
  107. package/dist/crud/relations/fixtures/repositories/promotion.repository.js.map +1 -0
  108. package/dist/crud/relations/fixtures/repositories/shipment.repository.js +1 -1
  109. package/dist/crud/relations/fixtures/repositories/shipment.repository.js.map +1 -1
  110. package/dist/crud/relations/fixtures/repositories/supplier.repository.d.ts +28 -0
  111. package/dist/crud/relations/fixtures/repositories/supplier.repository.js +21 -0
  112. package/dist/crud/relations/fixtures/repositories/supplier.repository.js.map +1 -0
  113. package/dist/crud/relations/fixtures/repositories/user-link.repository.js +1 -1
  114. package/dist/crud/relations/fixtures/repositories/user-link.repository.js.map +1 -1
  115. package/dist/crud/relations/fixtures/repositories/user.repository.js +1 -1
  116. package/dist/crud/relations/fixtures/repositories/user.repository.js.map +1 -1
  117. package/dist/crud/relations/helpers.d.ts +9 -1
  118. package/dist/crud/relations/helpers.js +86 -11
  119. package/dist/crud/relations/helpers.js.map +1 -1
  120. package/dist/crud/replace-by-id.suite.js +1 -1
  121. package/dist/crud/replace-by-id.suite.js.map +1 -1
  122. package/dist/crud/transactions.suite.js +1 -1
  123. package/dist/crud/transactions.suite.js.map +1 -1
  124. package/dist/crud-test-suite.js +1 -1
  125. package/dist/crud-test-suite.js.map +1 -1
  126. package/dist/helpers.repository-tests.d.ts +1 -1
  127. package/dist/helpers.repository-tests.js +1 -1
  128. package/dist/helpers.repository-tests.js.map +1 -1
  129. package/dist/index.js +1 -1
  130. package/dist/index.js.map +1 -1
  131. package/dist/types.repository-tests.js +1 -1
  132. package/dist/types.repository-tests.js.map +1 -1
  133. package/package.json +14 -14
  134. package/src/crud/create-retrieve.suite.ts +1 -1
  135. package/src/crud/freeform-properties.suite.ts +10 -6
  136. package/src/crud/nested-model-properties.suite.ts +1 -1
  137. package/src/crud/relations/acceptance/belongs-to.inclusion-resolver.polymorphic.relation.acceptance.ts +221 -0
  138. package/src/crud/relations/acceptance/belongs-to.inclusion-resolver.relation.acceptance.ts +1 -1
  139. package/src/crud/relations/acceptance/belongs-to.polymorphic.relation.acceptance.ts +88 -0
  140. package/src/crud/relations/acceptance/belongs-to.relation.acceptance.ts +1 -1
  141. package/src/crud/relations/acceptance/has-many-inclusion-resolver.relation.acceptance.ts +1 -1
  142. package/src/crud/relations/acceptance/has-many-through-inclusion-resolver.acceptance.ts +1 -1
  143. package/src/crud/relations/acceptance/has-many-through-inclusion-resolver.polymorphic.acceptance.ts +255 -0
  144. package/src/crud/relations/acceptance/has-many-through.relation.acceptance.ts +2 -2
  145. package/src/crud/relations/acceptance/has-many-through.relation.polymorphic.acceptance.ts +494 -0
  146. package/src/crud/relations/acceptance/has-many.relation.acceptance.ts +1 -1
  147. package/src/crud/relations/acceptance/has-one.inclusion-resolver.acceptance.ts +1 -1
  148. package/src/crud/relations/acceptance/has-one.inclusion-resolver.polymorphic.acceptance.ts +208 -0
  149. package/src/crud/relations/acceptance/has-one.relation.acceptance.ts +1 -1
  150. package/src/crud/relations/acceptance/has-one.relation.polymorphic.acceptance.ts +328 -0
  151. package/src/crud/relations/acceptance/multi-relations-inclusion-resolver.relation.acceptance.ts +1 -1
  152. package/src/crud/relations/fixtures/models/address.model.ts +1 -1
  153. package/src/crud/relations/fixtures/models/cart-item.model.ts +1 -1
  154. package/src/crud/relations/fixtures/models/contact.model.ts +56 -0
  155. package/src/crud/relations/fixtures/models/customer-cart-item-link.model.ts +1 -1
  156. package/src/crud/relations/fixtures/models/customer-promotion-link.model.ts +52 -0
  157. package/src/crud/relations/fixtures/models/customer.model.ts +40 -10
  158. package/src/crud/relations/fixtures/models/index.ts +7 -1
  159. package/src/crud/relations/fixtures/models/order.model.ts +1 -1
  160. package/src/crud/relations/fixtures/models/payment-method.model.ts +118 -0
  161. package/src/crud/relations/fixtures/models/promotion.model.ts +67 -0
  162. package/src/crud/relations/fixtures/models/shipment.model.ts +1 -1
  163. package/src/crud/relations/fixtures/models/stakeholder.model.ts +33 -0
  164. package/src/crud/relations/fixtures/models/supplier.model.ts +35 -0
  165. package/src/crud/relations/fixtures/models/user-link.model.ts +1 -1
  166. package/src/crud/relations/fixtures/models/user.model.ts +1 -1
  167. package/src/crud/relations/fixtures/repositories/address.repository.ts +1 -1
  168. package/src/crud/relations/fixtures/repositories/cart-item.repository.ts +1 -1
  169. package/src/crud/relations/fixtures/repositories/contact.repository.ts +44 -0
  170. package/src/crud/relations/fixtures/repositories/customer-cart-item-link.repository.ts +1 -1
  171. package/src/crud/relations/fixtures/repositories/customer-promotion-link.repository.ts +20 -0
  172. package/src/crud/relations/fixtures/repositories/customer.repository.ts +48 -1
  173. package/src/crud/relations/fixtures/repositories/index.ts +7 -2
  174. package/src/crud/relations/fixtures/repositories/order.repository.ts +1 -1
  175. package/src/crud/relations/fixtures/repositories/payment-method.repository.ts +118 -0
  176. package/src/crud/relations/fixtures/repositories/promotion.repository.ts +37 -0
  177. package/src/crud/relations/fixtures/repositories/shipment.repository.ts +1 -1
  178. package/src/crud/relations/fixtures/repositories/supplier.repository.ts +40 -0
  179. package/src/crud/relations/fixtures/repositories/user-link.repository.ts +1 -1
  180. package/src/crud/relations/fixtures/repositories/user.repository.ts +1 -1
  181. package/src/crud/relations/helpers.ts +201 -31
  182. package/src/crud/replace-by-id.suite.ts +1 -1
  183. package/src/crud/transactions.suite.ts +1 -1
  184. package/src/crud-test-suite.ts +1 -1
  185. package/src/helpers.repository-tests.ts +2 -2
  186. package/src/index.ts +1 -1
  187. package/src/types.repository-tests.ts +1 -1
@@ -0,0 +1,118 @@
1
+ // Copyright IBM Corp. and LoopBack contributors 2019. All Rights Reserved.
2
+ // Node module: @loopback/repository-tests
3
+ // This file is licensed under the MIT License.
4
+ // License text available at https://opensource.org/licenses/MIT
5
+
6
+ import {Getter} from '@loopback/core';
7
+ import {
8
+ BelongsToAccessor,
9
+ BelongsToDefinition,
10
+ createBelongsToAccessor,
11
+ createHasOneRepositoryFactory,
12
+ HasOneDefinition,
13
+ HasOneRepositoryFactory,
14
+ juggler,
15
+ } from '@loopback/repository';
16
+ import {CrudRepositoryCtor} from '../../../..';
17
+ import {
18
+ CardInfo,
19
+ CardInfoRelations,
20
+ Cash,
21
+ CashRelations,
22
+ CreditCard,
23
+ CreditCardRelations,
24
+ Customer,
25
+ } from '../models';
26
+
27
+ export function createCreditCardRepo(repoClass: CrudRepositoryCtor) {
28
+ return class CreditCardRepository extends repoClass<
29
+ CreditCard,
30
+ typeof CreditCard.prototype.id,
31
+ CreditCardRelations
32
+ > {
33
+ public readonly customer: BelongsToAccessor<
34
+ Customer,
35
+ typeof CreditCard.prototype.id
36
+ >;
37
+
38
+ public readonly cardInfo: HasOneRepositoryFactory<
39
+ CardInfo,
40
+ typeof CreditCard.prototype.id
41
+ >;
42
+
43
+ constructor(
44
+ db: juggler.DataSource,
45
+ customerRepositoryGetter: Getter<typeof repoClass.prototype>,
46
+ cardInfoRepositoryGetter: Getter<typeof repoClass.prototype>,
47
+ ) {
48
+ super(CreditCard, db);
49
+ // create a belongsto relation from this public method
50
+ const customerMeta = this.entityClass.definition.relations['customer'];
51
+ this.customer = createBelongsToAccessor(
52
+ customerMeta as BelongsToDefinition,
53
+ customerRepositoryGetter,
54
+ this,
55
+ );
56
+ const cardInfoMeta = this.entityClass.definition.relations['cardInfo'];
57
+ this.cardInfo = createHasOneRepositoryFactory(
58
+ cardInfoMeta as HasOneDefinition,
59
+ cardInfoRepositoryGetter,
60
+ );
61
+ }
62
+ };
63
+ }
64
+
65
+ export function createCashRepo(repoClass: CrudRepositoryCtor) {
66
+ return class CashRepository extends repoClass<
67
+ Cash,
68
+ typeof Cash.prototype.id,
69
+ CashRelations
70
+ > {
71
+ public readonly customer: BelongsToAccessor<
72
+ Customer,
73
+ typeof Cash.prototype.id
74
+ >;
75
+
76
+ constructor(
77
+ db: juggler.DataSource,
78
+ customerRepositoryGetter: Getter<typeof repoClass.prototype>,
79
+ ) {
80
+ super(Cash, db);
81
+ // create a belongsto relation from this public method
82
+ const customerMeta = this.entityClass.definition.relations['customer'];
83
+ this.customer = createBelongsToAccessor(
84
+ customerMeta as BelongsToDefinition,
85
+ customerRepositoryGetter,
86
+ this,
87
+ );
88
+ }
89
+ };
90
+ }
91
+
92
+ export function createCardInfoRepo(repoClass: CrudRepositoryCtor) {
93
+ return class CardInfoRepository extends repoClass<
94
+ CardInfo,
95
+ typeof CardInfo.prototype.id,
96
+ CardInfoRelations
97
+ > {
98
+ public readonly creditCard: BelongsToAccessor<
99
+ CreditCard,
100
+ typeof CardInfo.prototype.id
101
+ >;
102
+
103
+ constructor(
104
+ db: juggler.DataSource,
105
+ creditCardRepositoryGetter: Getter<typeof repoClass.prototype>,
106
+ ) {
107
+ super(CardInfo, db);
108
+ // create a belongsto relation from this public method
109
+ const creditCardMeta =
110
+ this.entityClass.definition.relations['creditCard'];
111
+ this.creditCard = createBelongsToAccessor(
112
+ creditCardMeta as BelongsToDefinition,
113
+ creditCardRepositoryGetter,
114
+ this,
115
+ );
116
+ }
117
+ };
118
+ }
@@ -0,0 +1,37 @@
1
+ // Copyright IBM Corp. and LoopBack contributors 2019. All Rights Reserved.
2
+ // Node module: @loopback/repository-tests
3
+ // This file is licensed under the MIT License.
4
+ // License text available at https://opensource.org/licenses/MIT
5
+
6
+ import {juggler} from '@loopback/repository';
7
+ import {CrudRepositoryCtor} from '../../../..';
8
+ import {
9
+ FreeDelivery,
10
+ FreeDeliveryRelations,
11
+ HalfPrice,
12
+ HalfPriceRelations,
13
+ } from '../models';
14
+
15
+ export function createFreeDeliveryRepo(repoClass: CrudRepositoryCtor) {
16
+ return class FreeDeliveryRepository extends repoClass<
17
+ FreeDelivery,
18
+ typeof FreeDelivery.prototype.id,
19
+ FreeDeliveryRelations
20
+ > {
21
+ constructor(db: juggler.DataSource) {
22
+ super(FreeDelivery, db);
23
+ }
24
+ };
25
+ }
26
+
27
+ export function createHalfPriceRepo(repoClass: CrudRepositoryCtor) {
28
+ return class HalfPriceRepository extends repoClass<
29
+ HalfPrice,
30
+ typeof HalfPrice.prototype.id,
31
+ HalfPriceRelations
32
+ > {
33
+ constructor(db: juggler.DataSource) {
34
+ super(HalfPrice, db);
35
+ }
36
+ };
37
+ }
@@ -1,4 +1,4 @@
1
- // Copyright IBM Corp. 2019. All Rights Reserved.
1
+ // Copyright IBM Corp. and LoopBack contributors 2019. All Rights Reserved.
2
2
  // Node module: @loopback/repository-tests
3
3
  // This file is licensed under the MIT License.
4
4
  // License text available at https://opensource.org/licenses/MIT
@@ -0,0 +1,40 @@
1
+ // Copyright IBM Corp. and LoopBack contributors 2019,2020. All Rights Reserved.
2
+ // Node module: @loopback/repository-tests
3
+ // This file is licensed under the MIT License.
4
+ // License text available at https://opensource.org/licenses/MIT
5
+
6
+ import {Getter} from '@loopback/core';
7
+ import {
8
+ createHasOneRepositoryFactory,
9
+ HasOneDefinition,
10
+ HasOneRepositoryFactory,
11
+ juggler,
12
+ } from '@loopback/repository';
13
+ import {CrudRepositoryCtor} from '../../../../types.repository-tests';
14
+ import {Contact, Supplier, SupplierRelations} from '../models';
15
+
16
+ // create the SupplierRepo by calling this func so that it can be extended from CrudRepositoryCtor
17
+ export function createSupplierRepo(repoClass: CrudRepositoryCtor) {
18
+ return class SupplierRepository extends repoClass<
19
+ Supplier,
20
+ typeof Supplier.prototype.id,
21
+ SupplierRelations
22
+ > {
23
+ public readonly contact: HasOneRepositoryFactory<
24
+ Contact,
25
+ typeof Supplier.prototype.id
26
+ >;
27
+
28
+ constructor(
29
+ db: juggler.DataSource,
30
+ contactRepositoryGetter: Getter<typeof repoClass.prototype>,
31
+ ) {
32
+ super(Supplier, db);
33
+ const contactMeta = this.entityClass.definition.relations['contact'];
34
+ this.contact = createHasOneRepositoryFactory(
35
+ contactMeta as HasOneDefinition,
36
+ contactRepositoryGetter,
37
+ );
38
+ }
39
+ };
40
+ }
@@ -1,4 +1,4 @@
1
- // Copyright IBM Corp. 2020. All Rights Reserved.
1
+ // Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved.
2
2
  // Node module: @loopback/repository-tests
3
3
  // This file is licensed under the MIT License.
4
4
  // License text available at https://opensource.org/licenses/MIT
@@ -1,4 +1,4 @@
1
- // Copyright IBM Corp. 2020. All Rights Reserved.
1
+ // Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved.
2
2
  // Node module: @loopback/repository-tests
3
3
  // This file is licensed under the MIT License.
4
4
  // License text available at https://opensource.org/licenses/MIT
@@ -1,23 +1,39 @@
1
- // Copyright IBM Corp. 2019,2020. All Rights Reserved.
1
+ // Copyright IBM Corp. and LoopBack contributors 2019,2020. All Rights Reserved.
2
2
  // Node module: @loopback/repository-tests
3
3
  // This file is licensed under the MIT License.
4
4
  // License text available at https://opensource.org/licenses/MIT
5
5
 
6
- import {juggler} from '@loopback/repository';
6
+ import {Getter, juggler} from '@loopback/repository';
7
7
  import {CrudFeatures, CrudRepositoryCtor} from '../..';
8
8
  import {
9
9
  Address,
10
10
  AddressRepository,
11
+ CardInfo,
12
+ CardInfoRepository,
11
13
  CartItem,
12
14
  CartItemRepository,
15
+ Cash,
16
+ CashRepository,
17
+ Contact,
18
+ ContactRepository,
19
+ CreditCard,
20
+ CreditCardRepository,
13
21
  Customer,
14
22
  CustomerCartItemLink,
15
23
  CustomerCartItemLinkRepository,
24
+ CustomerPromotionLink,
25
+ CustomerPromotionLinkRepository,
16
26
  CustomerRepository,
27
+ FreeDelivery,
28
+ FreeDeliveryRepository,
29
+ HalfPrice,
30
+ HalfPriceRepository,
17
31
  Order,
18
32
  OrderRepository,
19
33
  Shipment,
20
34
  ShipmentRepository,
35
+ Supplier,
36
+ SupplierRepository,
21
37
  User,
22
38
  UserLink,
23
39
  UserLinkRepository,
@@ -25,11 +41,19 @@ import {
25
41
  } from './fixtures/models';
26
42
  import {
27
43
  createAddressRepo,
44
+ createCardInfoRepo,
28
45
  createCartItemRepo,
46
+ createCashRepo,
47
+ createContactRepo,
48
+ createCreditCardRepo,
29
49
  createCustomerCartItemLinkRepo,
50
+ createCustomerPromotionLinkRepo,
30
51
  createCustomerRepo,
52
+ createFreeDeliveryRepo,
53
+ createHalfPriceRepo,
31
54
  createOrderRepo,
32
55
  createShipmentRepo,
56
+ createSupplierRepo,
33
57
  createUserLinkRepo,
34
58
  createUserRepo,
35
59
  } from './fixtures/repositories';
@@ -42,8 +66,16 @@ export function givenBoundCrudRepositories(
42
66
  Order.definition.properties.id.type = features.idType;
43
67
  Address.definition.properties.id.type = features.idType;
44
68
  Customer.definition.properties.id.type = features.idType;
69
+ Supplier.definition.properties.id.type = features.idType;
70
+ Contact.definition.properties.id.type = features.idType;
71
+ CreditCard.definition.properties.id.type = features.idType;
72
+ CardInfo.definition.properties.id.type = features.idType;
73
+ Cash.definition.properties.id.type = features.idType;
45
74
  CartItem.definition.properties.id.type = features.idType;
46
75
  CustomerCartItemLink.definition.properties.id.type = features.idType;
76
+ FreeDelivery.definition.properties.id.type = features.idType;
77
+ HalfPrice.definition.properties.id.type = features.idType;
78
+ CustomerPromotionLink.definition.properties.id.type = features.idType;
47
79
  Shipment.definition.properties.id.type = features.idType;
48
80
  User.definition.properties.id.type = features.idType;
49
81
  UserLink.definition.properties.id.type = features.idType;
@@ -51,6 +83,10 @@ export function givenBoundCrudRepositories(
51
83
  // this config for mongo connector to pass the test.
52
84
  // however real-world applications might have such config for MongoDB
53
85
  // setting it up to check if it works fine as well
86
+ Contact.definition.properties.stakeholderId.type = features.idType;
87
+ Contact.definition.properties.stakeholderId.mongodb = {
88
+ dataType: 'ObjectID',
89
+ };
54
90
  Order.definition.properties.customerId.type = features.idType;
55
91
  Order.definition.properties.customerId.mongodb = {
56
92
  dataType: 'ObjectID',
@@ -59,12 +95,24 @@ export function givenBoundCrudRepositories(
59
95
  Address.definition.properties.customerId.mongodb = {
60
96
  dataType: 'ObjectID',
61
97
  };
98
+ CreditCard.definition.properties.customerId.type = features.idType;
99
+ CreditCard.definition.properties.customerId.mongodb = {
100
+ dataType: 'ObjectID',
101
+ };
102
+ CardInfo.definition.properties.creditCardId.type = features.idType;
103
+ CardInfo.definition.properties.creditCardId.mongodb = {
104
+ dataType: 'ObjectID',
105
+ };
106
+ Cash.definition.properties.customerId.type = features.idType;
107
+ Cash.definition.properties.customerId.mongodb = {
108
+ dataType: 'ObjectID',
109
+ };
62
110
  CustomerCartItemLink.definition.properties.customerId.type = features.idType;
63
111
  CustomerCartItemLink.definition.properties.customerId.mongodb = {
64
112
  dataType: 'ObjectID',
65
113
  };
66
- CustomerCartItemLink.definition.properties.cartItemId.type = features.idType;
67
- CustomerCartItemLink.definition.properties.cartItemId.mongodb = {
114
+ CustomerPromotionLink.definition.properties.customerId.type = features.idType;
115
+ CustomerPromotionLink.definition.properties.customerId.mongodb = {
68
116
  dataType: 'ObjectID',
69
117
  };
70
118
  UserLink.definition.properties.followerId.type = features.idType;
@@ -75,33 +123,6 @@ export function givenBoundCrudRepositories(
75
123
  UserLink.definition.properties.followeeId.mongodb = {
76
124
  dataType: 'ObjectID',
77
125
  };
78
- // get the repository class and create a new instance of it
79
- const customerRepoClass = createCustomerRepo(repositoryClass);
80
- const customerRepo: CustomerRepository = new customerRepoClass(
81
- db,
82
- async () => orderRepo,
83
- async () => addressRepo,
84
- async () => cartItemRepo,
85
- async () => customerCartItemLinkRepo,
86
- );
87
-
88
- // register the inclusionResolvers here for customerRepo
89
- customerRepo.inclusionResolvers.set(
90
- 'orders',
91
- customerRepo.orders.inclusionResolver,
92
- );
93
- customerRepo.inclusionResolvers.set(
94
- 'customers',
95
- customerRepo.customers.inclusionResolver,
96
- );
97
- customerRepo.inclusionResolvers.set(
98
- 'address',
99
- customerRepo.address.inclusionResolver,
100
- );
101
- customerRepo.inclusionResolvers.set(
102
- 'cartItems',
103
- customerRepo.cartItems.inclusionResolver,
104
- );
105
126
 
106
127
  const orderRepoClass = createOrderRepo(repositoryClass);
107
128
  const orderRepo: OrderRepository = new orderRepoClass(
@@ -132,6 +153,50 @@ export function givenBoundCrudRepositories(
132
153
  async () => customerRepo,
133
154
  );
134
155
 
156
+ const creditCardRepoClass = createCreditCardRepo(repositoryClass);
157
+ const cashRepoClass = createCashRepo(repositoryClass);
158
+ const creditCardRepo: CreditCardRepository = new creditCardRepoClass(
159
+ db,
160
+ async () => customerRepo,
161
+ async () => cardInfoRepo,
162
+ );
163
+
164
+ const cashRepo: CashRepository = new cashRepoClass(
165
+ db,
166
+ async () => customerRepo,
167
+ );
168
+ creditCardRepo.inclusionResolvers.set(
169
+ 'customer',
170
+ creditCardRepo.customer.inclusionResolver,
171
+ );
172
+ creditCardRepo.inclusionResolvers.set(
173
+ 'cardInfo',
174
+ creditCardRepo.cardInfo.inclusionResolver,
175
+ );
176
+ cashRepo.inclusionResolvers.set(
177
+ 'customer',
178
+ cashRepo.customer.inclusionResolver,
179
+ );
180
+ const paymentMethodRepo: {
181
+ [repoType: string]: Getter<typeof repositoryClass.prototype>;
182
+ } = {
183
+ // eslint-disable-next-line @typescript-eslint/naming-convention
184
+ CreditCard: async () => creditCardRepo,
185
+ // eslint-disable-next-line @typescript-eslint/naming-convention
186
+ Cash: async () => cashRepo,
187
+ };
188
+
189
+ const cardInfoRepoClass = createCardInfoRepo(repositoryClass);
190
+ const cardInfoRepo: CardInfoRepository = new cardInfoRepoClass(
191
+ db,
192
+ async () => creditCardRepo,
193
+ );
194
+
195
+ cardInfoRepo.inclusionResolvers.set(
196
+ 'creditCard',
197
+ cardInfoRepo.creditCard.inclusionResolver,
198
+ );
199
+
135
200
  const cartItemRepoClass = createCartItemRepo(repositoryClass);
136
201
  const cartItemRepo: CartItemRepository = new cartItemRepoClass(
137
202
  db,
@@ -148,6 +213,28 @@ export function givenBoundCrudRepositories(
148
213
  const customerCartItemLinkRepo: CustomerCartItemLinkRepository =
149
214
  new customerCartItemLinkRepoClass(db);
150
215
 
216
+ const freeDeliveryRepoClass = createFreeDeliveryRepo(repositoryClass);
217
+ const freeDeliveryRepo: FreeDeliveryRepository = new freeDeliveryRepoClass(
218
+ db,
219
+ );
220
+
221
+ const halfPriceRepoClass = createHalfPriceRepo(repositoryClass);
222
+ const halfPriceRepo: HalfPriceRepository = new halfPriceRepoClass(db);
223
+
224
+ const promotionRepo: {
225
+ [repoType: string]: Getter<typeof repositoryClass.prototype>;
226
+ } = {
227
+ // eslint-disable-next-line @typescript-eslint/naming-convention
228
+ FreeDelivery: async () => freeDeliveryRepo,
229
+ // eslint-disable-next-line @typescript-eslint/naming-convention
230
+ HalfPrice: async () => halfPriceRepo,
231
+ };
232
+
233
+ const customerPromotionLinkRepoClass =
234
+ createCustomerPromotionLinkRepo(repositoryClass);
235
+ const customerPromotionLinkRepo: CustomerPromotionLinkRepository =
236
+ new customerPromotionLinkRepoClass(db);
237
+
151
238
  const userRepoClass = createUserRepo(repositoryClass);
152
239
  const userRepo: UserRepository = new userRepoClass(
153
240
  db,
@@ -159,6 +246,81 @@ export function givenBoundCrudRepositories(
159
246
 
160
247
  userRepo.inclusionResolvers.set('users', userRepo.users.inclusionResolver);
161
248
 
249
+ const supplierRepoClass = createSupplierRepo(repositoryClass);
250
+ const supplierRepo: SupplierRepository = new supplierRepoClass(
251
+ db,
252
+ async () => contactRepo,
253
+ );
254
+
255
+ // get the repository class and create a new instance of it
256
+ const customerRepoClass = createCustomerRepo(repositoryClass);
257
+
258
+ const customerRepo: CustomerRepository = new customerRepoClass(
259
+ db,
260
+ async () => orderRepo,
261
+ async () => addressRepo,
262
+ async () => cartItemRepo,
263
+ async () => customerCartItemLinkRepo,
264
+ promotionRepo,
265
+ async () => customerPromotionLinkRepo,
266
+ paymentMethodRepo,
267
+ async () => contactRepo,
268
+ );
269
+
270
+ const stakeholderRepo: {
271
+ [repoType: string]: Getter<typeof repositoryClass.prototype>;
272
+ } = {
273
+ // eslint-disable-next-line @typescript-eslint/naming-convention
274
+ Customer: async () => customerRepo,
275
+ // eslint-disable-next-line @typescript-eslint/naming-convention
276
+ Supplier: async () => supplierRepo,
277
+ };
278
+
279
+ const contactRepoClass = createContactRepo(repositoryClass);
280
+ const contactRepo: ContactRepository = new contactRepoClass(
281
+ db,
282
+ stakeholderRepo,
283
+ );
284
+
285
+ contactRepo.inclusionResolvers.set(
286
+ 'stakeholder',
287
+ contactRepo.stakeholder.inclusionResolver,
288
+ );
289
+
290
+ // register the inclusionResolvers here for customerRepo
291
+ customerRepo.inclusionResolvers.set(
292
+ 'orders',
293
+ customerRepo.orders.inclusionResolver,
294
+ );
295
+ customerRepo.inclusionResolvers.set(
296
+ 'customers',
297
+ customerRepo.customers.inclusionResolver,
298
+ );
299
+ customerRepo.inclusionResolvers.set(
300
+ 'address',
301
+ customerRepo.address.inclusionResolver,
302
+ );
303
+ customerRepo.inclusionResolvers.set(
304
+ 'cartItems',
305
+ customerRepo.cartItems.inclusionResolver,
306
+ );
307
+ customerRepo.inclusionResolvers.set(
308
+ 'promotions',
309
+ customerRepo.promotions.inclusionResolver,
310
+ );
311
+ customerRepo.inclusionResolvers.set(
312
+ 'paymentMethod',
313
+ customerRepo.paymentMethod.inclusionResolver,
314
+ );
315
+ customerRepo.inclusionResolvers.set(
316
+ 'contact',
317
+ customerRepo.contact.inclusionResolver,
318
+ );
319
+ supplierRepo.inclusionResolvers.set(
320
+ 'contact',
321
+ supplierRepo.contact.inclusionResolver,
322
+ );
323
+
162
324
  return {
163
325
  customerRepo,
164
326
  orderRepo,
@@ -166,7 +328,15 @@ export function givenBoundCrudRepositories(
166
328
  addressRepo,
167
329
  cartItemRepo,
168
330
  customerCartItemLinkRepo,
331
+ freeDeliveryRepo,
332
+ halfPriceRepo,
333
+ customerPromotionLinkRepo,
169
334
  userRepo,
170
335
  userLinkRepo,
336
+ creditCardRepo,
337
+ cashRepo,
338
+ contactRepo,
339
+ supplierRepo,
340
+ cardInfoRepo,
171
341
  };
172
342
  }
@@ -1,4 +1,4 @@
1
- // Copyright IBM Corp. 2019,2020. All Rights Reserved.
1
+ // Copyright IBM Corp. and LoopBack contributors 2019,2020. All Rights Reserved.
2
2
  // Node module: @loopback/repository-tests
3
3
  // This file is licensed under the MIT License.
4
4
  // License text available at https://opensource.org/licenses/MIT
@@ -1,4 +1,4 @@
1
- // Copyright IBM Corp. 2019,2020. All Rights Reserved.
1
+ // Copyright IBM Corp. and LoopBack contributors 2019,2020. All Rights Reserved.
2
2
  // Node module: @loopback/repository-tests
3
3
  // This file is licensed under the MIT License.
4
4
  // License text available at https://opensource.org/licenses/MIT
@@ -1,4 +1,4 @@
1
- // Copyright IBM Corp. 2019,2020. All Rights Reserved.
1
+ // Copyright IBM Corp. and LoopBack contributors 2019,2020. All Rights Reserved.
2
2
  // Node module: @loopback/repository-tests
3
3
  // This file is licensed under the MIT License.
4
4
  // License text available at https://opensource.org/licenses/MIT
@@ -1,4 +1,4 @@
1
- // Copyright IBM Corp. 2019,2020. All Rights Reserved.
1
+ // Copyright IBM Corp. and LoopBack contributors 2019,2020. All Rights Reserved.
2
2
  // Node module: @loopback/repository-tests
3
3
  // This file is licensed under the MIT License.
4
4
  // License text available at https://opensource.org/licenses/MIT
@@ -37,7 +37,7 @@ export function withCrudCtx(
37
37
  */
38
38
  export const deleteAllModelsInDefaultDataSource = withCrudCtx(ctx => {
39
39
  ctx.dataSource.deleteAllModels();
40
- });
40
+ }) as Mocha.Func;
41
41
 
42
42
  /**
43
43
  * A union type between string and number to use since MongoDB and MySQL use
package/src/index.ts CHANGED
@@ -1,4 +1,4 @@
1
- // Copyright IBM Corp. 2019,2020. All Rights Reserved.
1
+ // Copyright IBM Corp. and LoopBack contributors 2019,2020. All Rights Reserved.
2
2
  // Node module: @loopback/repository-tests
3
3
  // This file is licensed under the MIT License.
4
4
  // License text available at https://opensource.org/licenses/MIT
@@ -1,4 +1,4 @@
1
- // Copyright IBM Corp. 2019. All Rights Reserved.
1
+ // Copyright IBM Corp. and LoopBack contributors 2019. All Rights Reserved.
2
2
  // Node module: @loopback/repository-tests
3
3
  // This file is licensed under the MIT License.
4
4
  // License text available at https://opensource.org/licenses/MIT