@stamhoofd/models 2.12.0 → 2.16.0

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 (183) hide show
  1. package/dist/src/factories/GroupFactory.js +13 -6
  2. package/dist/src/factories/GroupFactory.js.map +1 -1
  3. package/dist/src/factories/MemberFactory.js +10 -4
  4. package/dist/src/factories/MemberFactory.js.map +1 -1
  5. package/dist/src/factories/OrganizationFactory.js +11 -6
  6. package/dist/src/factories/OrganizationFactory.js.map +1 -1
  7. package/dist/src/factories/ParentFactory.js +2 -3
  8. package/dist/src/factories/ParentFactory.js.map +1 -1
  9. package/dist/src/factories/RecordFactory.js +1 -0
  10. package/dist/src/factories/RecordFactory.js.map +1 -1
  11. package/dist/src/factories/RegisterCodeFactory.js +2 -3
  12. package/dist/src/factories/RegisterCodeFactory.js.map +1 -1
  13. package/dist/src/factories/RegistrationFactory.js +2 -0
  14. package/dist/src/factories/RegistrationFactory.js.map +1 -1
  15. package/dist/src/factories/UserFactory.js +15 -5
  16. package/dist/src/factories/UserFactory.js.map +1 -1
  17. package/dist/src/factories/WebshopFactory.js +7 -3
  18. package/dist/src/factories/WebshopFactory.js.map +1 -1
  19. package/dist/src/helpers/DNSValidator.js +1 -2
  20. package/dist/src/helpers/DNSValidator.js.map +1 -1
  21. package/dist/src/helpers/EmailBuilder.d.ts +23 -5
  22. package/dist/src/helpers/EmailBuilder.d.ts.map +1 -1
  23. package/dist/src/helpers/EmailBuilder.js +73 -21
  24. package/dist/src/helpers/EmailBuilder.js.map +1 -1
  25. package/dist/src/helpers/GroupBuilder.js +2 -2
  26. package/dist/src/helpers/GroupBuilder.js.map +1 -1
  27. package/dist/src/helpers/Handlebars.js +3 -5
  28. package/dist/src/helpers/Handlebars.js.map +1 -1
  29. package/dist/src/helpers/InvoiceBuilder.js +11 -10
  30. package/dist/src/helpers/InvoiceBuilder.js.map +1 -1
  31. package/dist/src/helpers/MemberMerger.d.ts +13 -0
  32. package/dist/src/helpers/MemberMerger.d.ts.map +1 -0
  33. package/dist/src/helpers/MemberMerger.js +328 -0
  34. package/dist/src/helpers/MemberMerger.js.map +1 -0
  35. package/dist/src/helpers/MemberMerger.test.d.ts +2 -0
  36. package/dist/src/helpers/MemberMerger.test.d.ts.map +1 -0
  37. package/dist/src/helpers/MemberMerger.test.js +592 -0
  38. package/dist/src/helpers/MemberMerger.test.js.map +1 -0
  39. package/dist/src/helpers/RateLimiter.d.ts.map +1 -1
  40. package/dist/src/helpers/RateLimiter.js +10 -5
  41. package/dist/src/helpers/RateLimiter.js.map +1 -1
  42. package/dist/src/helpers/WebshopCounter.js +2 -2
  43. package/dist/src/helpers/WebshopCounter.js.map +1 -1
  44. package/dist/src/index.d.ts +1 -0
  45. package/dist/src/index.d.ts.map +1 -1
  46. package/dist/src/index.js +1 -0
  47. package/dist/src/index.js.map +1 -1
  48. package/dist/src/migrations/1605262045-import-postcodes.js +10 -2
  49. package/dist/src/migrations/1723736282-merged-members.sql +19 -0
  50. package/dist/src/models/BalanceItem.js +41 -35
  51. package/dist/src/models/BalanceItem.js.map +1 -1
  52. package/dist/src/models/BalanceItemPayment.js +14 -11
  53. package/dist/src/models/BalanceItemPayment.js.map +1 -1
  54. package/dist/src/models/BuckarooPayment.js +5 -2
  55. package/dist/src/models/BuckarooPayment.js.map +1 -1
  56. package/dist/src/models/Document.js +24 -23
  57. package/dist/src/models/Document.js.map +1 -1
  58. package/dist/src/models/DocumentTemplate.js +36 -25
  59. package/dist/src/models/DocumentTemplate.js.map +1 -1
  60. package/dist/src/models/Email.d.ts.map +1 -1
  61. package/dist/src/models/Email.js +36 -38
  62. package/dist/src/models/Email.js.map +1 -1
  63. package/dist/src/models/EmailRecipient.js +15 -13
  64. package/dist/src/models/EmailRecipient.js.map +1 -1
  65. package/dist/src/models/EmailTemplate.d.ts +5 -0
  66. package/dist/src/models/EmailTemplate.d.ts.map +1 -1
  67. package/dist/src/models/EmailTemplate.js +30 -7
  68. package/dist/src/models/EmailTemplate.js.map +1 -1
  69. package/dist/src/models/EmailVerificationCode.js +32 -25
  70. package/dist/src/models/EmailVerificationCode.js.map +1 -1
  71. package/dist/src/models/Event.js +15 -12
  72. package/dist/src/models/Event.js.map +1 -1
  73. package/dist/src/models/Group.js +24 -21
  74. package/dist/src/models/Group.js.map +1 -1
  75. package/dist/src/models/Image.d.ts +0 -1
  76. package/dist/src/models/Image.d.ts.map +1 -1
  77. package/dist/src/models/Image.js +12 -14
  78. package/dist/src/models/Image.js.map +1 -1
  79. package/dist/src/models/Member.d.ts.map +1 -1
  80. package/dist/src/models/Member.js +34 -32
  81. package/dist/src/models/Member.js.map +1 -1
  82. package/dist/src/models/MemberPlatformMembership.js +22 -16
  83. package/dist/src/models/MemberPlatformMembership.js.map +1 -1
  84. package/dist/src/models/MemberResponsibilityRecord.js +10 -8
  85. package/dist/src/models/MemberResponsibilityRecord.js.map +1 -1
  86. package/dist/src/models/MergedMember.d.ts +23 -0
  87. package/dist/src/models/MergedMember.d.ts.map +1 -0
  88. package/dist/src/models/MergedMember.js +126 -0
  89. package/dist/src/models/MergedMember.js.map +1 -0
  90. package/dist/src/models/MolliePayment.js +5 -2
  91. package/dist/src/models/MolliePayment.js.map +1 -1
  92. package/dist/src/models/MollieToken.js +14 -14
  93. package/dist/src/models/MollieToken.js.map +1 -1
  94. package/dist/src/models/OneTimeToken.js +15 -13
  95. package/dist/src/models/OneTimeToken.js.map +1 -1
  96. package/dist/src/models/Order.d.ts +1 -1
  97. package/dist/src/models/Order.d.ts.map +1 -1
  98. package/dist/src/models/Order.js +42 -52
  99. package/dist/src/models/Order.js.map +1 -1
  100. package/dist/src/models/Organization.d.ts.map +1 -1
  101. package/dist/src/models/Organization.js +64 -66
  102. package/dist/src/models/Organization.js.map +1 -1
  103. package/dist/src/models/OrganizationRegistrationPeriod.js +8 -7
  104. package/dist/src/models/OrganizationRegistrationPeriod.js.map +1 -1
  105. package/dist/src/models/PasswordToken.js +9 -5
  106. package/dist/src/models/PasswordToken.js.map +1 -1
  107. package/dist/src/models/PayconiqPayment.js +12 -14
  108. package/dist/src/models/PayconiqPayment.js.map +1 -1
  109. package/dist/src/models/Payment.d.ts.map +1 -1
  110. package/dist/src/models/Payment.js +41 -35
  111. package/dist/src/models/Payment.js.map +1 -1
  112. package/dist/src/models/Platform.js +8 -10
  113. package/dist/src/models/Platform.js.map +1 -1
  114. package/dist/src/models/RegisterCode.js +12 -9
  115. package/dist/src/models/RegisterCode.js.map +1 -1
  116. package/dist/src/models/Registration.d.ts.map +1 -1
  117. package/dist/src/models/Registration.js +65 -80
  118. package/dist/src/models/Registration.js.map +1 -1
  119. package/dist/src/models/RegistrationPeriod.js +11 -9
  120. package/dist/src/models/RegistrationPeriod.js.map +1 -1
  121. package/dist/src/models/STCredit.js +11 -7
  122. package/dist/src/models/STCredit.js.map +1 -1
  123. package/dist/src/models/STInvoice.js +45 -45
  124. package/dist/src/models/STInvoice.js.map +1 -1
  125. package/dist/src/models/STPackage.d.ts.map +1 -1
  126. package/dist/src/models/STPackage.js +58 -62
  127. package/dist/src/models/STPackage.js.map +1 -1
  128. package/dist/src/models/STPendingInvoice.js +17 -16
  129. package/dist/src/models/STPendingInvoice.js.map +1 -1
  130. package/dist/src/models/StripeAccount.js +15 -14
  131. package/dist/src/models/StripeAccount.js.map +1 -1
  132. package/dist/src/models/StripeCheckoutSession.js +10 -10
  133. package/dist/src/models/StripeCheckoutSession.js.map +1 -1
  134. package/dist/src/models/StripePaymentIntent.js +10 -10
  135. package/dist/src/models/StripePaymentIntent.js.map +1 -1
  136. package/dist/src/models/Ticket.js +46 -32
  137. package/dist/src/models/Ticket.js.map +1 -1
  138. package/dist/src/models/Token.js +12 -5
  139. package/dist/src/models/Token.js.map +1 -1
  140. package/dist/src/models/UsedRegisterCode.js +15 -11
  141. package/dist/src/models/UsedRegisterCode.js.map +1 -1
  142. package/dist/src/models/User.d.ts +2 -1
  143. package/dist/src/models/User.d.ts.map +1 -1
  144. package/dist/src/models/User.js +51 -29
  145. package/dist/src/models/User.js.map +1 -1
  146. package/dist/src/models/UserPermissions.js +11 -8
  147. package/dist/src/models/UserPermissions.js.map +1 -1
  148. package/dist/src/models/Webshop.js +41 -37
  149. package/dist/src/models/Webshop.js.map +1 -1
  150. package/dist/src/models/WebshopDiscountCode.js +13 -9
  151. package/dist/src/models/WebshopDiscountCode.js.map +1 -1
  152. package/dist/src/models/addresses/City.js +9 -8
  153. package/dist/src/models/addresses/City.js.map +1 -1
  154. package/dist/src/models/addresses/PostalCode.js +7 -3
  155. package/dist/src/models/addresses/PostalCode.js.map +1 -1
  156. package/dist/src/models/addresses/Province.js +5 -2
  157. package/dist/src/models/addresses/Province.js.map +1 -1
  158. package/dist/src/models/addresses/Street.js +6 -3
  159. package/dist/src/models/addresses/Street.js.map +1 -1
  160. package/dist/src/models/index.d.ts +1 -0
  161. package/dist/src/models/index.d.ts.map +1 -1
  162. package/dist/src/models/index.js +3 -1
  163. package/dist/src/models/index.js.map +1 -1
  164. package/dist/src/structures/OrganizationServerMetaData.js +30 -27
  165. package/dist/src/structures/OrganizationServerMetaData.js.map +1 -1
  166. package/package.json +3 -3
  167. package/src/helpers/EmailBuilder.ts +95 -17
  168. package/src/helpers/MemberMerger.test.ts +719 -0
  169. package/src/helpers/MemberMerger.ts +497 -0
  170. package/src/helpers/RateLimiter.ts +1 -0
  171. package/src/index.ts +2 -1
  172. package/src/migrations/1723736282-merged-members.sql +19 -0
  173. package/src/models/Email.ts +9 -11
  174. package/src/models/EmailTemplate.ts +20 -1
  175. package/src/models/Member.ts +7 -8
  176. package/src/models/MergedMember.ts +112 -0
  177. package/src/models/Order.ts +11 -21
  178. package/src/models/Organization.ts +17 -26
  179. package/src/models/Payment.ts +1 -0
  180. package/src/models/Registration.ts +17 -45
  181. package/src/models/STPackage.ts +8 -16
  182. package/src/models/User.ts +24 -1
  183. package/src/models/index.ts +1 -0
