@kidemy/lib 1.0.5 → 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.
Files changed (36) hide show
  1. package/dist/index.js +7 -23
  2. package/dist/index.js.map +1 -1
  3. package/dist/model/account.dto.js +14 -17
  4. package/dist/model/account.dto.js.map +1 -1
  5. package/dist/model/assignment.dto.js +43 -46
  6. package/dist/model/assignment.dto.js.map +1 -1
  7. package/dist/model/assignment.model.js +18 -21
  8. package/dist/model/assignment.model.js.map +1 -1
  9. package/dist/model/auth.dto.js +36 -39
  10. package/dist/model/auth.dto.js.map +1 -1
  11. package/dist/model/model.js +2 -5
  12. package/dist/model/model.js.map +1 -1
  13. package/dist/model/user.dto.js +21 -24
  14. package/dist/model/user.dto.js.map +1 -1
  15. package/dist/model/utility.js +3 -6
  16. package/dist/model/utility.js.map +1 -1
  17. package/dist/tsconfig.tsbuildinfo +1 -1
  18. package/package.json +9 -1
  19. package/dist/tests/account.dto.spec.d.ts +0 -1
  20. package/dist/tests/account.dto.spec.js +0 -189
  21. package/dist/tests/account.dto.spec.js.map +0 -1
  22. package/dist/tests/assignment.dto.spec.d.ts +0 -1
  23. package/dist/tests/assignment.dto.spec.js +0 -412
  24. package/dist/tests/assignment.dto.spec.js.map +0 -1
  25. package/dist/tests/auth.dto.spec.d.ts +0 -1
  26. package/dist/tests/auth.dto.spec.js +0 -501
  27. package/dist/tests/auth.dto.spec.js.map +0 -1
  28. package/dist/tests/model.spec.d.ts +0 -1
  29. package/dist/tests/model.spec.js +0 -188
  30. package/dist/tests/model.spec.js.map +0 -1
  31. package/dist/tests/user.dto.spec.d.ts +0 -1
  32. package/dist/tests/user.dto.spec.js +0 -334
  33. package/dist/tests/user.dto.spec.js.map +0 -1
  34. package/dist/tests/utility.spec.d.ts +0 -1
  35. package/dist/tests/utility.spec.js +0 -172
  36. package/dist/tests/utility.spec.js.map +0 -1
