@kidemy/lib 1.0.9 → 1.0.10

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.
@@ -56,6 +56,9 @@ export declare const GetAssignmentsQueryDtoSchema: z.ZodObject<{
56
56
  createdAtTo: z.ZodPipe<z.ZodOptional<z.ZodString>, z.ZodTransform<Date | undefined, string | undefined>>;
57
57
  submittedAtFrom: z.ZodPipe<z.ZodOptional<z.ZodString>, z.ZodTransform<Date | undefined, string | undefined>>;
58
58
  submittedAtTo: z.ZodPipe<z.ZodOptional<z.ZodString>, z.ZodTransform<Date | undefined, string | undefined>>;
59
+ status: z.ZodOptional<z.ZodEnum<{
60
+ [x: string]: string;
61
+ }>>;
59
62
  }, z.core.$strip>;
60
63
  export type GetAssignmentsQueryDto = z.infer<typeof GetAssignmentsQueryDtoSchema>;
61
64
  export declare const PaginatedAssignmentsDtoSchema: z.ZodObject<{
@@ -79,6 +79,7 @@ exports.GetAssignmentsQueryDtoSchema = zod_1.z.object({
79
79
  .string()
80
80
  .optional()
81
81
  .transform((val) => (val ? new Date(val) : undefined)),
82
+ status: (0, utility_1.createZodEnum)(model_1.ActivationStatus).optional(),
82
83
  });
83
84
  exports.PaginatedAssignmentsDtoSchema = zod_1.z.object({
84
85
  assignments: zod_1.z.array(exports.AssignmentDtoSchema),
@@ -1 +1 @@
1
- {"version":3,"file":"assignment.dto.js","sourceRoot":"","sources":["../../../src/model/assignment.dto.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"assignment.dto.js","sourceRoot":"","sources":["../../../src/model/assignment.dto.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,258 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const assignment_dto_1 = require("../model/assignment.dto");
4
+ describe('GetAssignmentsQueryDtoSchema', () => {
5
+ it('should validate an empty query object with defaults', () => {
6
+ const emptyQuery = {};
7
+ const result = assignment_dto_1.GetAssignmentsQueryDtoSchema.safeParse(emptyQuery);
8
+ expect(result.success).toBe(true);
9
+ if (result.success) {
10
+ expect(result.data.page).toBe(1);
11
+ expect(result.data.limit).toBe(10);
12
+ expect(result.data.sortBy).toBe('createdAt');
13
+ expect(result.data.sortOrder).toBe('desc');
14
+ }
15
+ });
16
+ it('should validate query with all optional fields', () => {
17
+ const fullQuery = {
18
+ page: '2',
19
+ limit: '20',
20
+ sortBy: 'updatedAt',
21
+ sortOrder: 'asc',
22
+ assigneeId: '123e4567-e89b-12d3-a456-426614174000',
23
+ createdByUserId: '123e4567-e89b-12d3-a456-426614174001',
24
+ title: 'Test Assignment',
25
+ hasAnswers: 'true',
26
+ createdAtFrom: '2024-01-01T00:00:00Z',
27
+ createdAtTo: '2024-12-31T23:59:59Z',
28
+ submittedAtFrom: '2024-01-01T00:00:00Z',
29
+ submittedAtTo: '2024-12-31T23:59:59Z',
30
+ status: 'active',
31
+ };
32
+ const result = assignment_dto_1.GetAssignmentsQueryDtoSchema.safeParse(fullQuery);
33
+ expect(result.success).toBe(true);
34
+ if (result.success) {
35
+ expect(result.data.page).toBe(2);
36
+ expect(result.data.limit).toBe(20);
37
+ expect(result.data.sortBy).toBe('updatedAt');
38
+ expect(result.data.sortOrder).toBe('asc');
39
+ expect(result.data.assigneeId).toBe('123e4567-e89b-12d3-a456-426614174000');
40
+ expect(result.data.createdByUserId).toBe('123e4567-e89b-12d3-a456-426614174001');
41
+ expect(result.data.title).toBe('Test Assignment');
42
+ expect(result.data.hasAnswers).toBe(true);
43
+ expect(result.data.createdAtFrom).toBeInstanceOf(Date);
44
+ expect(result.data.createdAtTo).toBeInstanceOf(Date);
45
+ expect(result.data.submittedAtFrom).toBeInstanceOf(Date);
46
+ expect(result.data.submittedAtTo).toBeInstanceOf(Date);
47
+ expect(result.data.status).toBe('active');
48
+ }
49
+ });
50
+ it('should accept valid status values', () => {
51
+ const validStatuses = ['active', 'disabled'];
52
+ validStatuses.forEach((status) => {
53
+ const query = {
54
+ status,
55
+ };
56
+ const result = assignment_dto_1.GetAssignmentsQueryDtoSchema.safeParse(query);
57
+ expect(result.success).toBe(true);
58
+ if (result.success) {
59
+ expect(result.data.status).toBe(status);
60
+ }
61
+ });
62
+ });
63
+ it('should reject invalid status value', () => {
64
+ const invalidQuery = {
65
+ status: 'invalid-status',
66
+ };
67
+ const result = assignment_dto_1.GetAssignmentsQueryDtoSchema.safeParse(invalidQuery);
68
+ expect(result.success).toBe(false);
69
+ if (!result.success) {
70
+ expect(result.error.issues[0].path).toEqual(['status']);
71
+ expect(result.error.issues[0].code).toBe('invalid_value');
72
+ }
73
+ });
74
+ it('should work without status field', () => {
75
+ const queryWithoutStatus = {
76
+ page: '1',
77
+ limit: '10',
78
+ };
79
+ const result = assignment_dto_1.GetAssignmentsQueryDtoSchema.safeParse(queryWithoutStatus);
80
+ expect(result.success).toBe(true);
81
+ if (result.success) {
82
+ expect(result.data.status).toBeUndefined();
83
+ expect(result.data.page).toBe(1);
84
+ expect(result.data.limit).toBe(10);
85
+ }
86
+ });
87
+ it('should transform page string to number', () => {
88
+ const query = {
89
+ page: '5',
90
+ };
91
+ const result = assignment_dto_1.GetAssignmentsQueryDtoSchema.safeParse(query);
92
+ expect(result.success).toBe(true);
93
+ if (result.success) {
94
+ expect(result.data.page).toBe(5);
95
+ expect(typeof result.data.page).toBe('number');
96
+ }
97
+ });
98
+ it('should reject page less than or equal to 0', () => {
99
+ const invalidQueries = [
100
+ { page: '0' },
101
+ { page: '-1' },
102
+ ];
103
+ invalidQueries.forEach((query) => {
104
+ const result = assignment_dto_1.GetAssignmentsQueryDtoSchema.safeParse(query);
105
+ expect(result.success).toBe(false);
106
+ if (!result.success) {
107
+ expect(result.error.issues[0].path).toEqual(['page']);
108
+ expect(result.error.issues[0].message).toBe('Page must be greater than 0');
109
+ }
110
+ });
111
+ });
112
+ it('should transform limit string to number', () => {
113
+ const query = {
114
+ limit: '25',
115
+ };
116
+ const result = assignment_dto_1.GetAssignmentsQueryDtoSchema.safeParse(query);
117
+ expect(result.success).toBe(true);
118
+ if (result.success) {
119
+ expect(result.data.limit).toBe(25);
120
+ expect(typeof result.data.limit).toBe('number');
121
+ }
122
+ });
123
+ it('should reject limit less than 1 or greater than 100', () => {
124
+ const invalidQueries = [
125
+ { limit: '0' },
126
+ { limit: '101' },
127
+ { limit: '-1' },
128
+ ];
129
+ invalidQueries.forEach((query) => {
130
+ const result = assignment_dto_1.GetAssignmentsQueryDtoSchema.safeParse(query);
131
+ expect(result.success).toBe(false);
132
+ if (!result.success) {
133
+ expect(result.error.issues[0].path).toEqual(['limit']);
134
+ expect(result.error.issues[0].message).toBe('Limit must be between 1 and 100');
135
+ }
136
+ });
137
+ });
138
+ it('should reject invalid UUID for assigneeId', () => {
139
+ const invalidQuery = {
140
+ assigneeId: 'invalid-uuid',
141
+ };
142
+ const result = assignment_dto_1.GetAssignmentsQueryDtoSchema.safeParse(invalidQuery);
143
+ expect(result.success).toBe(false);
144
+ if (!result.success) {
145
+ expect(result.error.issues[0].path).toEqual(['assigneeId']);
146
+ expect(result.error.issues[0].message).toBe('Invalid assignee ID format');
147
+ }
148
+ });
149
+ it('should reject invalid UUID for createdByUserId', () => {
150
+ const invalidQuery = {
151
+ createdByUserId: 'invalid-uuid',
152
+ };
153
+ const result = assignment_dto_1.GetAssignmentsQueryDtoSchema.safeParse(invalidQuery);
154
+ expect(result.success).toBe(false);
155
+ if (!result.success) {
156
+ expect(result.error.issues[0].path).toEqual(['createdByUserId']);
157
+ expect(result.error.issues[0].message).toBe('Invalid creator ID format');
158
+ }
159
+ });
160
+ it('should reject empty title', () => {
161
+ const invalidQuery = {
162
+ title: '',
163
+ };
164
+ const result = assignment_dto_1.GetAssignmentsQueryDtoSchema.safeParse(invalidQuery);
165
+ expect(result.success).toBe(false);
166
+ if (!result.success) {
167
+ expect(result.error.issues[0].path).toEqual(['title']);
168
+ expect(result.error.issues[0].message).toBe('Title search term cannot be empty');
169
+ }
170
+ });
171
+ it('should reject title longer than 255 characters', () => {
172
+ const invalidQuery = {
173
+ title: 'A'.repeat(256),
174
+ };
175
+ const result = assignment_dto_1.GetAssignmentsQueryDtoSchema.safeParse(invalidQuery);
176
+ expect(result.success).toBe(false);
177
+ if (!result.success) {
178
+ expect(result.error.issues[0].path).toEqual(['title']);
179
+ expect(result.error.issues[0].message).toBe('Title search term too long');
180
+ }
181
+ });
182
+ it('should transform hasAnswers string to boolean', () => {
183
+ const testCases = [
184
+ { hasAnswers: 'true', expected: true },
185
+ { hasAnswers: 'false', expected: false },
186
+ { hasAnswers: 'other', expected: undefined },
187
+ ];
188
+ testCases.forEach(({ hasAnswers, expected }) => {
189
+ const query = { hasAnswers };
190
+ const result = assignment_dto_1.GetAssignmentsQueryDtoSchema.safeParse(query);
191
+ expect(result.success).toBe(true);
192
+ if (result.success) {
193
+ expect(result.data.hasAnswers).toBe(expected);
194
+ }
195
+ });
196
+ });
197
+ it('should transform date strings to Date objects', () => {
198
+ const query = {
199
+ createdAtFrom: '2024-01-01T00:00:00Z',
200
+ createdAtTo: '2024-12-31T23:59:59Z',
201
+ submittedAtFrom: '2024-01-01T00:00:00Z',
202
+ submittedAtTo: '2024-12-31T23:59:59Z',
203
+ };
204
+ const result = assignment_dto_1.GetAssignmentsQueryDtoSchema.safeParse(query);
205
+ expect(result.success).toBe(true);
206
+ if (result.success) {
207
+ expect(result.data.createdAtFrom).toBeInstanceOf(Date);
208
+ expect(result.data.createdAtTo).toBeInstanceOf(Date);
209
+ expect(result.data.submittedAtFrom).toBeInstanceOf(Date);
210
+ expect(result.data.submittedAtTo).toBeInstanceOf(Date);
211
+ }
212
+ });
213
+ it('should accept valid sortBy values', () => {
214
+ const validSortByValues = ['createdAt', 'updatedAt', 'submittedAt'];
215
+ validSortByValues.forEach((sortBy) => {
216
+ const query = { sortBy };
217
+ const result = assignment_dto_1.GetAssignmentsQueryDtoSchema.safeParse(query);
218
+ expect(result.success).toBe(true);
219
+ if (result.success) {
220
+ expect(result.data.sortBy).toBe(sortBy);
221
+ }
222
+ });
223
+ });
224
+ it('should reject invalid sortBy value', () => {
225
+ const invalidQuery = {
226
+ sortBy: 'invalid-sort',
227
+ };
228
+ const result = assignment_dto_1.GetAssignmentsQueryDtoSchema.safeParse(invalidQuery);
229
+ expect(result.success).toBe(false);
230
+ if (!result.success) {
231
+ expect(result.error.issues[0].path).toEqual(['sortBy']);
232
+ expect(result.error.issues[0].code).toBe('invalid_value');
233
+ }
234
+ });
235
+ it('should accept valid sortOrder values', () => {
236
+ const validSortOrderValues = ['asc', 'desc'];
237
+ validSortOrderValues.forEach((sortOrder) => {
238
+ const query = { sortOrder };
239
+ const result = assignment_dto_1.GetAssignmentsQueryDtoSchema.safeParse(query);
240
+ expect(result.success).toBe(true);
241
+ if (result.success) {
242
+ expect(result.data.sortOrder).toBe(sortOrder);
243
+ }
244
+ });
245
+ });
246
+ it('should reject invalid sortOrder value', () => {
247
+ const invalidQuery = {
248
+ sortOrder: 'invalid-order',
249
+ };
250
+ const result = assignment_dto_1.GetAssignmentsQueryDtoSchema.safeParse(invalidQuery);
251
+ expect(result.success).toBe(false);
252
+ if (!result.success) {
253
+ expect(result.error.issues[0].path).toEqual(['sortOrder']);
254
+ expect(result.error.issues[0].code).toBe('invalid_value');
255
+ }
256
+ });
257
+ });
258
+ //# sourceMappingURL=get-assignments-query.dto.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-assignments-query.dto.spec.js","sourceRoot":"","sources":["../../../src/tests/get-assignments-query.dto.spec.ts"],"names":[],"mappings":"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"}