@kidemy/lib 0.0.1

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 (38) hide show
  1. package/dist/index.d.ts +6 -0
  2. package/dist/index.js +23 -0
  3. package/dist/index.js.map +1 -0
  4. package/dist/model/assignment.dto.d.ts +116 -0
  5. package/dist/model/assignment.dto.js +107 -0
  6. package/dist/model/assignment.dto.js.map +1 -0
  7. package/dist/model/assignment.model.d.ts +33 -0
  8. package/dist/model/assignment.model.js +30 -0
  9. package/dist/model/assignment.model.js.map +1 -0
  10. package/dist/model/auth.dto.d.ts +52 -0
  11. package/dist/model/auth.dto.js +71 -0
  12. package/dist/model/auth.dto.js.map +1 -0
  13. package/dist/model/model.d.ts +11 -0
  14. package/dist/model/model.js +13 -0
  15. package/dist/model/model.js.map +1 -0
  16. package/dist/model/user.dto.d.ts +43 -0
  17. package/dist/model/user.dto.js +31 -0
  18. package/dist/model/user.dto.js.map +1 -0
  19. package/dist/model/utility.d.ts +4 -0
  20. package/dist/model/utility.js +8 -0
  21. package/dist/model/utility.js.map +1 -0
  22. package/dist/tests/assignment.dto.spec.d.ts +1 -0
  23. package/dist/tests/assignment.dto.spec.js +452 -0
  24. package/dist/tests/assignment.dto.spec.js.map +1 -0
  25. package/dist/tests/auth.dto.spec.d.ts +1 -0
  26. package/dist/tests/auth.dto.spec.js +501 -0
  27. package/dist/tests/auth.dto.spec.js.map +1 -0
  28. package/dist/tests/model.spec.d.ts +1 -0
  29. package/dist/tests/model.spec.js +188 -0
  30. package/dist/tests/model.spec.js.map +1 -0
  31. package/dist/tests/user.dto.spec.d.ts +1 -0
  32. package/dist/tests/user.dto.spec.js +334 -0
  33. package/dist/tests/user.dto.spec.js.map +1 -0
  34. package/dist/tests/utility.spec.d.ts +1 -0
  35. package/dist/tests/utility.spec.js +172 -0
  36. package/dist/tests/utility.spec.js.map +1 -0
  37. package/dist/tsconfig.tsbuildinfo +1 -0
  38. package/package.json +49 -0