@@ -1,172 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const zod_1 = require("zod");
4
- const model_1 = require("../model/model");
5
- const utility_1 = require("../model/utility");
6
- describe('createZodEnum', () => {
7
- describe('with UserRole enum', () => {
8
- it('should create a valid Zod enum schema for UserRole', () => {
9
- const zodEnum = (0, utility_1.createZodEnum)(model_1.UserRole);
10
- expect(zodEnum).toBeInstanceOf(zod_1.z.ZodEnum);
11
- expect(zodEnum.parse(model_1.UserRole.OWNER)).toBe(model_1.UserRole.OWNER);
12
- expect(zodEnum.parse(model_1.UserRole.PARENT)).toBe(model_1.UserRole.PARENT);
13
- expect(zodEnum.parse(model_1.UserRole.CHILD)).toBe(model_1.UserRole.CHILD);
14
- });
15
- it('should reject invalid values for UserRole', () => {
16
- const zodEnum = (0, utility_1.createZodEnum)(model_1.UserRole);
17
- expect(() => zodEnum.parse('invalid-role')).toThrow();
18
- expect(() => zodEnum.parse('admin')).toThrow();
19
- expect(() => zodEnum.parse('')).toThrow();
20
- expect(() => zodEnum.parse(null)).toThrow();
21
- expect(() => zodEnum.parse(undefined)).toThrow();
22
- });
23
- it('should handle all UserRole values', () => {
24
- const zodEnum = (0, utility_1.createZodEnum)(model_1.UserRole);
25
- const allUserRoles = Object.values(model_1.UserRole);
26
- allUserRoles.forEach((role) => {
27
- expect(zodEnum.parse(role)).toBe(role);
28
- });
29
- });
30
- });
31
- describe('with ActivationStatus enum', () => {
32
- it('should create a valid Zod enum schema for ActivationStatus', () => {
33
- const zodEnum = (0, utility_1.createZodEnum)(model_1.ActivationStatus);
34
- expect(zodEnum).toBeInstanceOf(zod_1.z.ZodEnum);
35
- expect(zodEnum.parse(model_1.ActivationStatus.ACTIVE)).toBe(model_1.ActivationStatus.ACTIVE);
36
- expect(zodEnum.parse(model_1.ActivationStatus.DISABLED)).toBe(model_1.ActivationStatus.DISABLED);
37
- });
38
- it('should reject invalid values for ActivationStatus', () => {
39
- const zodEnum = (0, utility_1.createZodEnum)(model_1.ActivationStatus);
40
- expect(() => zodEnum.parse('invalid-status')).toThrow();
41
- expect(() => zodEnum.parse('enabled')).toThrow();
42
- expect(() => zodEnum.parse('')).toThrow();
43
- expect(() => zodEnum.parse(null)).toThrow();
44
- expect(() => zodEnum.parse(undefined)).toThrow();
45
- });
46
- it('should handle all ActivationStatus values', () => {
47
- const zodEnum = (0, utility_1.createZodEnum)(model_1.ActivationStatus);
48
- const allActivationStatuses = Object.values(model_1.ActivationStatus);
49
- allActivationStatuses.forEach((status) => {
50
- expect(zodEnum.parse(status)).toBe(status);
51
- });
52
- });
53
- });
54
- describe('with custom enum', () => {
55
- const CustomEnum = {
56
- VALUE_A: 'value-a',
57
- VALUE_B: 'value-b',
58
- VALUE_C: 'value-c',
59
- };
60
- it('should create a valid Zod enum schema for custom enum', () => {
61
- const zodEnum = (0, utility_1.createZodEnum)(CustomEnum);
62
- expect(zodEnum).toBeInstanceOf(zod_1.z.ZodEnum);
63
- expect(zodEnum.parse(CustomEnum.VALUE_A)).toBe(CustomEnum.VALUE_A);
64
- expect(zodEnum.parse(CustomEnum.VALUE_B)).toBe(CustomEnum.VALUE_B);
65
- expect(zodEnum.parse(CustomEnum.VALUE_C)).toBe(CustomEnum.VALUE_C);
66
- });
67
- it('should reject invalid values for custom enum', () => {
68
- const zodEnum = (0, utility_1.createZodEnum)(CustomEnum);
69
- expect(() => zodEnum.parse('invalid-value')).toThrow();
70
- expect(() => zodEnum.parse('value-d')).toThrow();
71
- expect(() => zodEnum.parse('')).toThrow();
72
- expect(() => zodEnum.parse(null)).toThrow();
73
- expect(() => zodEnum.parse(undefined)).toThrow();
74
- });
75
- });
76
- describe('edge cases', () => {
77
- it('should handle empty enum', () => {
78
- const EmptyEnum = {};
79
- const zodEnum = (0, utility_1.createZodEnum)(EmptyEnum);
80
- expect(zodEnum).toBeInstanceOf(zod_1.z.ZodEnum);
81
- expect(() => zodEnum.parse('any-value')).toThrow();
82
- });
83
- it('should handle enum with single value', () => {
84
- const SingleValueEnum = {
85
- ONLY_VALUE: 'only-value',
86
- };
87
- const zodEnum = (0, utility_1.createZodEnum)(SingleValueEnum);
88
- expect(zodEnum).toBeInstanceOf(zod_1.z.ZodEnum);
89
- expect(zodEnum.parse(SingleValueEnum.ONLY_VALUE)).toBe(SingleValueEnum.ONLY_VALUE);
90
- expect(() => zodEnum.parse('other-value')).toThrow();
91
- });
92
- it('should handle enum with numeric string values', () => {
93
- const NumericEnum = {
94
- ONE: '1',
95
- TWO: '2',
96
- THREE: '3',
97
- };
98
- const zodEnum = (0, utility_1.createZodEnum)(NumericEnum);
99
- expect(zodEnum).toBeInstanceOf(zod_1.z.ZodEnum);
100
- expect(zodEnum.parse(NumericEnum.ONE)).toBe(NumericEnum.ONE);
101
- expect(zodEnum.parse(NumericEnum.TWO)).toBe(NumericEnum.TWO);
102
- expect(zodEnum.parse(NumericEnum.THREE)).toBe(NumericEnum.THREE);
103
- expect(() => zodEnum.parse('4')).toThrow();
104
- });
105
- it('should handle enum with special characters', () => {
106
- const SpecialCharEnum = {
107
- VALUE_WITH_DASH: 'value-with-dash',
108
- VALUE_WITH_UNDERSCORE: 'value_with_underscore',
109
- VALUE_WITH_DOTS: 'value.with.dots',
110
- };
111
- const zodEnum = (0, utility_1.createZodEnum)(SpecialCharEnum);
112
- expect(zodEnum).toBeInstanceOf(zod_1.z.ZodEnum);
113
- expect(zodEnum.parse(SpecialCharEnum.VALUE_WITH_DASH)).toBe(SpecialCharEnum.VALUE_WITH_DASH);
114
- expect(zodEnum.parse(SpecialCharEnum.VALUE_WITH_UNDERSCORE)).toBe(SpecialCharEnum.VALUE_WITH_UNDERSCORE);
115
- expect(zodEnum.parse(SpecialCharEnum.VALUE_WITH_DOTS)).toBe(SpecialCharEnum.VALUE_WITH_DOTS);
116
- });
117
- it('should handle enum with unicode characters', () => {
118
- const UnicodeEnum = {
119
- EMOJI: '😀',
120
- ACCENTED: 'café',
121
- CHINESE: '中文',
122
- };
123
- const zodEnum = (0, utility_1.createZodEnum)(UnicodeEnum);
124
- expect(zodEnum).toBeInstanceOf(zod_1.z.ZodEnum);
125
- expect(zodEnum.parse(UnicodeEnum.EMOJI)).toBe(UnicodeEnum.EMOJI);
126
- expect(zodEnum.parse(UnicodeEnum.ACCENTED)).toBe(UnicodeEnum.ACCENTED);
127
- expect(zodEnum.parse(UnicodeEnum.CHINESE)).toBe(UnicodeEnum.CHINESE);
128
- });
129
- });
130
- describe('type safety', () => {
131
- it('should maintain type safety with UserRole', () => {
132
- const zodEnum = (0, utility_1.createZodEnum)(model_1.UserRole);
133
- const result = zodEnum.parse(model_1.UserRole.OWNER);
134
- expect(typeof result).toBe('string');
135
- expect(result).toBe(model_1.UserRole.OWNER);
136
- });
137
- it('should maintain type safety with ActivationStatus', () => {
138
- const zodEnum = (0, utility_1.createZodEnum)(model_1.ActivationStatus);
139
- const result = zodEnum.parse(model_1.ActivationStatus.ACTIVE);
140
- expect(typeof result).toBe('string');
141
- expect(result).toBe(model_1.ActivationStatus.ACTIVE);
142
- });
143
- });
144
- describe('integration with Zod schemas', () => {
145
- it('should work correctly in object schemas', () => {
146
- const TestSchema = zod_1.z.object({
147
- role: (0, utility_1.createZodEnum)(model_1.UserRole),
148
- status: (0, utility_1.createZodEnum)(model_1.ActivationStatus),
149
- });
150
- const validData = {
151
- role: model_1.UserRole.OWNER,
152
- status: model_1.ActivationStatus.ACTIVE,
153
- };
154
- const result = TestSchema.parse(validData);
155
- expect(result).toEqual(validData);
156
- expect(result.role).toBe(model_1.UserRole.OWNER);
157
- expect(result.status).toBe(model_1.ActivationStatus.ACTIVE);
158
- });
159
- it('should reject invalid data in object schemas', () => {
160
- const TestSchema = zod_1.z.object({
161
- role: (0, utility_1.createZodEnum)(model_1.UserRole),
162
- status: (0, utility_1.createZodEnum)(model_1.ActivationStatus),
163
- });
164
- const invalidData = {
165
- role: 'invalid-role',
166
- status: model_1.ActivationStatus.ACTIVE,
167
- };
168
- expect(() => TestSchema.parse(invalidData)).toThrow();
169
- });
170
- });
171
- });
172
- //# sourceMappingURL=utility.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utility.spec.js","sourceRoot":"","sources":["../../src/tests/utility.spec.ts"],"names":[],"mappings":"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"}