@kidemy/lib 1.0.13 → 1.0.14

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.
@@ -7,11 +7,11 @@ export declare const AccountInvitationDtoSchema: z.ZodObject<{
7
7
  updatedAt: z.ZodDate;
8
8
  }, z.core.$strip>;
9
9
  export type AccountInvitationDto = z.infer<typeof AccountInvitationDtoSchema>;
10
- export declare const AccountInvitationInfoSchema: z.ZodObject<{
10
+ export declare const AccountInvitationInfoDtoSchema: z.ZodObject<{
11
11
  id: z.ZodUUID;
12
12
  accountName: z.ZodString;
13
13
  invitorUid: z.ZodUUID;
14
14
  invitorFirstName: z.ZodString;
15
15
  invitorLastName: z.ZodString;
16
16
  }, z.core.$strip>;
17
- export type AccountInvitationInfo = z.infer<typeof AccountInvitationInfoSchema>;
17
+ export type AccountInvitationInfoDto = z.infer<typeof AccountInvitationInfoDtoSchema>;
@@ -6,7 +6,7 @@ export const AccountInvitationDtoSchema = z.object({
6
6
  createdAt: z.date(),
7
7
  updatedAt: z.date(),
8
8
  });
9
- export const AccountInvitationInfoSchema = z.object({
9
+ export const AccountInvitationInfoDtoSchema = z.object({
10
10
  id: z.uuid(),
11
11
  accountName: z.string(),
12
12
  invitorUid: z.uuid(),
@@ -1 +1 @@
1
- {"version":3,"file":"account-invitation.dto.js","sourceRoot":"","sources":["../../../src/model/account-invitation.dto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE;IACZ,UAAU,EAAE,CAAC,CAAC,IAAI,EAAE;IACpB,UAAU,EAAE,CAAC,CAAC,IAAI,EAAE;IACpB,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE;IACnB,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE;CACpB,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE;IACZ,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,UAAU,EAAE,CAAC,CAAC,IAAI,EAAE;IACpB,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE;IAC5B,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE;CAC5B,CAAC,CAAC"}
1
+ {"version":3,"file":"account-invitation.dto.js","sourceRoot":"","sources":["../../../src/model/account-invitation.dto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE;IACZ,UAAU,EAAE,CAAC,CAAC,IAAI,EAAE;IACpB,UAAU,EAAE,CAAC,CAAC,IAAI,EAAE;IACpB,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE;IACnB,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE;CACpB,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC,MAAM,CAAC;IACrD,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE;IACZ,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,UAAU,EAAE,CAAC,CAAC,IAAI,EAAE;IACpB,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE;IAC5B,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE;CAC5B,CAAC,CAAC"}
@@ -14,6 +14,17 @@ export declare const CreateAccountUserDtoSchema: z.ZodObject<{
14
14
  recaptchaToken: z.ZodString;
15
15
  }, z.core.$strip>;
16
16
  export type CreateAccountUserDto = z.infer<typeof CreateAccountUserDtoSchema>;
17
+ export declare const RegisterByInvitationDtoSchema: z.ZodObject<{
18
+ recaptchaToken: z.ZodString;
19
+ firstName: z.ZodString;
20
+ lastName: z.ZodString;
21
+ email: z.ZodEmail;
22
+ username: z.ZodString;
23
+ password: z.ZodString;
24
+ birthdate: z.ZodPipe<z.ZodOptional<z.ZodString>, z.ZodTransform<Date | undefined, string | undefined>>;
25
+ invitationId: z.ZodUUID;
26
+ }, z.core.$strip>;
27
+ export type RegisterByInvitationDto = z.infer<typeof RegisterByInvitationDtoSchema>;
17
28
  export declare const CreateAccountUserResponseSchema: z.ZodObject<{
18
29
  account: z.ZodObject<{
19
30
  id: z.ZodUUID;
@@ -1,6 +1,32 @@
1
1
  import { z } from 'zod';
2
2
  import { ActivationStatus, UserRole } from './model';
3
3
  import { createZodEnum } from './utility';
4
+ const UserRegistrationSchema = z.object({
5
+ firstName: z
6
+ .string()
7
+ .min(1, 'First name is required')
8
+ .max(255, 'First name must be less than 255 characters'),
9
+ lastName: z
10
+ .string()
11
+ .min(1, 'Last name is required')
12
+ .max(255, 'Last name must be less than 255 characters'),
13
+ email: z
14
+ .email('Invalid email format')
15
+ .max(255, 'Email must be less than 255 characters'),
16
+ username: z
17
+ .string()
18
+ .min(1, 'Username is required')
19
+ .max(255, 'Username must be less than 255 characters'),
20
+ password: z
21
+ .string()
22
+ .min(6, 'Password must be at least 6 characters')
23
+ .max(255, 'Password must be less than 255 characters'),
24
+ birthdate: z
25
+ .string()
26
+ .optional()
27
+ .transform((val) => (val ? new Date(val) : undefined)),
28
+ });
29
+ const RecaptchaTokenSchema = z.string().min(1, 'reCAPTCHA token is required');
4
30
  export const CreateAccountUserDtoSchema = z.object({
5
31
  account: z.object({
6
32
  name: z
@@ -8,35 +34,10 @@ export const CreateAccountUserDtoSchema = z.object({
8
34
  .min(1, 'Account name is required')
9
35
  .max(255, 'Account name must be less than 255 characters'),
10
36
  }),
11
- user: z.object({
12
- firstName: z
13
- .string()
14
- .min(1, 'First name is required')
15
- .max(255, 'First name must be less than 255 characters'),
16
- lastName: z
17
- .string()
18
- .min(1, 'Last name is required')
19
- .max(255, 'Last name must be less than 255 characters'),
20
- email: z
21
- .email('Invalid email format')
22
- .max(255, 'Email must be less than 255 characters'),
23
- username: z
24
- .string()
25
- .min(1, 'Username is required')
26
- .max(255, 'Username must be less than 255 characters'),
27
- password: z
28
- .string()
29
- .min(6, 'Password must be at least 6 characters')
30
- .max(255, 'Password must be less than 255 characters'),
31
- birthdate: z
32
- .string()
33
- .optional()
34
- .transform((val) => (val ? new Date(val) : undefined)),
35
- }),
36
- recaptchaToken: z
37
- .string()
38
- .min(1, 'reCAPTCHA token is required'),
37
+ user: UserRegistrationSchema,
38
+ recaptchaToken: RecaptchaTokenSchema,
39
39
  });
40
+ export const RegisterByInvitationDtoSchema = z.object(Object.assign(Object.assign({ invitationId: z.uuid() }, UserRegistrationSchema.shape), { recaptchaToken: RecaptchaTokenSchema }));
40
41
  export const CreateAccountUserResponseSchema = z.object({
41
42
  account: z.object({
42
43
  id: z.uuid(),
@@ -64,9 +65,7 @@ export const LoginDtoSchema = z.object({
64
65
  .min(1, 'Email or username is required')
65
66
  .max(255, 'Email or username must be less than 255 characters'),
66
67
  password: z.string('Password must be provided'),
67
- recaptchaToken: z
68
- .string()
69
- .min(1, 'reCAPTCHA token is required'),
68
+ recaptchaToken: RecaptchaTokenSchema,
70
69
  });
71
70
  export const LoginResponseSchema = z.object({
72
71
  token: z.string(),
@@ -1 +1 @@
1
- {"version":3,"file":"auth.dto.js","sourceRoot":"","sources":["../../../src/model/auth.dto.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.dto.js","sourceRoot":"","sources":["../../../src/model/auth.dto.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { AccountInvitationDtoSchema, AccountInvitationInfoSchema, } from '../model/account-invitation.dto';
1
+ import { AccountInvitationDtoSchema, AccountInvitationInfoDtoSchema, } from '../model/account-invitation.dto';
2
2
  describe('AccountInvitationDto Schemas', () => {
3
3
  describe('AccountInvitationDtoSchema', () => {
4
4
  const validUuid = '550e8400-e29b-41d4-a716-446655440000';
@@ -99,7 +99,7 @@ describe('AccountInvitationDto Schemas', () => {
99
99
  }
100
100
  });
101
101
  });
102
- describe('AccountInvitationInfoSchema', () => {
102
+ describe('AccountInvitationInfoDtoSchema', () => {
103
103
  const validUuid = '550e8400-e29b-41d4-a716-446655440000';
104
104
  it('should validate a valid account invitation info', () => {
105
105
  const validInfo = {
@@ -109,7 +109,7 @@ describe('AccountInvitationDto Schemas', () => {
109
109
  invitorFirstName: 'John',
110
110
  invitorLastName: 'Doe',
111
111
  };
112
- const result = AccountInvitationInfoSchema.safeParse(validInfo);
112
+ const result = AccountInvitationInfoDtoSchema.safeParse(validInfo);
113
113
  expect(result.success).toBe(true);
114
114
  if (result.success) {
115
115
  expect(result.data.id).toBe(validUuid);
@@ -127,7 +127,7 @@ describe('AccountInvitationDto Schemas', () => {
127
127
  invitorFirstName: 'John',
128
128
  invitorLastName: 'Doe',
129
129
  };
130
- const result = AccountInvitationInfoSchema.safeParse(invalidInfo);
130
+ const result = AccountInvitationInfoDtoSchema.safeParse(invalidInfo);
131
131
  expect(result.success).toBe(false);
132
132
  if (!result.success) {
133
133
  expect(result.error.issues[0].path).toEqual(['id']);
@@ -141,7 +141,7 @@ describe('AccountInvitationDto Schemas', () => {
141
141
  invitorFirstName: 'John',
142
142
  invitorLastName: 'Doe',
143
143
  };
144
- const result = AccountInvitationInfoSchema.safeParse(invalidInfo);
144
+ const result = AccountInvitationInfoDtoSchema.safeParse(invalidInfo);
145
145
  expect(result.success).toBe(false);
146
146
  if (!result.success) {
147
147
  expect(result.error.issues[0].path).toEqual(['invitorUid']);
@@ -155,7 +155,7 @@ describe('AccountInvitationDto Schemas', () => {
155
155
  invitorFirstName: 'John',
156
156
  invitorLastName: 'Doe',
157
157
  };
158
- const result = AccountInvitationInfoSchema.safeParse(invalidInfo);
158
+ const result = AccountInvitationInfoDtoSchema.safeParse(invalidInfo);
159
159
  expect(result.success).toBe(false);
160
160
  if (!result.success) {
161
161
  expect(result.error.issues[0].path).toEqual(['accountName']);
@@ -170,7 +170,7 @@ describe('AccountInvitationDto Schemas', () => {
170
170
  invitorFirstName: 123,
171
171
  invitorLastName: 'Doe',
172
172
  };
173
- const result = AccountInvitationInfoSchema.safeParse(invalidInfo);
173
+ const result = AccountInvitationInfoDtoSchema.safeParse(invalidInfo);
174
174
  expect(result.success).toBe(false);
175
175
  if (!result.success) {
176
176
  expect(result.error.issues[0].path).toEqual(['invitorFirstName']);
@@ -185,7 +185,7 @@ describe('AccountInvitationDto Schemas', () => {
185
185
  invitorFirstName: 'John',
186
186
  invitorLastName: 456,
187
187
  };
188
- const result = AccountInvitationInfoSchema.safeParse(invalidInfo);
188
+ const result = AccountInvitationInfoDtoSchema.safeParse(invalidInfo);
189
189
  expect(result.success).toBe(false);
190
190
  if (!result.success) {
191
191
  expect(result.error.issues[0].path).toEqual(['invitorLastName']);
@@ -194,7 +194,7 @@ describe('AccountInvitationDto Schemas', () => {
194
194
  });
195
195
  it('should reject missing required fields', () => {
196
196
  const invalidInfo = {};
197
- const result = AccountInvitationInfoSchema.safeParse(invalidInfo);
197
+ const result = AccountInvitationInfoDtoSchema.safeParse(invalidInfo);
198
198
  expect(result.success).toBe(false);
199
199
  if (!result.success) {
200
200
  expect(result.error.issues.length).toBeGreaterThan(0);
@@ -208,7 +208,7 @@ describe('AccountInvitationDto Schemas', () => {
208
208
  invitorFirstName: "Jean-Pierre",
209
209
  invitorLastName: "O'Brien",
210
210
  };
211
- const result = AccountInvitationInfoSchema.safeParse(validInfo);
211
+ const result = AccountInvitationInfoDtoSchema.safeParse(validInfo);
212
212
  expect(result.success).toBe(true);
213
213
  if (result.success) {
214
214
  expect(result.data.accountName).toBe("O'Connor-Smith & Co.");
@@ -224,7 +224,7 @@ describe('AccountInvitationDto Schemas', () => {
224
224
  invitorFirstName: 'José',
225
225
  invitorLastName: 'Müller',
226
226
  };
227
- const result = AccountInvitationInfoSchema.safeParse(validInfo);
227
+ const result = AccountInvitationInfoDtoSchema.safeParse(validInfo);
228
228
  expect(result.success).toBe(true);
229
229
  if (result.success) {
230
230
  expect(result.data.accountName).toBe('账户名称');
@@ -1 +1 @@
1
- {"version":3,"file":"account-invitation.dto.spec.js","sourceRoot":"","sources":["../../../src/tests/account-invitation.dto.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"account-invitation.dto.spec.js","sourceRoot":"","sources":["../../../src/tests/account-invitation.dto.spec.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { AssignmentDtoSchema, CreateAssignmentDtoSchema, } from '../model/assignment.dto';
1
+ import { AssignmentAnswerDtoSchema, AssignmentDtoSchema, CreateAssignmentDtoSchema, PaginatedAssignmentsDtoSchema, UpdateAssignmentDtoSchema, } from '../model/assignment.dto';
2
2
  describe('AssignmentDto Schemas', () => {
3
3
  describe('CreateAssignmentDtoSchema', () => {
4
4
  const validCreateAssignmentDto = {
@@ -362,5 +362,270 @@ describe('AssignmentDto Schemas', () => {
362
362
  });
363
363
  });
364
364
  });
365
+ describe('UpdateAssignmentDtoSchema', () => {
366
+ const validUuid = '123e4567-e89b-12d3-a456-426614174000';
367
+ it('should validate update DTO with assigneeId only', () => {
368
+ const updateDto = {
369
+ assigneeId: validUuid,
370
+ };
371
+ const result = UpdateAssignmentDtoSchema.safeParse(updateDto);
372
+ expect(result.success).toBe(true);
373
+ if (result.success) {
374
+ expect(result.data.assigneeId).toBe(validUuid);
375
+ }
376
+ });
377
+ it('should validate update DTO with title only', () => {
378
+ const updateDto = {
379
+ title: 'Updated Title',
380
+ };
381
+ const result = UpdateAssignmentDtoSchema.safeParse(updateDto);
382
+ expect(result.success).toBe(true);
383
+ if (result.success) {
384
+ expect(result.data.title).toBe('Updated Title');
385
+ }
386
+ });
387
+ it('should validate update DTO with assignment only', () => {
388
+ var _a;
389
+ const updateDto = {
390
+ assignment: {
391
+ title: 'Test Assignment',
392
+ content: 'Test content',
393
+ questions: [
394
+ {
395
+ id: 'q1',
396
+ content: 'Question 1?',
397
+ answers: ['A', 'B', 'C', 'D'],
398
+ correctAnswerIndex: 0,
399
+ answerExplanation: 'A is correct',
400
+ },
401
+ ],
402
+ },
403
+ };
404
+ const result = UpdateAssignmentDtoSchema.safeParse(updateDto);
405
+ expect(result.success).toBe(true);
406
+ if (result.success) {
407
+ expect((_a = result.data.assignment) === null || _a === void 0 ? void 0 : _a.title).toBe('Test Assignment');
408
+ }
409
+ });
410
+ it('should validate update DTO with all fields', () => {
411
+ var _a;
412
+ const updateDto = {
413
+ assigneeId: validUuid,
414
+ title: 'Updated Title',
415
+ assignment: {
416
+ title: 'Test Assignment',
417
+ content: 'Test content',
418
+ questions: [],
419
+ },
420
+ };
421
+ const result = UpdateAssignmentDtoSchema.safeParse(updateDto);
422
+ expect(result.success).toBe(true);
423
+ if (result.success) {
424
+ expect(result.data.assigneeId).toBe(validUuid);
425
+ expect(result.data.title).toBe('Updated Title');
426
+ expect((_a = result.data.assignment) === null || _a === void 0 ? void 0 : _a.title).toBe('Test Assignment');
427
+ }
428
+ });
429
+ it('should reject empty update DTO', () => {
430
+ const updateDto = {};
431
+ const result = UpdateAssignmentDtoSchema.safeParse(updateDto);
432
+ expect(result.success).toBe(false);
433
+ if (!result.success) {
434
+ expect(result.error.issues[0].message).toBe('At least one field must be provided for update');
435
+ }
436
+ });
437
+ it('should reject invalid assigneeId UUID', () => {
438
+ const updateDto = {
439
+ assigneeId: 'invalid-uuid',
440
+ };
441
+ const result = UpdateAssignmentDtoSchema.safeParse(updateDto);
442
+ expect(result.success).toBe(false);
443
+ if (!result.success) {
444
+ expect(result.error.issues[0].path).toEqual(['assigneeId']);
445
+ expect(result.error.issues[0].message).toBe('Invalid assignee ID format');
446
+ }
447
+ });
448
+ it('should reject empty title', () => {
449
+ const updateDto = {
450
+ title: '',
451
+ };
452
+ const result = UpdateAssignmentDtoSchema.safeParse(updateDto);
453
+ expect(result.success).toBe(false);
454
+ if (!result.success) {
455
+ expect(result.error.issues[0].path).toEqual(['title']);
456
+ expect(result.error.issues[0].message).toBe('Title is required');
457
+ }
458
+ });
459
+ it('should reject title longer than 255 characters', () => {
460
+ const updateDto = {
461
+ title: 'A'.repeat(256),
462
+ };
463
+ const result = UpdateAssignmentDtoSchema.safeParse(updateDto);
464
+ expect(result.success).toBe(false);
465
+ if (!result.success) {
466
+ expect(result.error.issues[0].path).toEqual(['title']);
467
+ expect(result.error.issues[0].message).toBe('Title must be less than 255 characters');
468
+ }
469
+ });
470
+ it('should accept title with exactly 255 characters', () => {
471
+ const updateDto = {
472
+ title: 'A'.repeat(255),
473
+ };
474
+ const result = UpdateAssignmentDtoSchema.safeParse(updateDto);
475
+ expect(result.success).toBe(true);
476
+ if (result.success) {
477
+ expect(result.data.title).toBe('A'.repeat(255));
478
+ }
479
+ });
480
+ });
481
+ describe('AssignmentAnswerDtoSchema', () => {
482
+ it('should validate valid assignment answers', () => {
483
+ const validAnswers = {
484
+ answers: [
485
+ { questionId: 'q1', answerIndex: 0 },
486
+ { questionId: 'q2', answerIndex: 1 },
487
+ ],
488
+ };
489
+ const result = AssignmentAnswerDtoSchema.safeParse(validAnswers);
490
+ expect(result.success).toBe(true);
491
+ if (result.success) {
492
+ expect(result.data.answers).toHaveLength(2);
493
+ expect(result.data.answers[0].questionId).toBe('q1');
494
+ expect(result.data.answers[1].answerIndex).toBe(1);
495
+ }
496
+ });
497
+ it('should reject empty answers array', () => {
498
+ const emptyAnswers = {
499
+ answers: [],
500
+ };
501
+ const result = AssignmentAnswerDtoSchema.safeParse(emptyAnswers);
502
+ expect(result.success).toBe(false);
503
+ if (!result.success) {
504
+ expect(result.error.issues[0].path).toEqual(['answers']);
505
+ expect(result.error.issues[0].message).toBe('At least one answer is required');
506
+ }
507
+ });
508
+ it('should reject missing answers field', () => {
509
+ const missingAnswers = {};
510
+ const result = AssignmentAnswerDtoSchema.safeParse(missingAnswers);
511
+ expect(result.success).toBe(false);
512
+ if (!result.success) {
513
+ expect(result.error.issues[0].path).toEqual(['answers']);
514
+ }
515
+ });
516
+ it('should validate single answer', () => {
517
+ const singleAnswer = {
518
+ answers: [{ questionId: 'q1', answerIndex: 2 }],
519
+ };
520
+ const result = AssignmentAnswerDtoSchema.safeParse(singleAnswer);
521
+ expect(result.success).toBe(true);
522
+ if (result.success) {
523
+ expect(result.data.answers).toHaveLength(1);
524
+ }
525
+ });
526
+ });
527
+ describe('PaginatedAssignmentsDtoSchema', () => {
528
+ const validAssignment = {
529
+ id: '123e4567-e89b-12d3-a456-426614174000',
530
+ accountId: '123e4567-e89b-12d3-a456-426614174001',
531
+ createdByUserId: '123e4567-e89b-12d3-a456-426614174002',
532
+ assigneeId: '123e4567-e89b-12d3-a456-426614174003',
533
+ title: 'Test Assignment',
534
+ prompt: 'Test prompt',
535
+ assignment: {
536
+ title: 'Test',
537
+ content: 'Content',
538
+ questions: [],
539
+ },
540
+ answers: null,
541
+ submittedAt: null,
542
+ status: 'active',
543
+ createdAt: new Date('2024-01-01'),
544
+ updatedAt: new Date('2024-01-01'),
545
+ };
546
+ it('should validate valid paginated assignments', () => {
547
+ const paginatedDto = {
548
+ assignments: [validAssignment],
549
+ pagination: {
550
+ page: 1,
551
+ limit: 10,
552
+ },
553
+ };
554
+ const result = PaginatedAssignmentsDtoSchema.safeParse(paginatedDto);
555
+ expect(result.success).toBe(true);
556
+ if (result.success) {
557
+ expect(result.data.assignments).toHaveLength(1);
558
+ expect(result.data.pagination.page).toBe(1);
559
+ expect(result.data.pagination.limit).toBe(10);
560
+ }
561
+ });
562
+ it('should validate empty assignments array', () => {
563
+ const emptyPaginatedDto = {
564
+ assignments: [],
565
+ pagination: {
566
+ page: 1,
567
+ limit: 10,
568
+ },
569
+ };
570
+ const result = PaginatedAssignmentsDtoSchema.safeParse(emptyPaginatedDto);
571
+ expect(result.success).toBe(true);
572
+ if (result.success) {
573
+ expect(result.data.assignments).toHaveLength(0);
574
+ }
575
+ });
576
+ it('should reject missing pagination', () => {
577
+ const missingPagination = {
578
+ assignments: [],
579
+ };
580
+ const result = PaginatedAssignmentsDtoSchema.safeParse(missingPagination);
581
+ expect(result.success).toBe(false);
582
+ if (!result.success) {
583
+ expect(result.error.issues[0].path).toEqual(['pagination']);
584
+ }
585
+ });
586
+ it('should reject missing assignments', () => {
587
+ const missingAssignments = {
588
+ pagination: {
589
+ page: 1,
590
+ limit: 10,
591
+ },
592
+ };
593
+ const result = PaginatedAssignmentsDtoSchema.safeParse(missingAssignments);
594
+ expect(result.success).toBe(false);
595
+ if (!result.success) {
596
+ expect(result.error.issues[0].path).toEqual(['assignments']);
597
+ }
598
+ });
599
+ it('should reject invalid assignment in array', () => {
600
+ const invalidPaginatedDto = {
601
+ assignments: [{ id: 'invalid' }],
602
+ pagination: {
603
+ page: 1,
604
+ limit: 10,
605
+ },
606
+ };
607
+ const result = PaginatedAssignmentsDtoSchema.safeParse(invalidPaginatedDto);
608
+ expect(result.success).toBe(false);
609
+ });
610
+ it('should validate multiple assignments', () => {
611
+ const multiplePaginatedDto = {
612
+ assignments: [
613
+ validAssignment,
614
+ Object.assign(Object.assign({}, validAssignment), { id: '123e4567-e89b-12d3-a456-426614174999' }),
615
+ ],
616
+ pagination: {
617
+ page: 2,
618
+ limit: 20,
619
+ },
620
+ };
621
+ const result = PaginatedAssignmentsDtoSchema.safeParse(multiplePaginatedDto);
622
+ expect(result.success).toBe(true);
623
+ if (result.success) {
624
+ expect(result.data.assignments).toHaveLength(2);
625
+ expect(result.data.pagination.page).toBe(2);
626
+ expect(result.data.pagination.limit).toBe(20);
627
+ }
628
+ });
629
+ });
365
630
  });
366
631
  //# sourceMappingURL=assignment.dto.spec.js.map