@@ -0,0 +1,592 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const structures_1 = require("@stamhoofd/structures");
4
+ const uuid_1 = require("uuid");
5
+ const models_1 = require("../models");
6
+ const MemberMerger_1 = require("./MemberMerger");
7
+ describe("member merge", () => {
8
+ describe("mergeMemberDetails", () => {
9
+ describe("empty base details", () => {
10
+ //#region arrange
11
+ const m1 = new models_1.Member();
12
+ const m2 = new models_1.Member();
13
+ const d1Old = structures_1.MemberDetails.create({
14
+ firstName: " ",
15
+ lastName: "",
16
+ birthDay: undefined,
17
+ memberNumber: undefined,
18
+ uitpasNumber: undefined,
19
+ email: " ",
20
+ phone: undefined,
21
+ gender: structures_1.Gender.Other,
22
+ requiresFinancialSupport: undefined,
23
+ dataPermissions: undefined,
24
+ address: undefined,
25
+ parents: [],
26
+ emergencyContacts: [],
27
+ reviewTimes: undefined,
28
+ recordAnswers: undefined,
29
+ unverifiedEmails: [],
30
+ unverifiedPhones: [],
31
+ unverifiedAddresses: [],
32
+ notes: undefined,
33
+ });
34
+ const recordAnswer = structures_1.RecordAnswer.create({
35
+ settings: structures_1.RecordSettings.create({
36
+ name: "answer1",
37
+ required: true,
38
+ choices: [],
39
+ }),
40
+ });
41
+ const d2Old = structures_1.MemberDetails.create({
42
+ firstName: "John",
43
+ lastName: "Doe",
44
+ birthDay: new Date(1990, 1, 1),
45
+ memberNumber: "123",
46
+ uitpasNumber: "56",
47
+ email: "b7v2X@example.com",
48
+ phone: "04863544",
49
+ gender: structures_1.Gender.Male,
50
+ requiresFinancialSupport: structures_1.BooleanStatus.create({ value: true }),
51
+ dataPermissions: structures_1.BooleanStatus.create({ value: true }),
52
+ address: structures_1.Address.create({
53
+ city: "Amsterdam",
54
+ street: "Mozartstraat",
55
+ number: "1",
56
+ postalCode: "1011AB",
57
+ country: structures_1.Country.Netherlands,
58
+ }),
59
+ parents: [structures_1.Parent.create({ firstName: "John", lastName: "Doe" })],
60
+ emergencyContacts: [
61
+ structures_1.EmergencyContact.create({
62
+ name: "blabla",
63
+ title: "title",
64
+ phone: "04863544654",
65
+ }),
66
+ ],
67
+ reviewTimes: structures_1.ReviewTimes.create({
68
+ times: [
69
+ structures_1.ReviewTime.create({
70
+ name: "parents",
71
+ reviewedAt: new Date(2020, 1, 1),
72
+ }),
73
+ structures_1.ReviewTime.create({
74
+ name: "details",
75
+ reviewedAt: new Date(2021, 1, 1),
76
+ }),
77
+ ],
78
+ }),
79
+ recordAnswers: new Map([[recordAnswer.id, recordAnswer]]),
80
+ unverifiedEmails: ["email1@test.be", "email2@test.be"],
81
+ unverifiedPhones: ["04863545", "04863546"],
82
+ unverifiedAddresses: [
83
+ structures_1.Address.create({
84
+ city: "Amsterdam",
85
+ street: "Mozartstraat",
86
+ number: "2",
87
+ postalCode: "1011AB",
88
+ country: structures_1.Country.Netherlands,
89
+ }),
90
+ ],
91
+ notes: "note1",
92
+ });
93
+ m1.details = d1Old.clone();
94
+ m2.details = d2Old.clone();
95
+ //#endregion
96
+ // act
97
+ let d1;
98
+ beforeAll(() => {
99
+ (0, MemberMerger_1.mergeMemberDetails)(m1, m2);
100
+ d1 = m1.details;
101
+ });
102
+ // assert
103
+ test("firstName", () => {
104
+ expect(d1.firstName).toBe(d2Old.firstName);
105
+ });
106
+ test("lastName", () => {
107
+ expect(d1.lastName).toBe(d2Old.lastName);
108
+ });
109
+ test("memberNumber", () => {
110
+ expect(d1.memberNumber).toBe(d2Old.memberNumber);
111
+ });
112
+ test("uitpasNumber", () => {
113
+ expect(d1.uitpasNumber).toBe(d2Old.uitpasNumber);
114
+ });
115
+ test("email", () => {
116
+ expect(d1.email).toBe(d2Old.email);
117
+ expect(d1.unverifiedEmails).not.toContain(d2Old.email);
118
+ });
119
+ test("phone", () => {
120
+ expect(d1.phone).toBe(d2Old.phone);
121
+ expect(d1.unverifiedPhones).not.toContain(d2Old.phone);
122
+ });
123
+ test("gender", () => {
124
+ expect(d1.gender).toBe(d2Old.gender);
125
+ });
126
+ test("birthDay", () => {
127
+ expect(d1.birthDay?.getTime() ?? -1).toBe(d2Old.birthDay?.getTime() ?? -1);
128
+ });
129
+ test("requires financial support", () => {
130
+ expect(d1.requiresFinancialSupport?.date.getTime() ?? -1).toBe(d2Old.requiresFinancialSupport?.date.getTime() ?? -1);
131
+ });
132
+ test("data permissions", () => {
133
+ expect(d1.dataPermissions?.date.getTime() ?? -1).toBe(d2Old.dataPermissions?.date.getTime() ?? -1);
134
+ });
135
+ test("address", () => {
136
+ expect(d1.address?.id).toBe(d2Old.address?.id);
137
+ });
138
+ test("parents", () => {
139
+ expect(d1.parents.length).toBe(d2Old.parents.length);
140
+ });
141
+ test("emergency contacts", () => {
142
+ expect(d1.emergencyContacts.length).toBe(d2Old.emergencyContacts.length);
143
+ });
144
+ test("review times", () => {
145
+ expect(d1.reviewTimes.times.length).toBe(d2Old.reviewTimes.times.length);
146
+ });
147
+ test("answers", () => {
148
+ expect(d1.recordAnswers.size).toBe(d2Old.recordAnswers.size);
149
+ });
150
+ test("unverifiedEmails", () => {
151
+ expect(d1.unverifiedEmails.length).toBe(d2Old.unverifiedEmails.length);
152
+ });
153
+ test("unverifiedPhones", () => {
154
+ expect(d1.unverifiedPhones.length).toBe(d2Old.unverifiedPhones.length);
155
+ });
156
+ test("unverifiedAddresses", () => {
157
+ expect(d1.unverifiedAddresses.length).toBe(d2Old.unverifiedAddresses.length);
158
+ });
159
+ test("notes", () => {
160
+ expect(d1.notes).toEqual("note1");
161
+ });
162
+ });
163
+ describe("empty other details", () => {
164
+ //#region arrange
165
+ const m1 = new models_1.Member();
166
+ const m2 = new models_1.Member();
167
+ const recordAnswer = structures_1.RecordAnswer.create({
168
+ settings: structures_1.RecordSettings.create({
169
+ name: "answer1",
170
+ required: true,
171
+ choices: [],
172
+ }),
173
+ });
174
+ const d1Old = structures_1.MemberDetails.create({
175
+ firstName: "John",
176
+ lastName: "Doe",
177
+ birthDay: new Date(1990, 1, 1),
178
+ memberNumber: "123",
179
+ uitpasNumber: "56",
180
+ email: "b7v2X@example.com",
181
+ phone: "04863544",
182
+ gender: structures_1.Gender.Male,
183
+ requiresFinancialSupport: structures_1.BooleanStatus.create({ value: true }),
184
+ dataPermissions: structures_1.BooleanStatus.create({ value: true }),
185
+ address: structures_1.Address.create({
186
+ city: "Amsterdam",
187
+ street: "Mozartstraat",
188
+ number: "1",
189
+ postalCode: "1011AB",
190
+ country: structures_1.Country.Netherlands,
191
+ }),
192
+ parents: [structures_1.Parent.create({ firstName: "John", lastName: "Doe" })],
193
+ emergencyContacts: [
194
+ structures_1.EmergencyContact.create({
195
+ name: "blabla",
196
+ title: "title",
197
+ phone: "04863544654",
198
+ }),
199
+ ],
200
+ reviewTimes: structures_1.ReviewTimes.create({
201
+ times: [
202
+ structures_1.ReviewTime.create({
203
+ name: "parents",
204
+ reviewedAt: new Date(2020, 1, 1),
205
+ }),
206
+ structures_1.ReviewTime.create({
207
+ name: "details",
208
+ reviewedAt: new Date(2021, 1, 1),
209
+ }),
210
+ ],
211
+ }),
212
+ recordAnswers: new Map([[recordAnswer.id, recordAnswer]]),
213
+ unverifiedEmails: ["email1@test.be", "email2@test.be"],
214
+ unverifiedPhones: ["04863545", "04863546"],
215
+ unverifiedAddresses: [
216
+ structures_1.Address.create({
217
+ city: "Amsterdam",
218
+ street: "Mozartstraat",
219
+ number: "2",
220
+ postalCode: "1011AB",
221
+ country: structures_1.Country.Netherlands,
222
+ }),
223
+ ],
224
+ notes: "note1",
225
+ });
226
+ const d2Old = structures_1.MemberDetails.create({
227
+ firstName: " ",
228
+ lastName: "",
229
+ birthDay: undefined,
230
+ memberNumber: undefined,
231
+ uitpasNumber: undefined,
232
+ email: " ",
233
+ phone: undefined,
234
+ gender: structures_1.Gender.Other,
235
+ requiresFinancialSupport: undefined,
236
+ dataPermissions: undefined,
237
+ address: undefined,
238
+ parents: [],
239
+ emergencyContacts: [],
240
+ reviewTimes: undefined,
241
+ recordAnswers: undefined,
242
+ unverifiedEmails: [],
243
+ unverifiedPhones: [],
244
+ unverifiedAddresses: [],
245
+ notes: undefined,
246
+ });
247
+ m1.details = d1Old.clone();
248
+ m2.details = d2Old.clone();
249
+ //#endregion
250
+ // act
251
+ let d1;
252
+ beforeAll(() => {
253
+ (0, MemberMerger_1.mergeMemberDetails)(m1, m2);
254
+ d1 = m1.details;
255
+ });
256
+ // assert
257
+ test("firstName", () => {
258
+ expect(d1.firstName).toBe(d1Old.firstName);
259
+ });
260
+ test("lastName", () => {
261
+ expect(d1.lastName).toBe(d1Old.lastName);
262
+ });
263
+ test("memberNumber", () => {
264
+ expect(d1.memberNumber).toBe(d1Old.memberNumber);
265
+ });
266
+ test("uitpasNumber", () => {
267
+ expect(d1.uitpasNumber).toBe(d1Old.uitpasNumber);
268
+ });
269
+ test("email", () => {
270
+ expect(d1.email).toBe(d1Old.email);
271
+ expect(d1.unverifiedEmails).not.toContain(d2Old.email);
272
+ });
273
+ test("phone", () => {
274
+ expect(d1.phone).toBe(d1Old.phone);
275
+ expect(d1.unverifiedPhones).not.toContain(d2Old.phone);
276
+ });
277
+ test("gender", () => {
278
+ expect(d1.gender).toBe(d1Old.gender);
279
+ });
280
+ test("birthDay", () => {
281
+ expect(d1.birthDay?.getTime() ?? -1).toBe(d1Old.birthDay?.getTime() ?? -1);
282
+ });
283
+ test("requires financial support", () => {
284
+ expect(d1.requiresFinancialSupport?.date.getTime() ?? -1).toBe(d1Old.requiresFinancialSupport?.date.getTime() ?? -1);
285
+ });
286
+ test("data permissions", () => {
287
+ expect(d1.dataPermissions?.date.getTime() ?? -1).toBe(d1Old.dataPermissions?.date.getTime() ?? -1);
288
+ });
289
+ test("address", () => {
290
+ expect(d1.address?.id).toBe(d1Old.address?.id);
291
+ });
292
+ test("parents", () => {
293
+ expect(d1.parents.length).toBe(d1Old.parents.length);
294
+ });
295
+ test("emergency contacts", () => {
296
+ expect(d1.emergencyContacts.length).toBe(d1Old.emergencyContacts.length);
297
+ });
298
+ test("review times", () => {
299
+ expect(d1.reviewTimes.times.length).toBe(d1Old.reviewTimes.times.length);
300
+ });
301
+ test("answers", () => {
302
+ expect(d1.recordAnswers.size).toBe(d1Old.recordAnswers.size);
303
+ });
304
+ test("unverifiedEmails", () => {
305
+ expect(d1.unverifiedEmails.length).toBe(d1Old.unverifiedEmails.length);
306
+ });
307
+ test("unverifiedPhones", () => {
308
+ expect(d1.unverifiedPhones.length).toBe(d1Old.unverifiedPhones.length);
309
+ });
310
+ test("unverifiedAddresses", () => {
311
+ expect(d1.unverifiedAddresses.length).toBe(d1Old.unverifiedAddresses.length);
312
+ });
313
+ test("notes", () => {
314
+ expect(d1.notes).toEqual("note1");
315
+ });
316
+ });
317
+ describe("complete base and other details", () => {
318
+ //#region arrange
319
+ const m1 = new models_1.Member();
320
+ const m2 = new models_1.Member();
321
+ const recordAnswer1 = structures_1.RecordAnswer.create({
322
+ settings: structures_1.RecordSettings.create({
323
+ name: "answer1",
324
+ required: true,
325
+ choices: [],
326
+ }),
327
+ });
328
+ const recordAnswer1b = recordAnswer1.clone();
329
+ recordAnswer1b.date = new Date(1990, 1, 1);
330
+ const recordAnswer2 = structures_1.RecordAnswer.create({
331
+ settings: structures_1.RecordSettings.create({
332
+ name: "answer2",
333
+ required: true,
334
+ choices: [],
335
+ }),
336
+ });
337
+ // will not changed because cloned
338
+ const oldParent1 = structures_1.Parent.create({
339
+ firstName: "John",
340
+ lastName: "Doe",
341
+ email: "john@test.be",
342
+ phone: "04111111",
343
+ });
344
+ const parent1Alt = structures_1.Parent.create({
345
+ firstName: "John",
346
+ lastName: "Doe",
347
+ email: "oldJohn@test.be",
348
+ phone: "0499999",
349
+ address: structures_1.Address.create({
350
+ street: "john street",
351
+ number: "5",
352
+ city: "Amsterdam",
353
+ postalCode: "1011AB",
354
+ country: structures_1.Country.Belgium,
355
+ }),
356
+ });
357
+ const d1Old = structures_1.MemberDetails.create({
358
+ firstName: "John",
359
+ lastName: "Doe",
360
+ birthDay: new Date(1990, 1, 1),
361
+ memberNumber: "123",
362
+ uitpasNumber: "56",
363
+ email: "b7v2X@example.com",
364
+ phone: "04863544",
365
+ gender: structures_1.Gender.Male,
366
+ requiresFinancialSupport: structures_1.BooleanStatus.create({
367
+ value: true,
368
+ date: new Date(2021, 1, 1),
369
+ }),
370
+ dataPermissions: structures_1.BooleanStatus.create({
371
+ value: true,
372
+ date: new Date(2020, 1, 1),
373
+ }),
374
+ address: structures_1.Address.create({
375
+ city: "Amsterdam",
376
+ street: "Mozartstraat",
377
+ number: "1",
378
+ postalCode: "1011AB",
379
+ country: structures_1.Country.Netherlands,
380
+ }),
381
+ parents: [oldParent1],
382
+ emergencyContacts: [
383
+ structures_1.EmergencyContact.create({
384
+ name: "blabla",
385
+ title: "title",
386
+ phone: "04863544654",
387
+ }),
388
+ structures_1.EmergencyContact.create({
389
+ name: "blabla2",
390
+ title: "title2",
391
+ phone: "04863544654",
392
+ }),
393
+ ],
394
+ reviewTimes: structures_1.ReviewTimes.create({
395
+ times: [
396
+ structures_1.ReviewTime.create({
397
+ name: "parents",
398
+ reviewedAt: new Date(2020, 1, 1),
399
+ }),
400
+ structures_1.ReviewTime.create({
401
+ name: "details",
402
+ reviewedAt: new Date(2021, 1, 1),
403
+ }),
404
+ ],
405
+ }),
406
+ recordAnswers: new Map([[recordAnswer1.id, recordAnswer1]]),
407
+ unverifiedEmails: ["email1@test.be", "email2@test.be"],
408
+ unverifiedPhones: ["04863545", "04863546"],
409
+ unverifiedAddresses: [
410
+ structures_1.Address.create({
411
+ city: "Amsterdam",
412
+ street: "Mozartstraat",
413
+ number: "2",
414
+ postalCode: "1011AB",
415
+ country: structures_1.Country.Netherlands,
416
+ }),
417
+ ],
418
+ notes: "note1",
419
+ });
420
+ const d2Old = structures_1.MemberDetails.create({
421
+ firstName: "John",
422
+ lastName: "Doe",
423
+ birthDay: new Date(2000, 1, 1),
424
+ memberNumber: "123456",
425
+ uitpasNumber: "567",
426
+ email: "other@example.com",
427
+ phone: "048635449",
428
+ gender: structures_1.Gender.Female,
429
+ // earlier date
430
+ requiresFinancialSupport: structures_1.BooleanStatus.create({
431
+ value: false,
432
+ date: new Date(2020, 1, 1),
433
+ }),
434
+ // older date
435
+ dataPermissions: structures_1.BooleanStatus.create({
436
+ value: false,
437
+ date: new Date(2021, 1, 1),
438
+ }),
439
+ address: structures_1.Address.create({
440
+ city: "Amsterdam",
441
+ street: "Mozartstraat",
442
+ number: "5",
443
+ postalCode: "1011AB",
444
+ country: structures_1.Country.Netherlands,
445
+ }),
446
+ parents: [
447
+ parent1Alt,
448
+ structures_1.Parent.create({ firstName: "John", lastName: "Other" }),
449
+ ],
450
+ emergencyContacts: [
451
+ structures_1.EmergencyContact.create({
452
+ name: "other emergency contact",
453
+ title: "title",
454
+ phone: "04863544654",
455
+ }),
456
+ structures_1.EmergencyContact.create({
457
+ name: "blabla",
458
+ title: "title",
459
+ phone: "04863544654",
460
+ }),
461
+ ],
462
+ reviewTimes: structures_1.ReviewTimes.create({
463
+ times: [
464
+ structures_1.ReviewTime.create({
465
+ name: "parents",
466
+ reviewedAt: new Date(2019, 1, 1),
467
+ }),
468
+ structures_1.ReviewTime.create({
469
+ name: "details",
470
+ reviewedAt: new Date(2023, 1, 1),
471
+ }),
472
+ ],
473
+ }),
474
+ recordAnswers: new Map([
475
+ [recordAnswer2.id, recordAnswer2],
476
+ [recordAnswer1.id, recordAnswer1],
477
+ [recordAnswer1b.id, recordAnswer1b],
478
+ ]),
479
+ unverifiedEmails: ["otherUnverivied@test.be"],
480
+ unverifiedPhones: ["0486354599", "0486354699"],
481
+ unverifiedAddresses: [
482
+ structures_1.Address.create({
483
+ city: "Amsterdam",
484
+ street: "AndereStraat",
485
+ number: "100",
486
+ postalCode: "1011AB",
487
+ country: structures_1.Country.Netherlands,
488
+ }),
489
+ ],
490
+ notes: "note2",
491
+ });
492
+ m1.details = d1Old.clone();
493
+ m2.details = d2Old.clone();
494
+ //#endregion
495
+ // act
496
+ let d1;
497
+ let parent1;
498
+ beforeAll(() => {
499
+ (0, MemberMerger_1.mergeMemberDetails)(m1, m2);
500
+ d1 = m1.details;
501
+ parent1 = d1.parents.find((p) => p.id === oldParent1.id);
502
+ });
503
+ // assert
504
+ test("firstName", () => {
505
+ expect(d1.firstName).toBe(d1Old.firstName);
506
+ });
507
+ test("lastName", () => {
508
+ expect(d1.lastName).toBe(d1Old.lastName);
509
+ });
510
+ test("memberNumber", () => {
511
+ expect(d1.memberNumber).toBe(d1Old.memberNumber);
512
+ });
513
+ test("uitpasNumber", () => {
514
+ expect(d1.uitpasNumber).toBe(d1Old.uitpasNumber);
515
+ });
516
+ test("email", () => {
517
+ expect(d1.email).toBe(d1Old.email);
518
+ expect(d1.unverifiedEmails).toContain(d2Old.email);
519
+ });
520
+ test("phone", () => {
521
+ expect(d1.phone).toBe(d1Old.phone);
522
+ expect(d1.unverifiedPhones).toContain(d2Old.phone);
523
+ });
524
+ test("gender", () => {
525
+ expect(d1.gender).toBe(d1Old.gender);
526
+ });
527
+ test("birthDay", () => {
528
+ expect(d1.birthDay?.getTime() ?? -1).toBe(d1Old.birthDay?.getTime() ?? -1);
529
+ });
530
+ test("requires financial support", () => {
531
+ expect(d1.requiresFinancialSupport?.date.getTime() ?? -1).toBe(d1Old.requiresFinancialSupport?.date.getTime() ?? -1);
532
+ });
533
+ test("data permissions", () => {
534
+ expect(d1.dataPermissions?.date.getTime() ?? -1).toBe(d2Old.dataPermissions?.date.getTime() ?? -1);
535
+ });
536
+ test("address", () => {
537
+ expect(d1.address?.id).toBe(d1Old.address?.id);
538
+ expect(d1.unverifiedAddresses.map((a) => a.id)).toContain(d2Old.address?.id);
539
+ });
540
+ test("parents", () => {
541
+ expect(d1.parents.length).toBe(2);
542
+ expect(parent1.firstName).toBe(parent1Alt.firstName);
543
+ expect(parent1.lastName).toBe(parent1Alt.lastName);
544
+ expect(parent1.email).toBe(oldParent1.email);
545
+ expect(parent1.phone).toBe(oldParent1.phone);
546
+ expect(parent1.address?.id).toBe(parent1Alt.address?.id);
547
+ expect(d1.unverifiedPhones).toContain(parent1Alt.phone);
548
+ expect(parent1.alternativeEmails).toContain(parent1Alt.email);
549
+ });
550
+ test("emergency contacts", () => {
551
+ expect(d1.emergencyContacts.length).toBe(3);
552
+ });
553
+ test("review times", () => {
554
+ expect(d1.reviewTimes.times.length).toBe(2);
555
+ });
556
+ test("answers", () => {
557
+ expect(d1.recordAnswers.size).toBe(3);
558
+ });
559
+ test("unverifiedEmails", () => {
560
+ expect(d1.unverifiedEmails.length).toBe(4);
561
+ });
562
+ test("unverifiedPhones", () => {
563
+ expect(d1.unverifiedPhones.length).toBe(6);
564
+ });
565
+ test("unverifiedAddresses", () => {
566
+ expect(d1.unverifiedAddresses.length).toBe(3);
567
+ });
568
+ test("notes", () => {
569
+ expect(d1.notes).toEqual("note1\nnote2");
570
+ });
571
+ });
572
+ });
573
+ test("select base member should return last created member", () => {
574
+ const m1 = new models_1.Member();
575
+ m1.createdAt = new Date(2020, 0, 1);
576
+ m1.id = (0, uuid_1.v4)();
577
+ const m2 = new models_1.Member();
578
+ m2.createdAt = new Date(2021, 0, 1);
579
+ m2.id = (0, uuid_1.v4)();
580
+ const m3 = new models_1.Member();
581
+ m3.createdAt = new Date(2022, 0, 1);
582
+ m3.id = (0, uuid_1.v4)();
583
+ const members = [m1, m3, m2];
584
+ const { base, others } = (0, MemberMerger_1.selectBaseMember)(members);
585
+ expect(base.id).toBe(m3.id);
586
+ expect(others).toHaveLength(2);
587
+ const otherIds = others.map((m) => m.id);
588
+ expect(otherIds).toContain(m1.id);
589
+ expect(otherIds).toContain(m2.id);
590
+ });
591
+ });
592
+ //# sourceMappingURL=MemberMerger.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MemberMerger.test.js","sourceRoot":"","sources":["../../../src/helpers/MemberMerger.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"RateLimiter.d.ts","sourceRoot":"","sources":["../../../src/helpers/RateLimiter.ts"],"names":[],"mappings":"AAEA,qBAAa,eAAe;IACxB,KAAK,EAAE,IAAI,CAAa;IACxB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAY;IAExC,KAAK,EAAE,MAAM,CAAA;IAEb;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAA;gBAEJ,OAAO,EAAE;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAA;KACnB;IAKD,SAAS;IAIT,IAAI,GAAG,WAEN;IAED,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,SAAI;CAsBhC;AAGD,qBAAa,WAAW;IACpB,OAAO,EAAE,eAAe,EAAE,CAAK;gBAEnB,OAAO,EAAE;QACjB,MAAM,EAAE;YAAC,QAAQ,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAC,EAAE,CAAA;KAC9C;IAUD,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,SAAI;CAKhC"}
1
+ {"version":3,"file":"RateLimiter.d.ts","sourceRoot":"","sources":["../../../src/helpers/RateLimiter.ts"],"names":[],"mappings":"AAEA,qBAAa,eAAe;IACxB,KAAK,EAAE,IAAI,CAAa;IACxB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAY;IAExC,KAAK,EAAE,MAAM,CAAA;IAEb;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAA;gBAEJ,OAAO,EAAE;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAA;KACnB;IAKD,SAAS;IAIT,IAAI,GAAG,WAEN;IAED,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,SAAI;CAuBhC;AAGD,qBAAa,WAAW;IACpB,OAAO,EAAE,eAAe,EAAE,CAAK;gBAEnB,OAAO,EAAE;QACjB,MAAM,EAAE;YAAC,QAAQ,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAC,EAAE,CAAA;KAC9C;IAUD,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,SAAI;CAKhC"}