@@ -0,0 +1,501 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const auth_dto_1 = require("../model/auth.dto");
4
+ const model_1 = require("../model/model");
5
+ describe('AuthDto Schemas', () => {
6
+ describe('CreateAccountUserDtoSchema', () => {
7
+ const validCreateAccountUserDto = {
8
+ account: {
9
+ name: 'Test Account',
10
+ },
11
+ user: {
12
+ firstName: 'John',
13
+ lastName: 'Doe',
14
+ email: 'john.doe@example.com',
15
+ username: 'johndoe',
16
+ password: 'password123',
17
+ birthdate: '1990-01-01',
18
+ },
19
+ };
20
+ it('should validate a valid create account user DTO', () => {
21
+ const result = auth_dto_1.CreateAccountUserDtoSchema.safeParse(validCreateAccountUserDto);
22
+ expect(result.success).toBe(true);
23
+ if (result.success) {
24
+ expect(result.data).toEqual({
25
+ ...validCreateAccountUserDto,
26
+ user: {
27
+ ...validCreateAccountUserDto.user,
28
+ birthdate: new Date('1990-01-01'),
29
+ },
30
+ });
31
+ }
32
+ });
33
+ it('should validate create account user DTO without birthdate', () => {
34
+ const dtoWithoutBirthdate = {
35
+ account: {
36
+ name: 'Test Account',
37
+ },
38
+ user: {
39
+ firstName: 'John',
40
+ lastName: 'Doe',
41
+ email: 'john.doe@example.com',
42
+ username: 'johndoe',
43
+ password: 'password123',
44
+ },
45
+ };
46
+ const result = auth_dto_1.CreateAccountUserDtoSchema.safeParse(dtoWithoutBirthdate);
47
+ expect(result.success).toBe(true);
48
+ if (result.success) {
49
+ expect(result.data.user.birthdate).toBeUndefined();
50
+ }
51
+ });
52
+ it('should reject empty account name', () => {
53
+ const invalidDto = {
54
+ ...validCreateAccountUserDto,
55
+ account: {
56
+ name: '',
57
+ },
58
+ };
59
+ const result = auth_dto_1.CreateAccountUserDtoSchema.safeParse(invalidDto);
60
+ expect(result.success).toBe(false);
61
+ if (!result.success) {
62
+ expect(result.error.issues[0].path).toEqual(['account', 'name']);
63
+ expect(result.error.issues[0].message).toBe('Account name is required');
64
+ }
65
+ });
66
+ it('should reject account name longer than 255 characters', () => {
67
+ const invalidDto = {
68
+ ...validCreateAccountUserDto,
69
+ account: {
70
+ name: 'A'.repeat(256),
71
+ },
72
+ };
73
+ const result = auth_dto_1.CreateAccountUserDtoSchema.safeParse(invalidDto);
74
+ expect(result.success).toBe(false);
75
+ if (!result.success) {
76
+ expect(result.error.issues[0].path).toEqual(['account', 'name']);
77
+ expect(result.error.issues[0].message).toBe('Account name must be less than 255 characters');
78
+ }
79
+ });
80
+ it('should accept account name with exactly 255 characters', () => {
81
+ const validDto = {
82
+ ...validCreateAccountUserDto,
83
+ account: {
84
+ name: 'A'.repeat(255),
85
+ },
86
+ };
87
+ const result = auth_dto_1.CreateAccountUserDtoSchema.safeParse(validDto);
88
+ expect(result.success).toBe(true);
89
+ if (result.success) {
90
+ expect(result.data.account.name).toBe('A'.repeat(255));
91
+ }
92
+ });
93
+ it('should reject empty firstName', () => {
94
+ const invalidDto = {
95
+ ...validCreateAccountUserDto,
96
+ user: {
97
+ ...validCreateAccountUserDto.user,
98
+ firstName: '',
99
+ },
100
+ };
101
+ const result = auth_dto_1.CreateAccountUserDtoSchema.safeParse(invalidDto);
102
+ expect(result.success).toBe(false);
103
+ if (!result.success) {
104
+ expect(result.error.issues[0].path).toEqual(['user', 'firstName']);
105
+ expect(result.error.issues[0].message).toBe('First name is required');
106
+ }
107
+ });
108
+ it('should reject firstName longer than 255 characters', () => {
109
+ const invalidDto = {
110
+ ...validCreateAccountUserDto,
111
+ user: {
112
+ ...validCreateAccountUserDto.user,
113
+ firstName: 'A'.repeat(256),
114
+ },
115
+ };
116
+ const result = auth_dto_1.CreateAccountUserDtoSchema.safeParse(invalidDto);
117
+ expect(result.success).toBe(false);
118
+ if (!result.success) {
119
+ expect(result.error.issues[0].path).toEqual(['user', 'firstName']);
120
+ expect(result.error.issues[0].message).toBe('First name must be less than 255 characters');
121
+ }
122
+ });
123
+ it('should reject empty lastName', () => {
124
+ const invalidDto = {
125
+ ...validCreateAccountUserDto,
126
+ user: {
127
+ ...validCreateAccountUserDto.user,
128
+ lastName: '',
129
+ },
130
+ };
131
+ const result = auth_dto_1.CreateAccountUserDtoSchema.safeParse(invalidDto);
132
+ expect(result.success).toBe(false);
133
+ if (!result.success) {
134
+ expect(result.error.issues[0].path).toEqual(['user', 'lastName']);
135
+ expect(result.error.issues[0].message).toBe('Last name is required');
136
+ }
137
+ });
138
+ it('should reject lastName longer than 255 characters', () => {
139
+ const invalidDto = {
140
+ ...validCreateAccountUserDto,
141
+ user: {
142
+ ...validCreateAccountUserDto.user,
143
+ lastName: 'A'.repeat(256),
144
+ },
145
+ };
146
+ const result = auth_dto_1.CreateAccountUserDtoSchema.safeParse(invalidDto);
147
+ expect(result.success).toBe(false);
148
+ if (!result.success) {
149
+ expect(result.error.issues[0].path).toEqual(['user', 'lastName']);
150
+ expect(result.error.issues[0].message).toBe('Last name must be less than 255 characters');
151
+ }
152
+ });
153
+ it('should reject invalid email format', () => {
154
+ const invalidDto = {
155
+ ...validCreateAccountUserDto,
156
+ user: {
157
+ ...validCreateAccountUserDto.user,
158
+ email: 'invalid-email',
159
+ },
160
+ };
161
+ const result = auth_dto_1.CreateAccountUserDtoSchema.safeParse(invalidDto);
162
+ expect(result.success).toBe(false);
163
+ if (!result.success) {
164
+ expect(result.error.issues[0].path).toEqual(['user', 'email']);
165
+ expect(result.error.issues[0].message).toBe('Invalid email format');
166
+ }
167
+ });
168
+ it('should reject email longer than 255 characters', () => {
169
+ const invalidDto = {
170
+ ...validCreateAccountUserDto,
171
+ user: {
172
+ ...validCreateAccountUserDto.user,
173
+ email: 'a'.repeat(250) + '@example.com',
174
+ },
175
+ };
176
+ const result = auth_dto_1.CreateAccountUserDtoSchema.safeParse(invalidDto);
177
+ expect(result.success).toBe(false);
178
+ if (!result.success) {
179
+ expect(result.error.issues[0].path).toEqual(['user', 'email']);
180
+ expect(result.error.issues[0].message).toBe('Email must be less than 255 characters');
181
+ }
182
+ });
183
+ it('should reject password shorter than 6 characters', () => {
184
+ const invalidDto = {
185
+ ...validCreateAccountUserDto,
186
+ user: {
187
+ ...validCreateAccountUserDto.user,
188
+ password: '12345',
189
+ },
190
+ };
191
+ const result = auth_dto_1.CreateAccountUserDtoSchema.safeParse(invalidDto);
192
+ expect(result.success).toBe(false);
193
+ if (!result.success) {
194
+ expect(result.error.issues[0].path).toEqual(['user', 'password']);
195
+ expect(result.error.issues[0].message).toBe('Password must be at least 6 characters');
196
+ }
197
+ });
198
+ it('should reject password longer than 255 characters', () => {
199
+ const invalidDto = {
200
+ ...validCreateAccountUserDto,
201
+ user: {
202
+ ...validCreateAccountUserDto.user,
203
+ password: 'A'.repeat(256),
204
+ },
205
+ };
206
+ const result = auth_dto_1.CreateAccountUserDtoSchema.safeParse(invalidDto);
207
+ expect(result.success).toBe(false);
208
+ if (!result.success) {
209
+ expect(result.error.issues[0].path).toEqual(['user', 'password']);
210
+ expect(result.error.issues[0].message).toBe('Password must be less than 255 characters');
211
+ }
212
+ });
213
+ it('should accept password with exactly 8 characters', () => {
214
+ const validDto = {
215
+ ...validCreateAccountUserDto,
216
+ user: {
217
+ ...validCreateAccountUserDto.user,
218
+ password: '12345678',
219
+ },
220
+ };
221
+ const result = auth_dto_1.CreateAccountUserDtoSchema.safeParse(validDto);
222
+ expect(result.success).toBe(true);
223
+ if (result.success) {
224
+ expect(result.data.user.password).toBe('12345678');
225
+ }
226
+ });
227
+ it('should accept password with exactly 255 characters', () => {
228
+ const validDto = {
229
+ ...validCreateAccountUserDto,
230
+ user: {
231
+ ...validCreateAccountUserDto.user,
232
+ password: 'A'.repeat(255),
233
+ },
234
+ };
235
+ const result = auth_dto_1.CreateAccountUserDtoSchema.safeParse(validDto);
236
+ expect(result.success).toBe(true);
237
+ if (result.success) {
238
+ expect(result.data.user.password).toBe('A'.repeat(255));
239
+ }
240
+ });
241
+ it('should transform birthdate string to Date', () => {
242
+ var _a, _b, _c;
243
+ const dtoWithBirthdate = {
244
+ ...validCreateAccountUserDto,
245
+ user: {
246
+ ...validCreateAccountUserDto.user,
247
+ birthdate: '2020-12-25',
248
+ },
249
+ };
250
+ const result = auth_dto_1.CreateAccountUserDtoSchema.safeParse(dtoWithBirthdate);
251
+ expect(result.success).toBe(true);
252
+ if (result.success) {
253
+ expect(result.data.user.birthdate).toBeInstanceOf(Date);
254
+ expect((_a = result.data.user.birthdate) === null || _a === void 0 ? void 0 : _a.getFullYear()).toBe(2020);
255
+ expect((_b = result.data.user.birthdate) === null || _b === void 0 ? void 0 : _b.getMonth()).toBe(11);
256
+ expect((_c = result.data.user.birthdate) === null || _c === void 0 ? void 0 : _c.getDate()).toBe(25);
257
+ }
258
+ });
259
+ it('should handle special characters in names', () => {
260
+ const specialCharDto = {
261
+ account: {
262
+ name: 'José Account',
263
+ },
264
+ user: {
265
+ firstName: 'José',
266
+ lastName: "O'Connor-Smith",
267
+ email: 'jose@example.com',
268
+ username: 'jose',
269
+ password: 'password123',
270
+ birthdate: '1990-01-01',
271
+ },
272
+ };
273
+ const result = auth_dto_1.CreateAccountUserDtoSchema.safeParse(specialCharDto);
274
+ expect(result.success).toBe(true);
275
+ if (result.success) {
276
+ expect(result.data.account.name).toBe('José Account');
277
+ expect(result.data.user.firstName).toBe('José');
278
+ expect(result.data.user.lastName).toBe("O'Connor-Smith");
279
+ }
280
+ });
281
+ });
282
+ describe('CreateAccountUserResponseSchema', () => {
283
+ const validResponse = {
284
+ account: {
285
+ id: '123e4567-e89b-12d3-a456-426614174000',
286
+ name: 'Test Account',
287
+ status: model_1.ActivationStatus.ACTIVE,
288
+ createdAt: new Date('2024-01-01T00:00:00Z'),
289
+ updatedAt: new Date('2024-01-01T00:00:00Z'),
290
+ },
291
+ user: {
292
+ id: '123e4567-e89b-12d3-a456-426614174001',
293
+ accountId: '123e4567-e89b-12d3-a456-426614174000',
294
+ firstName: 'John',
295
+ lastName: 'Doe',
296
+ email: 'john.doe@example.com',
297
+ username: 'johndoe',
298
+ role: model_1.UserRole.OWNER,
299
+ status: model_1.ActivationStatus.ACTIVE,
300
+ createdAt: new Date('2024-01-01T00:00:00Z'),
301
+ updatedAt: new Date('2024-01-01T00:00:00Z'),
302
+ },
303
+ };
304
+ it('should validate a valid create account user response', () => {
305
+ const result = auth_dto_1.CreateAccountUserResponseSchema.safeParse(validResponse);
306
+ expect(result.success).toBe(true);
307
+ if (result.success) {
308
+ expect(result.data).toEqual(validResponse);
309
+ }
310
+ });
311
+ it('should reject invalid UUID for account id', () => {
312
+ const invalidResponse = {
313
+ ...validResponse,
314
+ account: {
315
+ ...validResponse.account,
316
+ id: 'invalid-uuid',
317
+ },
318
+ };
319
+ const result = auth_dto_1.CreateAccountUserResponseSchema.safeParse(invalidResponse);
320
+ expect(result.success).toBe(false);
321
+ if (!result.success) {
322
+ expect(result.error.issues[0].path).toEqual(['account', 'id']);
323
+ expect(result.error.issues[0].code).toBe('invalid_format');
324
+ }
325
+ });
326
+ it('should reject invalid UUID for user id', () => {
327
+ const invalidResponse = {
328
+ ...validResponse,
329
+ user: {
330
+ ...validResponse.user,
331
+ id: 'invalid-uuid',
332
+ },
333
+ };
334
+ const result = auth_dto_1.CreateAccountUserResponseSchema.safeParse(invalidResponse);
335
+ expect(result.success).toBe(false);
336
+ if (!result.success) {
337
+ expect(result.error.issues[0].path).toEqual(['user', 'id']);
338
+ expect(result.error.issues[0].code).toBe('invalid_format');
339
+ }
340
+ });
341
+ it('should reject invalid UUID for accountId', () => {
342
+ const invalidResponse = {
343
+ ...validResponse,
344
+ user: {
345
+ ...validResponse.user,
346
+ accountId: 'invalid-uuid',
347
+ },
348
+ };
349
+ const result = auth_dto_1.CreateAccountUserResponseSchema.safeParse(invalidResponse);
350
+ expect(result.success).toBe(false);
351
+ if (!result.success) {
352
+ expect(result.error.issues[0].path).toEqual(['user', 'accountId']);
353
+ expect(result.error.issues[0].code).toBe('invalid_format');
354
+ }
355
+ });
356
+ it('should validate all valid account statuses', () => {
357
+ const statuses = [model_1.ActivationStatus.ACTIVE, model_1.ActivationStatus.DISABLED];
358
+ statuses.forEach((status) => {
359
+ const responseWithStatus = {
360
+ ...validResponse,
361
+ account: {
362
+ ...validResponse.account,
363
+ status,
364
+ },
365
+ };
366
+ const result = auth_dto_1.CreateAccountUserResponseSchema.safeParse(responseWithStatus);
367
+ expect(result.success).toBe(true);
368
+ if (result.success) {
369
+ expect(result.data.account.status).toBe(status);
370
+ }
371
+ });
372
+ });
373
+ it('should validate all valid user roles', () => {
374
+ const roles = [model_1.UserRole.OWNER, model_1.UserRole.PARENT, model_1.UserRole.CHILD];
375
+ roles.forEach((role) => {
376
+ const responseWithRole = {
377
+ ...validResponse,
378
+ user: {
379
+ ...validResponse.user,
380
+ role,
381
+ },
382
+ };
383
+ const result = auth_dto_1.CreateAccountUserResponseSchema.safeParse(responseWithRole);
384
+ expect(result.success).toBe(true);
385
+ if (result.success) {
386
+ expect(result.data.user.role).toBe(role);
387
+ }
388
+ });
389
+ });
390
+ });
391
+ describe('LoginDtoSchema', () => {
392
+ const validLoginDto = {
393
+ emailOrUsername: 'john.doe@example.com',
394
+ password: 'password123',
395
+ };
396
+ it('should validate a valid login DTO', () => {
397
+ const result = auth_dto_1.LoginDtoSchema.safeParse(validLoginDto);
398
+ expect(result.success).toBe(true);
399
+ if (result.success) {
400
+ expect(result.data).toEqual(validLoginDto);
401
+ }
402
+ });
403
+ it('should accept any string as emailOrUsername', () => {
404
+ const dtoWithUsername = {
405
+ ...validLoginDto,
406
+ emailOrUsername: 'invalid-email',
407
+ };
408
+ const result = auth_dto_1.LoginDtoSchema.safeParse(dtoWithUsername);
409
+ expect(result.success).toBe(true);
410
+ if (result.success) {
411
+ expect(result.data.emailOrUsername).toBe('invalid-email');
412
+ }
413
+ });
414
+ it('should reject missing emailOrUsername', () => {
415
+ const invalidDto = {
416
+ password: 'password123',
417
+ };
418
+ const result = auth_dto_1.LoginDtoSchema.safeParse(invalidDto);
419
+ expect(result.success).toBe(false);
420
+ if (!result.success) {
421
+ expect(result.error.issues[0].path).toEqual(['emailOrUsername']);
422
+ expect(result.error.issues[0].code).toBe('invalid_type');
423
+ }
424
+ });
425
+ it('should reject missing password', () => {
426
+ const invalidDto = {
427
+ emailOrUsername: 'john.doe@example.com',
428
+ };
429
+ const result = auth_dto_1.LoginDtoSchema.safeParse(invalidDto);
430
+ expect(result.success).toBe(false);
431
+ if (!result.success) {
432
+ expect(result.error.issues[0].path).toEqual(['password']);
433
+ expect(result.error.issues[0].message).toBe('Password must be provided');
434
+ }
435
+ });
436
+ it('should accept empty password string', () => {
437
+ const dtoWithEmptyPassword = {
438
+ emailOrUsername: 'john.doe@example.com',
439
+ password: '',
440
+ };
441
+ const result = auth_dto_1.LoginDtoSchema.safeParse(dtoWithEmptyPassword);
442
+ expect(result.success).toBe(true);
443
+ if (result.success) {
444
+ expect(result.data.password).toBe('');
445
+ }
446
+ });
447
+ it('should accept emailOrUsername with special characters', () => {
448
+ const specialEmailDto = {
449
+ emailOrUsername: 'josé.óconnor+test@example.com',
450
+ password: 'password123',
451
+ };
452
+ const result = auth_dto_1.LoginDtoSchema.safeParse(specialEmailDto);
453
+ expect(result.success).toBe(true);
454
+ if (result.success) {
455
+ expect(result.data.emailOrUsername).toBe('josé.óconnor+test@example.com');
456
+ }
457
+ });
458
+ });
459
+ describe('LoginResponseSchema', () => {
460
+ const validLoginResponse = {
461
+ token: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiIxMjMiLCJpYXQiOjE2MzQ1Njc4OTB9.example',
462
+ };
463
+ it('should validate a valid login response', () => {
464
+ const result = auth_dto_1.LoginResponseSchema.safeParse(validLoginResponse);
465
+ expect(result.success).toBe(true);
466
+ if (result.success) {
467
+ expect(result.data).toEqual(validLoginResponse);
468
+ }
469
+ });
470
+ it('should reject missing token', () => {
471
+ const invalidResponse = {};
472
+ const result = auth_dto_1.LoginResponseSchema.safeParse(invalidResponse);
473
+ expect(result.success).toBe(false);
474
+ if (!result.success) {
475
+ expect(result.error.issues[0].path).toEqual(['token']);
476
+ expect(result.error.issues[0].code).toBe('invalid_type');
477
+ }
478
+ });
479
+ it('should accept empty token string', () => {
480
+ const responseWithEmptyToken = {
481
+ token: '',
482
+ };
483
+ const result = auth_dto_1.LoginResponseSchema.safeParse(responseWithEmptyToken);
484
+ expect(result.success).toBe(true);
485
+ if (result.success) {
486
+ expect(result.data.token).toBe('');
487
+ }
488
+ });
489
+ it('should accept very long token', () => {
490
+ const responseWithLongToken = {
491
+ token: 'A'.repeat(10000),
492
+ };
493
+ const result = auth_dto_1.LoginResponseSchema.safeParse(responseWithLongToken);
494
+ expect(result.success).toBe(true);
495
+ if (result.success) {
496
+ expect(result.data.token).toBe('A'.repeat(10000));
497
+ }
498
+ });
499
+ });
500
+ });
501
+ //# sourceMappingURL=auth.dto.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.dto.spec.js","sourceRoot":"","sources":["../../src/tests/auth.dto.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};