@kidemy/lib 1.0.6 → 1.0.7

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.
@@ -1,186 +0,0 @@
1
- import { z } from 'zod';
2
- import { ActivationStatus, UserRole } from '../model/model';
3
- import { createZodEnum } from '../model/utility';
4
- describe('Model Constants and Utility Functions', () => {
5
- describe('UserRole', () => {
6
- it('should have correct role values', () => {
7
- expect(UserRole.OWNER).toBe('owner');
8
- expect(UserRole.PARENT).toBe('parent');
9
- expect(UserRole.CHILD).toBe('child');
10
- });
11
- it('should have all expected roles', () => {
12
- const expectedRoles = ['owner', 'parent', 'child'];
13
- const actualRoles = Object.values(UserRole);
14
- expect(actualRoles).toEqual(expectedRoles);
15
- expect(actualRoles).toHaveLength(3);
16
- });
17
- it('should have readonly properties (TypeScript compile-time check)', () => {
18
- expect(UserRole.OWNER).toBe('owner');
19
- expect(UserRole.PARENT).toBe('parent');
20
- expect(UserRole.CHILD).toBe('child');
21
- });
22
- });
23
- describe('ActivationStatus', () => {
24
- it('should have correct status values', () => {
25
- expect(ActivationStatus.ACTIVE).toBe('active');
26
- expect(ActivationStatus.DISABLED).toBe('disabled');
27
- });
28
- it('should have all expected statuses', () => {
29
- const expectedStatuses = ['active', 'disabled'];
30
- const actualStatuses = Object.values(ActivationStatus);
31
- expect(actualStatuses).toEqual(expectedStatuses);
32
- expect(actualStatuses).toHaveLength(2);
33
- });
34
- it('should have readonly properties (TypeScript compile-time check)', () => {
35
- expect(ActivationStatus.ACTIVE).toBe('active');
36
- expect(ActivationStatus.DISABLED).toBe('disabled');
37
- });
38
- });
39
- describe('createZodEnum', () => {
40
- it('should create a valid Zod enum from UserRole', () => {
41
- const userRoleEnum = createZodEnum(UserRole);
42
- expect(userRoleEnum.parse(UserRole.OWNER)).toBe(UserRole.OWNER);
43
- expect(userRoleEnum.parse(UserRole.PARENT)).toBe(UserRole.PARENT);
44
- expect(userRoleEnum.parse(UserRole.CHILD)).toBe(UserRole.CHILD);
45
- });
46
- it('should create a valid Zod enum from ActivationStatus', () => {
47
- const activationStatusEnum = createZodEnum(ActivationStatus);
48
- expect(activationStatusEnum.parse(ActivationStatus.ACTIVE)).toBe(ActivationStatus.ACTIVE);
49
- expect(activationStatusEnum.parse(ActivationStatus.DISABLED)).toBe(ActivationStatus.DISABLED);
50
- });
51
- it('should reject invalid values for UserRole enum', () => {
52
- const userRoleEnum = createZodEnum(UserRole);
53
- expect(() => userRoleEnum.parse('invalid-role')).toThrow();
54
- expect(() => userRoleEnum.parse('')).toThrow();
55
- expect(() => userRoleEnum.parse(null)).toThrow();
56
- expect(() => userRoleEnum.parse(undefined)).toThrow();
57
- });
58
- it('should reject invalid values for ActivationStatus enum', () => {
59
- const activationStatusEnum = createZodEnum(ActivationStatus);
60
- expect(() => activationStatusEnum.parse('invalid-status')).toThrow();
61
- expect(() => activationStatusEnum.parse('')).toThrow();
62
- expect(() => activationStatusEnum.parse(null)).toThrow();
63
- expect(() => activationStatusEnum.parse(undefined)).toThrow();
64
- });
65
- it('should work with custom enum objects', () => {
66
- const customEnum = {
67
- FIRST: 'first',
68
- SECOND: 'second',
69
- THIRD: 'third',
70
- };
71
- const customZodEnum = createZodEnum(customEnum);
72
- expect(customZodEnum.parse('first')).toBe('first');
73
- expect(customZodEnum.parse('second')).toBe('second');
74
- expect(customZodEnum.parse('third')).toBe('third');
75
- expect(() => customZodEnum.parse('fourth')).toThrow();
76
- });
77
- it('should handle single value enum', () => {
78
- const singleEnum = {
79
- ONLY: 'only',
80
- };
81
- const singleZodEnum = createZodEnum(singleEnum);
82
- expect(singleZodEnum.parse('only')).toBe('only');
83
- expect(() => singleZodEnum.parse('other')).toThrow();
84
- });
85
- it('should handle empty enum object gracefully', () => {
86
- const emptyEnum = {};
87
- expect(() => createZodEnum(emptyEnum)).not.toThrow();
88
- });
89
- it('should preserve type safety', () => {
90
- const userRoleEnum = createZodEnum(UserRole);
91
- const result = userRoleEnum.safeParse(UserRole.OWNER);
92
- expect(result.success).toBe(true);
93
- if (result.success) {
94
- const role = result.data;
95
- expect(role).toBe(UserRole.OWNER);
96
- }
97
- });
98
- it('should work with Zod schema composition', () => {
99
- const userRoleEnum = createZodEnum(UserRole);
100
- const schema = z.object({
101
- role: userRoleEnum,
102
- name: z.string(),
103
- });
104
- const validData = {
105
- role: UserRole.PARENT,
106
- name: 'John Doe',
107
- };
108
- const result = schema.safeParse(validData);
109
- expect(result.success).toBe(true);
110
- if (result.success) {
111
- expect(result.data.role).toBe(UserRole.PARENT);
112
- expect(result.data.name).toBe('John Doe');
113
- }
114
- });
115
- it('should provide meaningful error messages', () => {
116
- const userRoleEnum = createZodEnum(UserRole);
117
- const result = userRoleEnum.safeParse('invalid-role');
118
- expect(result.success).toBe(false);
119
- if (!result.success) {
120
- expect(result.error.issues[0].code).toBe('invalid_value');
121
- expect(result.error.issues[0].message).toContain('Invalid option');
122
- }
123
- });
124
- it('should handle case sensitivity correctly', () => {
125
- const userRoleEnum = createZodEnum(UserRole);
126
- expect(() => userRoleEnum.parse('OWNER')).toThrow();
127
- expect(() => userRoleEnum.parse('Owner')).toThrow();
128
- expect(userRoleEnum.parse('owner')).toBe('owner');
129
- });
130
- });
131
- describe('Type Safety', () => {
132
- it('should have correct TypeScript types for UserRole', () => {
133
- const ownerRole = 'owner';
134
- const parentRole = 'parent';
135
- const childRole = 'child';
136
- expect(ownerRole).toBe('owner');
137
- expect(parentRole).toBe('parent');
138
- expect(childRole).toBe('child');
139
- });
140
- it('should have correct TypeScript types for ActivationStatus', () => {
141
- const activeStatus = 'active';
142
- const disabledStatus = 'disabled';
143
- expect(activeStatus).toBe('active');
144
- expect(disabledStatus).toBe('disabled');
145
- });
146
- it('should prevent invalid assignments at compile time', () => {
147
- expect(true).toBe(true);
148
- });
149
- });
150
- describe('Enum Object Structure', () => {
151
- it('should have correct object structure for UserRole', () => {
152
- expect(typeof UserRole).toBe('object');
153
- expect(UserRole).toHaveProperty('OWNER');
154
- expect(UserRole).toHaveProperty('PARENT');
155
- expect(UserRole).toHaveProperty('CHILD');
156
- expect(Object.keys(UserRole)).toHaveLength(3);
157
- });
158
- it('should have correct object structure for ActivationStatus', () => {
159
- expect(typeof ActivationStatus).toBe('object');
160
- expect(ActivationStatus).toHaveProperty('ACTIVE');
161
- expect(ActivationStatus).toHaveProperty('DISABLED');
162
- expect(Object.keys(ActivationStatus)).toHaveLength(2);
163
- });
164
- it('should maintain consistent naming convention', () => {
165
- const userRoleKeys = Object.keys(UserRole);
166
- const activationStatusKeys = Object.keys(ActivationStatus);
167
- userRoleKeys.forEach((key) => {
168
- expect(key).toMatch(/^[A-Z_]+$/);
169
- });
170
- activationStatusKeys.forEach((key) => {
171
- expect(key).toMatch(/^[A-Z_]+$/);
172
- });
173
- });
174
- it('should maintain consistent value convention', () => {
175
- const userRoleValues = Object.values(UserRole);
176
- const activationStatusValues = Object.values(ActivationStatus);
177
- userRoleValues.forEach((value) => {
178
- expect(value).toMatch(/^[a-z]+$/);
179
- });
180
- activationStatusValues.forEach((value) => {
181
- expect(value).toMatch(/^[a-z]+$/);
182
- });
183
- });
184
- });
185
- });
186
- //# sourceMappingURL=model.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"model.spec.js","sourceRoot":"","sources":["../../src/tests/model.spec.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,332 +0,0 @@
1
- import { ActivationStatus, UserRole } from '../model/model';
2
- import { CreateChildUserDtoSchema, UserDtoSchema } from '../model/user.dto';
3
- describe('UserDto Schemas', () => {
4
- describe('UserDtoSchema', () => {
5
- const validUserDto = {
6
- id: '123e4567-e89b-12d3-a456-426614174000',
7
- firstName: 'John',
8
- lastName: 'Doe',
9
- email: 'john.doe@example.com',
10
- username: 'johndoe',
11
- role: UserRole.OWNER,
12
- status: ActivationStatus.ACTIVE,
13
- createdAt: new Date('2024-01-01T00:00:00Z'),
14
- updatedAt: new Date('2024-01-01T00:00:00Z'),
15
- };
16
- it('should validate a valid user DTO', () => {
17
- const result = UserDtoSchema.safeParse(validUserDto);
18
- expect(result.success).toBe(true);
19
- if (result.success) {
20
- expect(result.data).toEqual(validUserDto);
21
- }
22
- });
23
- it('should validate user DTO without email', () => {
24
- const userDtoWithoutEmail = {
25
- ...validUserDto,
26
- email: undefined,
27
- };
28
- const result = UserDtoSchema.safeParse(userDtoWithoutEmail);
29
- expect(result.success).toBe(true);
30
- if (result.success) {
31
- expect(result.data.email).toBeUndefined();
32
- }
33
- });
34
- it('should reject invalid UUID for id', () => {
35
- const invalidUserDto = {
36
- ...validUserDto,
37
- id: 'invalid-uuid',
38
- };
39
- const result = UserDtoSchema.safeParse(invalidUserDto);
40
- expect(result.success).toBe(false);
41
- if (!result.success) {
42
- expect(result.error.issues[0].path).toEqual(['id']);
43
- expect(result.error.issues[0].code).toBe('invalid_format');
44
- }
45
- });
46
- it('should accept empty firstName (Zod allows empty strings)', () => {
47
- const userDtoWithEmptyFirstName = {
48
- ...validUserDto,
49
- firstName: '',
50
- };
51
- const result = UserDtoSchema.safeParse(userDtoWithEmptyFirstName);
52
- expect(result.success).toBe(true);
53
- if (result.success) {
54
- expect(result.data.firstName).toBe('');
55
- }
56
- });
57
- it('should accept empty lastName (Zod allows empty strings)', () => {
58
- const userDtoWithEmptyLastName = {
59
- ...validUserDto,
60
- lastName: '',
61
- };
62
- const result = UserDtoSchema.safeParse(userDtoWithEmptyLastName);
63
- expect(result.success).toBe(true);
64
- if (result.success) {
65
- expect(result.data.lastName).toBe('');
66
- }
67
- });
68
- it('should reject invalid email format', () => {
69
- const invalidUserDto = {
70
- ...validUserDto,
71
- email: 'invalid-email',
72
- };
73
- const result = UserDtoSchema.safeParse(invalidUserDto);
74
- expect(result.success).toBe(false);
75
- if (!result.success) {
76
- expect(result.error.issues[0].path).toEqual(['email']);
77
- expect(result.error.issues[0].code).toBe('invalid_format');
78
- }
79
- });
80
- it('should reject invalid role', () => {
81
- const invalidUserDto = {
82
- ...validUserDto,
83
- role: 'invalid-role',
84
- };
85
- const result = UserDtoSchema.safeParse(invalidUserDto);
86
- expect(result.success).toBe(false);
87
- if (!result.success) {
88
- expect(result.error.issues[0].path).toEqual(['role']);
89
- expect(result.error.issues[0].code).toBe('invalid_value');
90
- }
91
- });
92
- it('should reject invalid status', () => {
93
- const invalidUserDto = {
94
- ...validUserDto,
95
- status: 'invalid-status',
96
- };
97
- const result = UserDtoSchema.safeParse(invalidUserDto);
98
- expect(result.success).toBe(false);
99
- if (!result.success) {
100
- expect(result.error.issues[0].path).toEqual(['status']);
101
- expect(result.error.issues[0].code).toBe('invalid_value');
102
- }
103
- });
104
- it('should reject invalid date for createdAt', () => {
105
- const invalidUserDto = {
106
- ...validUserDto,
107
- createdAt: 'invalid-date',
108
- };
109
- const result = UserDtoSchema.safeParse(invalidUserDto);
110
- expect(result.success).toBe(false);
111
- if (!result.success) {
112
- expect(result.error.issues[0].path).toEqual(['createdAt']);
113
- expect(result.error.issues[0].code).toBe('invalid_type');
114
- }
115
- });
116
- it('should reject invalid date for updatedAt', () => {
117
- const invalidUserDto = {
118
- ...validUserDto,
119
- updatedAt: 'invalid-date',
120
- };
121
- const result = UserDtoSchema.safeParse(invalidUserDto);
122
- expect(result.success).toBe(false);
123
- if (!result.success) {
124
- expect(result.error.issues[0].path).toEqual(['updatedAt']);
125
- expect(result.error.issues[0].code).toBe('invalid_type');
126
- }
127
- });
128
- it('should validate all valid roles', () => {
129
- const roles = [UserRole.OWNER, UserRole.PARENT, UserRole.CHILD];
130
- roles.forEach((role) => {
131
- const userDtoWithRole = {
132
- ...validUserDto,
133
- role,
134
- };
135
- const result = UserDtoSchema.safeParse(userDtoWithRole);
136
- expect(result.success).toBe(true);
137
- if (result.success) {
138
- expect(result.data.role).toBe(role);
139
- }
140
- });
141
- });
142
- it('should validate all valid statuses', () => {
143
- const statuses = [ActivationStatus.ACTIVE, ActivationStatus.DISABLED];
144
- statuses.forEach((status) => {
145
- const userDtoWithStatus = {
146
- ...validUserDto,
147
- status,
148
- };
149
- const result = UserDtoSchema.safeParse(userDtoWithStatus);
150
- expect(result.success).toBe(true);
151
- if (result.success) {
152
- expect(result.data.status).toBe(status);
153
- }
154
- });
155
- });
156
- it('should reject missing required fields', () => {
157
- const requiredFields = [
158
- 'id',
159
- 'firstName',
160
- 'lastName',
161
- 'role',
162
- 'status',
163
- 'createdAt',
164
- 'updatedAt',
165
- ];
166
- requiredFields.forEach((field) => {
167
- const invalidUserDto = { ...validUserDto };
168
- delete invalidUserDto[field];
169
- const result = UserDtoSchema.safeParse(invalidUserDto);
170
- expect(result.success).toBe(false);
171
- if (!result.success) {
172
- expect(result.error.issues[0].path).toEqual([field]);
173
- expect(['invalid_type', 'invalid_value']).toContain(result.error.issues[0].code);
174
- }
175
- });
176
- });
177
- });
178
- describe('CreateChildUserDtoSchema', () => {
179
- const validCreateChildUserDto = {
180
- firstName: 'Child',
181
- lastName: 'User',
182
- username: 'childuser',
183
- password: '1234',
184
- birthdate: '2010-01-01',
185
- };
186
- it('should validate a valid create child user DTO', () => {
187
- const result = CreateChildUserDtoSchema.safeParse(validCreateChildUserDto);
188
- expect(result.success).toBe(true);
189
- if (result.success) {
190
- expect(result.data).toEqual({
191
- ...validCreateChildUserDto,
192
- birthdate: new Date('2010-01-01'),
193
- });
194
- }
195
- });
196
- it('should validate create child user DTO without birthdate', () => {
197
- const createChildUserDtoWithoutBirthdate = {
198
- firstName: 'Child',
199
- lastName: 'User',
200
- username: 'childuser',
201
- password: '1234',
202
- };
203
- const result = CreateChildUserDtoSchema.safeParse(createChildUserDtoWithoutBirthdate);
204
- expect(result.success).toBe(true);
205
- if (result.success) {
206
- expect(result.data.birthdate).toBeUndefined();
207
- }
208
- });
209
- it('should reject empty firstName', () => {
210
- const invalidDto = {
211
- ...validCreateChildUserDto,
212
- firstName: '',
213
- };
214
- const result = CreateChildUserDtoSchema.safeParse(invalidDto);
215
- expect(result.success).toBe(false);
216
- if (!result.success) {
217
- expect(result.error.issues[0].path).toEqual(['firstName']);
218
- expect(result.error.issues[0].message).toBe('First name is required');
219
- }
220
- });
221
- it('should reject empty lastName', () => {
222
- const invalidDto = {
223
- ...validCreateChildUserDto,
224
- lastName: '',
225
- };
226
- const result = CreateChildUserDtoSchema.safeParse(invalidDto);
227
- expect(result.success).toBe(false);
228
- if (!result.success) {
229
- expect(result.error.issues[0].path).toEqual(['lastName']);
230
- expect(result.error.issues[0].message).toBe('Last name is required');
231
- }
232
- });
233
- it('should reject password shorter than 4 characters', () => {
234
- const invalidDto = {
235
- ...validCreateChildUserDto,
236
- password: '123',
237
- };
238
- const result = CreateChildUserDtoSchema.safeParse(invalidDto);
239
- expect(result.success).toBe(false);
240
- if (!result.success) {
241
- expect(result.error.issues[0].path).toEqual(['password']);
242
- expect(result.error.issues[0].message).toBe('Password must be exactly 4 characters');
243
- }
244
- });
245
- it('should reject password longer than 4 characters', () => {
246
- const invalidDto = {
247
- ...validCreateChildUserDto,
248
- password: '12345',
249
- };
250
- const result = CreateChildUserDtoSchema.safeParse(invalidDto);
251
- expect(result.success).toBe(false);
252
- if (!result.success) {
253
- expect(result.error.issues[0].path).toEqual(['password']);
254
- expect(result.error.issues[0].message).toBe('Password must be exactly 4 characters');
255
- }
256
- });
257
- it('should accept password with exactly 4 characters', () => {
258
- const validPasswords = ['1234', 'abcd', '!@#$', '0000'];
259
- validPasswords.forEach((password) => {
260
- const validDto = {
261
- ...validCreateChildUserDto,
262
- password,
263
- };
264
- const result = CreateChildUserDtoSchema.safeParse(validDto);
265
- expect(result.success).toBe(true);
266
- if (result.success) {
267
- expect(result.data.password).toBe(password);
268
- }
269
- });
270
- });
271
- it('should accept any string for birthdate (Zod transform creates Date from any string)', () => {
272
- const dtoWithInvalidDateString = {
273
- ...validCreateChildUserDto,
274
- birthdate: 'not-a-date',
275
- };
276
- const result = CreateChildUserDtoSchema.safeParse(dtoWithInvalidDateString);
277
- expect(result.success).toBe(true);
278
- if (result.success) {
279
- expect(result.data.birthdate).toBeInstanceOf(Date);
280
- expect(result.data.birthdate).toBeDefined();
281
- expect(isNaN(result.data.birthdate.getTime())).toBe(true);
282
- }
283
- });
284
- it('should reject missing required fields', () => {
285
- const requiredFields = ['firstName', 'lastName', 'password'];
286
- requiredFields.forEach((field) => {
287
- const invalidDto = { ...validCreateChildUserDto };
288
- delete invalidDto[field];
289
- const result = CreateChildUserDtoSchema.safeParse(invalidDto);
290
- expect(result.success).toBe(false);
291
- if (!result.success) {
292
- expect(result.error.issues[0].path).toEqual([field]);
293
- expect(result.error.issues[0].code).toBe('invalid_type');
294
- }
295
- });
296
- });
297
- it('should handle special characters in names', () => {
298
- const specialCharDto = {
299
- firstName: 'José',
300
- lastName: "O'Connor-Smith",
301
- username: 'jose',
302
- password: '1234',
303
- birthdate: '2010-01-01',
304
- };
305
- const result = CreateChildUserDtoSchema.safeParse(specialCharDto);
306
- expect(result.success).toBe(true);
307
- if (result.success) {
308
- expect(result.data.firstName).toBe('José');
309
- expect(result.data.lastName).toBe("O'Connor-Smith");
310
- expect(result.data.birthdate).toEqual(new Date('2010-01-01'));
311
- }
312
- });
313
- it('should handle very long names', () => {
314
- const longName = 'A'.repeat(1000);
315
- const longNameDto = {
316
- firstName: longName,
317
- lastName: longName,
318
- username: 'longname',
319
- password: '1234',
320
- birthdate: '2010-01-01',
321
- };
322
- const result = CreateChildUserDtoSchema.safeParse(longNameDto);
323
- expect(result.success).toBe(true);
324
- if (result.success) {
325
- expect(result.data.firstName).toBe(longName);
326
- expect(result.data.lastName).toBe(longName);
327
- expect(result.data.birthdate).toEqual(new Date('2010-01-01'));
328
- }
329
- });
330
- });
331
- });
332
- //# sourceMappingURL=user.dto.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"user.dto.spec.js","sourceRoot":"","sources":["../../src/tests/user.dto.spec.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};