@kidemy/lib 1.0.10 → 1.0.12
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.
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.js +1 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/model/account-invitation.dto.d.ts +18 -0
- package/dist/cjs/model/account-invitation.dto.js +20 -0
- package/dist/cjs/model/account-invitation.dto.js.map +1 -0
- package/dist/cjs/model/auth.dto.d.ts +2 -0
- package/dist/cjs/model/auth.dto.js +6 -0
- package/dist/cjs/model/auth.dto.js.map +1 -1
- package/dist/cjs/model/user.dto.js +4 -1
- package/dist/cjs/model/user.dto.js.map +1 -1
- package/dist/cjs/tests/account-invitation.dto.spec.d.ts +1 -0
- package/dist/cjs/tests/account-invitation.dto.spec.js +262 -0
- package/dist/cjs/tests/account-invitation.dto.spec.js.map +1 -0
- package/dist/cjs/tests/auth.dto.spec.js +63 -1
- package/dist/cjs/tests/auth.dto.spec.js.map +1 -1
- package/dist/cjs/tests/user.dto.spec.js +47 -0
- package/dist/cjs/tests/user.dto.spec.js.map +1 -1
- package/dist/cjs/tsconfig-cjs.tsbuildinfo +1 -1
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/model/account-invitation.dto.d.ts +18 -0
- package/dist/esm/model/account-invitation.dto.js +17 -0
- package/dist/esm/model/account-invitation.dto.js.map +1 -0
- package/dist/esm/model/auth.dto.d.ts +2 -0
- package/dist/esm/model/auth.dto.js +6 -0
- package/dist/esm/model/auth.dto.js.map +1 -1
- package/dist/esm/model/user.dto.js +4 -1
- package/dist/esm/model/user.dto.js.map +1 -1
- package/dist/esm/tests/account-invitation.dto.spec.d.ts +1 -0
- package/dist/esm/tests/account-invitation.dto.spec.js +260 -0
- package/dist/esm/tests/account-invitation.dto.spec.js.map +1 -0
- package/dist/esm/tests/auth.dto.spec.js +63 -1
- package/dist/esm/tests/auth.dto.spec.js.map +1 -1
- package/dist/esm/tests/user.dto.spec.js +47 -0
- package/dist/esm/tests/user.dto.spec.js.map +1 -1
- package/dist/esm/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
package/dist/cjs/index.d.ts
CHANGED
package/dist/cjs/index.js
CHANGED
|
@@ -15,6 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./model/account.dto"), exports);
|
|
18
|
+
__exportStar(require("./model/account-invitation.dto"), exports);
|
|
18
19
|
__exportStar(require("./model/assignment.dto"), exports);
|
|
19
20
|
__exportStar(require("./model/auth.dto"), exports);
|
|
20
21
|
__exportStar(require("./model/user.dto"), exports);
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAoC;AACpC,yDAAuC;AACvC,mDAAiC;AACjC,mDAAiC;AACjC,gDAA8B;AAC9B,2DAAyC;AACzC,kDAAgC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAoC;AACpC,iEAA+C;AAC/C,yDAAuC;AACvC,mDAAiC;AACjC,mDAAiC;AACjC,gDAA8B;AAC9B,2DAAyC;AACzC,kDAAgC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const AccountInvitationDtoSchema: z.ZodObject<{
|
|
3
|
+
id: z.ZodUUID;
|
|
4
|
+
accountUid: z.ZodUUID;
|
|
5
|
+
accountName: z.ZodString;
|
|
6
|
+
invitorUid: z.ZodUUID;
|
|
7
|
+
createdAt: z.ZodDate;
|
|
8
|
+
updatedAt: z.ZodDate;
|
|
9
|
+
}, z.core.$strip>;
|
|
10
|
+
export type AccountInvitationDto = z.infer<typeof AccountInvitationDtoSchema>;
|
|
11
|
+
export declare const AccountInvitationInfoSchema: z.ZodObject<{
|
|
12
|
+
id: z.ZodUUID;
|
|
13
|
+
accountName: z.ZodString;
|
|
14
|
+
invitorUid: z.ZodUUID;
|
|
15
|
+
invitorFirstName: z.ZodString;
|
|
16
|
+
invitorLastName: z.ZodString;
|
|
17
|
+
}, z.core.$strip>;
|
|
18
|
+
export type AccountInvitationInfo = z.infer<typeof AccountInvitationInfoSchema>;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AccountInvitationInfoSchema = exports.AccountInvitationDtoSchema = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
exports.AccountInvitationDtoSchema = zod_1.z.object({
|
|
6
|
+
id: zod_1.z.uuid(),
|
|
7
|
+
accountUid: zod_1.z.uuid(),
|
|
8
|
+
accountName: zod_1.z.string(),
|
|
9
|
+
invitorUid: zod_1.z.uuid(),
|
|
10
|
+
createdAt: zod_1.z.date(),
|
|
11
|
+
updatedAt: zod_1.z.date(),
|
|
12
|
+
});
|
|
13
|
+
exports.AccountInvitationInfoSchema = zod_1.z.object({
|
|
14
|
+
id: zod_1.z.uuid(),
|
|
15
|
+
accountName: zod_1.z.string(),
|
|
16
|
+
invitorUid: zod_1.z.uuid(),
|
|
17
|
+
invitorFirstName: zod_1.z.string(),
|
|
18
|
+
invitorLastName: zod_1.z.string(),
|
|
19
|
+
});
|
|
20
|
+
//# sourceMappingURL=account-invitation.dto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account-invitation.dto.js","sourceRoot":"","sources":["../../../src/model/account-invitation.dto.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAEX,QAAA,0BAA0B,GAAG,OAAC,CAAC,MAAM,CAAC;IACjD,EAAE,EAAE,OAAC,CAAC,IAAI,EAAE;IACZ,UAAU,EAAE,OAAC,CAAC,IAAI,EAAE;IACpB,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE;IACvB,UAAU,EAAE,OAAC,CAAC,IAAI,EAAE;IACpB,SAAS,EAAE,OAAC,CAAC,IAAI,EAAE;IACnB,SAAS,EAAE,OAAC,CAAC,IAAI,EAAE;CACpB,CAAC,CAAC;AAIU,QAAA,2BAA2B,GAAG,OAAC,CAAC,MAAM,CAAC;IAClD,EAAE,EAAE,OAAC,CAAC,IAAI,EAAE;IACZ,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE;IACvB,UAAU,EAAE,OAAC,CAAC,IAAI,EAAE;IACpB,gBAAgB,EAAE,OAAC,CAAC,MAAM,EAAE;IAC5B,eAAe,EAAE,OAAC,CAAC,MAAM,EAAE;CAC5B,CAAC,CAAC"}
|
|
@@ -11,6 +11,7 @@ export declare const CreateAccountUserDtoSchema: z.ZodObject<{
|
|
|
11
11
|
password: z.ZodString;
|
|
12
12
|
birthdate: z.ZodPipe<z.ZodOptional<z.ZodString>, z.ZodTransform<Date | undefined, string | undefined>>;
|
|
13
13
|
}, z.core.$strip>;
|
|
14
|
+
recaptchaToken: z.ZodString;
|
|
14
15
|
}, z.core.$strip>;
|
|
15
16
|
export type CreateAccountUserDto = z.infer<typeof CreateAccountUserDtoSchema>;
|
|
16
17
|
export declare const CreateAccountUserResponseSchema: z.ZodObject<{
|
|
@@ -44,6 +45,7 @@ export type CreateAccountUserResponse = z.infer<typeof CreateAccountUserResponse
|
|
|
44
45
|
export declare const LoginDtoSchema: z.ZodObject<{
|
|
45
46
|
emailOrUsername: z.ZodString;
|
|
46
47
|
password: z.ZodString;
|
|
48
|
+
recaptchaToken: z.ZodString;
|
|
47
49
|
}, z.core.$strip>;
|
|
48
50
|
export type LoginDto = z.infer<typeof LoginDtoSchema>;
|
|
49
51
|
export declare const LoginResponseSchema: z.ZodObject<{
|
|
@@ -36,6 +36,9 @@ exports.CreateAccountUserDtoSchema = zod_1.z.object({
|
|
|
36
36
|
.optional()
|
|
37
37
|
.transform((val) => (val ? new Date(val) : undefined)),
|
|
38
38
|
}),
|
|
39
|
+
recaptchaToken: zod_1.z
|
|
40
|
+
.string()
|
|
41
|
+
.min(1, 'reCAPTCHA token is required'),
|
|
39
42
|
});
|
|
40
43
|
exports.CreateAccountUserResponseSchema = zod_1.z.object({
|
|
41
44
|
account: zod_1.z.object({
|
|
@@ -64,6 +67,9 @@ exports.LoginDtoSchema = zod_1.z.object({
|
|
|
64
67
|
.min(1, 'Email or username is required')
|
|
65
68
|
.max(255, 'Email or username must be less than 255 characters'),
|
|
66
69
|
password: zod_1.z.string('Password must be provided'),
|
|
70
|
+
recaptchaToken: zod_1.z
|
|
71
|
+
.string()
|
|
72
|
+
.min(1, 'reCAPTCHA token is required'),
|
|
67
73
|
});
|
|
68
74
|
exports.LoginResponseSchema = zod_1.z.object({
|
|
69
75
|
token: zod_1.z.string(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.dto.js","sourceRoot":"","sources":["../../../src/model/auth.dto.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACxB,mCAAqD;AACrD,uCAA0C;AAE7B,QAAA,0BAA0B,GAAG,OAAC,CAAC,MAAM,CAAC;IACjD,OAAO,EAAE,OAAC,CAAC,MAAM,CAAC;QAChB,IAAI,EAAE,OAAC;aACJ,MAAM,EAAE;aACR,GAAG,CAAC,CAAC,EAAE,0BAA0B,CAAC;aAClC,GAAG,CAAC,GAAG,EAAE,+CAA+C,CAAC;KAC7D,CAAC;IACF,IAAI,EAAE,OAAC,CAAC,MAAM,CAAC;QACb,SAAS,EAAE,OAAC;aACT,MAAM,EAAE;aACR,GAAG,CAAC,CAAC,EAAE,wBAAwB,CAAC;aAChC,GAAG,CAAC,GAAG,EAAE,6CAA6C,CAAC;QAC1D,QAAQ,EAAE,OAAC;aACR,MAAM,EAAE;aACR,GAAG,CAAC,CAAC,EAAE,uBAAuB,CAAC;aAC/B,GAAG,CAAC,GAAG,EAAE,4CAA4C,CAAC;QACzD,KAAK,EAAE,OAAC;aACL,KAAK,CAAC,sBAAsB,CAAC;aAC7B,GAAG,CAAC,GAAG,EAAE,wCAAwC,CAAC;QACrD,QAAQ,EAAE,OAAC;aACR,MAAM,EAAE;aACR,GAAG,CAAC,CAAC,EAAE,sBAAsB,CAAC;aAC9B,GAAG,CAAC,GAAG,EAAE,2CAA2C,CAAC;QACxD,QAAQ,EAAE,OAAC;aACR,MAAM,EAAE;aACR,GAAG,CAAC,CAAC,EAAE,wCAAwC,CAAC;aAChD,GAAG,CAAC,GAAG,EAAE,2CAA2C,CAAC;QACxD,SAAS,EAAE,OAAC;aACT,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;KACzD,CAAC;
|
|
1
|
+
{"version":3,"file":"auth.dto.js","sourceRoot":"","sources":["../../../src/model/auth.dto.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,7 +18,10 @@ exports.UserDtoSchema = zod_1.z.object({
|
|
|
18
18
|
exports.CreateChildUserDtoSchema = zod_1.z.object({
|
|
19
19
|
firstName: zod_1.z.string().min(1, 'First name is required'),
|
|
20
20
|
lastName: zod_1.z.string().min(1, 'Last name is required'),
|
|
21
|
-
username: zod_1.z
|
|
21
|
+
username: zod_1.z
|
|
22
|
+
.string()
|
|
23
|
+
.min(3, 'Username must be at least 3 characters')
|
|
24
|
+
.regex(/^[a-z0-9]+$/, 'Username must contain only lowercase alphanumeric characters'),
|
|
22
25
|
password: zod_1.z.string().length(4, 'Password must be exactly 4 characters'),
|
|
23
26
|
birthdate: zod_1.z
|
|
24
27
|
.string()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.dto.js","sourceRoot":"","sources":["../../../src/model/user.dto.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACxB,mCAAqD;AACrD,uCAA0C;AAE7B,QAAA,aAAa,GAAG,OAAC,CAAC,MAAM,CAAC;IACpC,EAAE,EAAE,OAAC,CAAC,IAAI,EAAE;IACZ,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE;IACrB,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE;IACpB,KAAK,EAAE,OAAC,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE;IAC3B,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE;IACpB,IAAI,EAAE,IAAA,uBAAa,EAAC,gBAAQ,CAAC;IAC7B,MAAM,EAAE,IAAA,uBAAa,EAAC,wBAAgB,CAAC;IACvC,SAAS,EAAE,OAAC,CAAC,IAAI,EAAE;IACnB,SAAS,EAAE,OAAC,CAAC,IAAI,EAAE;CACpB,CAAC,CAAC;AAIU,QAAA,wBAAwB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC/C,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,wBAAwB,CAAC;IACtD,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,uBAAuB,CAAC;IACpD,QAAQ,EAAE,OAAC,
|
|
1
|
+
{"version":3,"file":"user.dto.js","sourceRoot":"","sources":["../../../src/model/user.dto.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACxB,mCAAqD;AACrD,uCAA0C;AAE7B,QAAA,aAAa,GAAG,OAAC,CAAC,MAAM,CAAC;IACpC,EAAE,EAAE,OAAC,CAAC,IAAI,EAAE;IACZ,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE;IACrB,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE;IACpB,KAAK,EAAE,OAAC,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE;IAC3B,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE;IACpB,IAAI,EAAE,IAAA,uBAAa,EAAC,gBAAQ,CAAC;IAC7B,MAAM,EAAE,IAAA,uBAAa,EAAC,wBAAgB,CAAC;IACvC,SAAS,EAAE,OAAC,CAAC,IAAI,EAAE;IACnB,SAAS,EAAE,OAAC,CAAC,IAAI,EAAE;CACpB,CAAC,CAAC;AAIU,QAAA,wBAAwB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC/C,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,wBAAwB,CAAC;IACtD,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,uBAAuB,CAAC;IACpD,QAAQ,EAAE,OAAC;SACR,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,EAAE,wCAAwC,CAAC;SAChD,KAAK,CAAC,aAAa,EAAE,8DAA8D,CAAC;IACvF,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,uCAAuC,CAAC;IACvE,SAAS,EAAE,OAAC;SACT,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;CACzD,CAAC,CAAC;AAIU,QAAA,qBAAqB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC5C,KAAK,EAAE,OAAC,CAAC,KAAK,CAAC,qBAAa,CAAC;CAC9B,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const account_invitation_dto_1 = require("../model/account-invitation.dto");
|
|
4
|
+
describe('AccountInvitationDto Schemas', () => {
|
|
5
|
+
describe('AccountInvitationDtoSchema', () => {
|
|
6
|
+
const validUuid = '550e8400-e29b-41d4-a716-446655440000';
|
|
7
|
+
it('should validate a valid account invitation DTO', () => {
|
|
8
|
+
const validDto = {
|
|
9
|
+
id: validUuid,
|
|
10
|
+
accountUid: validUuid,
|
|
11
|
+
accountName: 'Test Account',
|
|
12
|
+
invitorUid: validUuid,
|
|
13
|
+
createdAt: new Date('2024-01-01'),
|
|
14
|
+
updatedAt: new Date('2024-01-02'),
|
|
15
|
+
};
|
|
16
|
+
const result = account_invitation_dto_1.AccountInvitationDtoSchema.safeParse(validDto);
|
|
17
|
+
expect(result.success).toBe(true);
|
|
18
|
+
if (result.success) {
|
|
19
|
+
expect(result.data.id).toBe(validUuid);
|
|
20
|
+
expect(result.data.accountUid).toBe(validUuid);
|
|
21
|
+
expect(result.data.accountName).toBe('Test Account');
|
|
22
|
+
expect(result.data.invitorUid).toBe(validUuid);
|
|
23
|
+
expect(result.data.createdAt).toEqual(new Date('2024-01-01'));
|
|
24
|
+
expect(result.data.updatedAt).toEqual(new Date('2024-01-02'));
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
it('should reject invalid id UUID', () => {
|
|
28
|
+
const invalidDto = {
|
|
29
|
+
id: 'invalid-uuid',
|
|
30
|
+
accountUid: validUuid,
|
|
31
|
+
accountName: 'Test Account',
|
|
32
|
+
invitorUid: validUuid,
|
|
33
|
+
createdAt: new Date(),
|
|
34
|
+
updatedAt: new Date(),
|
|
35
|
+
};
|
|
36
|
+
const result = account_invitation_dto_1.AccountInvitationDtoSchema.safeParse(invalidDto);
|
|
37
|
+
expect(result.success).toBe(false);
|
|
38
|
+
if (!result.success) {
|
|
39
|
+
expect(result.error.issues[0].path).toEqual(['id']);
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
it('should reject invalid accountUid UUID', () => {
|
|
43
|
+
const invalidDto = {
|
|
44
|
+
id: validUuid,
|
|
45
|
+
accountUid: 'invalid-uuid',
|
|
46
|
+
accountName: 'Test Account',
|
|
47
|
+
invitorUid: validUuid,
|
|
48
|
+
createdAt: new Date(),
|
|
49
|
+
updatedAt: new Date(),
|
|
50
|
+
};
|
|
51
|
+
const result = account_invitation_dto_1.AccountInvitationDtoSchema.safeParse(invalidDto);
|
|
52
|
+
expect(result.success).toBe(false);
|
|
53
|
+
if (!result.success) {
|
|
54
|
+
expect(result.error.issues[0].path).toEqual(['accountUid']);
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
it('should reject invalid invitorUid UUID', () => {
|
|
58
|
+
const invalidDto = {
|
|
59
|
+
id: validUuid,
|
|
60
|
+
accountUid: validUuid,
|
|
61
|
+
accountName: 'Test Account',
|
|
62
|
+
invitorUid: 'invalid-uuid',
|
|
63
|
+
createdAt: new Date(),
|
|
64
|
+
updatedAt: new Date(),
|
|
65
|
+
};
|
|
66
|
+
const result = account_invitation_dto_1.AccountInvitationDtoSchema.safeParse(invalidDto);
|
|
67
|
+
expect(result.success).toBe(false);
|
|
68
|
+
if (!result.success) {
|
|
69
|
+
expect(result.error.issues[0].path).toEqual(['invitorUid']);
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
it('should reject non-string accountName', () => {
|
|
73
|
+
const invalidDto = {
|
|
74
|
+
id: validUuid,
|
|
75
|
+
accountUid: validUuid,
|
|
76
|
+
accountName: 123,
|
|
77
|
+
invitorUid: validUuid,
|
|
78
|
+
createdAt: new Date(),
|
|
79
|
+
updatedAt: new Date(),
|
|
80
|
+
};
|
|
81
|
+
const result = account_invitation_dto_1.AccountInvitationDtoSchema.safeParse(invalidDto);
|
|
82
|
+
expect(result.success).toBe(false);
|
|
83
|
+
if (!result.success) {
|
|
84
|
+
expect(result.error.issues[0].path).toEqual(['accountName']);
|
|
85
|
+
expect(result.error.issues[0].code).toBe('invalid_type');
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
it('should reject invalid createdAt date', () => {
|
|
89
|
+
const invalidDto = {
|
|
90
|
+
id: validUuid,
|
|
91
|
+
accountUid: validUuid,
|
|
92
|
+
accountName: 'Test Account',
|
|
93
|
+
invitorUid: validUuid,
|
|
94
|
+
createdAt: 'not-a-date',
|
|
95
|
+
updatedAt: new Date(),
|
|
96
|
+
};
|
|
97
|
+
const result = account_invitation_dto_1.AccountInvitationDtoSchema.safeParse(invalidDto);
|
|
98
|
+
expect(result.success).toBe(false);
|
|
99
|
+
if (!result.success) {
|
|
100
|
+
expect(result.error.issues[0].path).toEqual(['createdAt']);
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
it('should reject invalid updatedAt date', () => {
|
|
104
|
+
const invalidDto = {
|
|
105
|
+
id: validUuid,
|
|
106
|
+
accountUid: validUuid,
|
|
107
|
+
accountName: 'Test Account',
|
|
108
|
+
invitorUid: validUuid,
|
|
109
|
+
createdAt: new Date(),
|
|
110
|
+
updatedAt: 'not-a-date',
|
|
111
|
+
};
|
|
112
|
+
const result = account_invitation_dto_1.AccountInvitationDtoSchema.safeParse(invalidDto);
|
|
113
|
+
expect(result.success).toBe(false);
|
|
114
|
+
if (!result.success) {
|
|
115
|
+
expect(result.error.issues[0].path).toEqual(['updatedAt']);
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
it('should reject missing required fields', () => {
|
|
119
|
+
const invalidDto = {};
|
|
120
|
+
const result = account_invitation_dto_1.AccountInvitationDtoSchema.safeParse(invalidDto);
|
|
121
|
+
expect(result.success).toBe(false);
|
|
122
|
+
if (!result.success) {
|
|
123
|
+
expect(result.error.issues.length).toBeGreaterThan(0);
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
});
|
|
127
|
+
describe('AccountInvitationInfoSchema', () => {
|
|
128
|
+
const validUuid = '550e8400-e29b-41d4-a716-446655440000';
|
|
129
|
+
it('should validate a valid account invitation info', () => {
|
|
130
|
+
const validInfo = {
|
|
131
|
+
id: validUuid,
|
|
132
|
+
accountName: 'Test Account',
|
|
133
|
+
invitorUid: validUuid,
|
|
134
|
+
invitorFirstName: 'John',
|
|
135
|
+
invitorLastName: 'Doe',
|
|
136
|
+
};
|
|
137
|
+
const result = account_invitation_dto_1.AccountInvitationInfoSchema.safeParse(validInfo);
|
|
138
|
+
expect(result.success).toBe(true);
|
|
139
|
+
if (result.success) {
|
|
140
|
+
expect(result.data.id).toBe(validUuid);
|
|
141
|
+
expect(result.data.accountName).toBe('Test Account');
|
|
142
|
+
expect(result.data.invitorUid).toBe(validUuid);
|
|
143
|
+
expect(result.data.invitorFirstName).toBe('John');
|
|
144
|
+
expect(result.data.invitorLastName).toBe('Doe');
|
|
145
|
+
}
|
|
146
|
+
});
|
|
147
|
+
it('should reject invalid id UUID', () => {
|
|
148
|
+
const invalidInfo = {
|
|
149
|
+
id: 'invalid-uuid',
|
|
150
|
+
accountName: 'Test Account',
|
|
151
|
+
invitorUid: validUuid,
|
|
152
|
+
invitorFirstName: 'John',
|
|
153
|
+
invitorLastName: 'Doe',
|
|
154
|
+
};
|
|
155
|
+
const result = account_invitation_dto_1.AccountInvitationInfoSchema.safeParse(invalidInfo);
|
|
156
|
+
expect(result.success).toBe(false);
|
|
157
|
+
if (!result.success) {
|
|
158
|
+
expect(result.error.issues[0].path).toEqual(['id']);
|
|
159
|
+
}
|
|
160
|
+
});
|
|
161
|
+
it('should reject invalid invitorUid UUID', () => {
|
|
162
|
+
const invalidInfo = {
|
|
163
|
+
id: validUuid,
|
|
164
|
+
accountName: 'Test Account',
|
|
165
|
+
invitorUid: 'invalid-uuid',
|
|
166
|
+
invitorFirstName: 'John',
|
|
167
|
+
invitorLastName: 'Doe',
|
|
168
|
+
};
|
|
169
|
+
const result = account_invitation_dto_1.AccountInvitationInfoSchema.safeParse(invalidInfo);
|
|
170
|
+
expect(result.success).toBe(false);
|
|
171
|
+
if (!result.success) {
|
|
172
|
+
expect(result.error.issues[0].path).toEqual(['invitorUid']);
|
|
173
|
+
}
|
|
174
|
+
});
|
|
175
|
+
it('should reject non-string accountName', () => {
|
|
176
|
+
const invalidInfo = {
|
|
177
|
+
id: validUuid,
|
|
178
|
+
accountName: 123,
|
|
179
|
+
invitorUid: validUuid,
|
|
180
|
+
invitorFirstName: 'John',
|
|
181
|
+
invitorLastName: 'Doe',
|
|
182
|
+
};
|
|
183
|
+
const result = account_invitation_dto_1.AccountInvitationInfoSchema.safeParse(invalidInfo);
|
|
184
|
+
expect(result.success).toBe(false);
|
|
185
|
+
if (!result.success) {
|
|
186
|
+
expect(result.error.issues[0].path).toEqual(['accountName']);
|
|
187
|
+
expect(result.error.issues[0].code).toBe('invalid_type');
|
|
188
|
+
}
|
|
189
|
+
});
|
|
190
|
+
it('should reject non-string invitorFirstName', () => {
|
|
191
|
+
const invalidInfo = {
|
|
192
|
+
id: validUuid,
|
|
193
|
+
accountName: 'Test Account',
|
|
194
|
+
invitorUid: validUuid,
|
|
195
|
+
invitorFirstName: 123,
|
|
196
|
+
invitorLastName: 'Doe',
|
|
197
|
+
};
|
|
198
|
+
const result = account_invitation_dto_1.AccountInvitationInfoSchema.safeParse(invalidInfo);
|
|
199
|
+
expect(result.success).toBe(false);
|
|
200
|
+
if (!result.success) {
|
|
201
|
+
expect(result.error.issues[0].path).toEqual(['invitorFirstName']);
|
|
202
|
+
expect(result.error.issues[0].code).toBe('invalid_type');
|
|
203
|
+
}
|
|
204
|
+
});
|
|
205
|
+
it('should reject non-string invitorLastName', () => {
|
|
206
|
+
const invalidInfo = {
|
|
207
|
+
id: validUuid,
|
|
208
|
+
accountName: 'Test Account',
|
|
209
|
+
invitorUid: validUuid,
|
|
210
|
+
invitorFirstName: 'John',
|
|
211
|
+
invitorLastName: 456,
|
|
212
|
+
};
|
|
213
|
+
const result = account_invitation_dto_1.AccountInvitationInfoSchema.safeParse(invalidInfo);
|
|
214
|
+
expect(result.success).toBe(false);
|
|
215
|
+
if (!result.success) {
|
|
216
|
+
expect(result.error.issues[0].path).toEqual(['invitorLastName']);
|
|
217
|
+
expect(result.error.issues[0].code).toBe('invalid_type');
|
|
218
|
+
}
|
|
219
|
+
});
|
|
220
|
+
it('should reject missing required fields', () => {
|
|
221
|
+
const invalidInfo = {};
|
|
222
|
+
const result = account_invitation_dto_1.AccountInvitationInfoSchema.safeParse(invalidInfo);
|
|
223
|
+
expect(result.success).toBe(false);
|
|
224
|
+
if (!result.success) {
|
|
225
|
+
expect(result.error.issues.length).toBeGreaterThan(0);
|
|
226
|
+
}
|
|
227
|
+
});
|
|
228
|
+
it('should handle special characters in names', () => {
|
|
229
|
+
const validInfo = {
|
|
230
|
+
id: validUuid,
|
|
231
|
+
accountName: "O'Connor-Smith & Co.",
|
|
232
|
+
invitorUid: validUuid,
|
|
233
|
+
invitorFirstName: "Jean-Pierre",
|
|
234
|
+
invitorLastName: "O'Brien",
|
|
235
|
+
};
|
|
236
|
+
const result = account_invitation_dto_1.AccountInvitationInfoSchema.safeParse(validInfo);
|
|
237
|
+
expect(result.success).toBe(true);
|
|
238
|
+
if (result.success) {
|
|
239
|
+
expect(result.data.accountName).toBe("O'Connor-Smith & Co.");
|
|
240
|
+
expect(result.data.invitorFirstName).toBe("Jean-Pierre");
|
|
241
|
+
expect(result.data.invitorLastName).toBe("O'Brien");
|
|
242
|
+
}
|
|
243
|
+
});
|
|
244
|
+
it('should handle unicode characters in names', () => {
|
|
245
|
+
const validInfo = {
|
|
246
|
+
id: validUuid,
|
|
247
|
+
accountName: '账户名称',
|
|
248
|
+
invitorUid: validUuid,
|
|
249
|
+
invitorFirstName: 'José',
|
|
250
|
+
invitorLastName: 'Müller',
|
|
251
|
+
};
|
|
252
|
+
const result = account_invitation_dto_1.AccountInvitationInfoSchema.safeParse(validInfo);
|
|
253
|
+
expect(result.success).toBe(true);
|
|
254
|
+
if (result.success) {
|
|
255
|
+
expect(result.data.accountName).toBe('账户名称');
|
|
256
|
+
expect(result.data.invitorFirstName).toBe('José');
|
|
257
|
+
expect(result.data.invitorLastName).toBe('Müller');
|
|
258
|
+
}
|
|
259
|
+
});
|
|
260
|
+
});
|
|
261
|
+
});
|
|
262
|
+
//# sourceMappingURL=account-invitation.dto.spec.js.map
|
|
@@ -0,0 +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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"}
|
|
@@ -16,6 +16,7 @@ describe('AuthDto Schemas', () => {
|
|
|
16
16
|
password: 'password123',
|
|
17
17
|
birthdate: '1990-01-01',
|
|
18
18
|
},
|
|
19
|
+
recaptchaToken: 'test-recaptcha-token-123',
|
|
19
20
|
};
|
|
20
21
|
it('should validate a valid create account user DTO', () => {
|
|
21
22
|
const result = auth_dto_1.CreateAccountUserDtoSchema.safeParse(validCreateAccountUserDto);
|
|
@@ -36,6 +37,7 @@ describe('AuthDto Schemas', () => {
|
|
|
36
37
|
username: 'johndoe',
|
|
37
38
|
password: 'password123',
|
|
38
39
|
},
|
|
40
|
+
recaptchaToken: 'test-recaptcha-token-123',
|
|
39
41
|
};
|
|
40
42
|
const result = auth_dto_1.CreateAccountUserDtoSchema.safeParse(dtoWithoutBirthdate);
|
|
41
43
|
expect(result.success).toBe(true);
|
|
@@ -188,6 +190,7 @@ describe('AuthDto Schemas', () => {
|
|
|
188
190
|
password: 'password123',
|
|
189
191
|
birthdate: '1990-01-01',
|
|
190
192
|
},
|
|
193
|
+
recaptchaToken: 'test-recaptcha-token-123',
|
|
191
194
|
};
|
|
192
195
|
const result = auth_dto_1.CreateAccountUserDtoSchema.safeParse(specialCharDto);
|
|
193
196
|
expect(result.success).toBe(true);
|
|
@@ -197,6 +200,35 @@ describe('AuthDto Schemas', () => {
|
|
|
197
200
|
expect(result.data.user.lastName).toBe("O'Connor-Smith");
|
|
198
201
|
}
|
|
199
202
|
});
|
|
203
|
+
it('should reject missing recaptchaToken', () => {
|
|
204
|
+
const invalidDto = {
|
|
205
|
+
account: {
|
|
206
|
+
name: 'Test Account',
|
|
207
|
+
},
|
|
208
|
+
user: {
|
|
209
|
+
firstName: 'John',
|
|
210
|
+
lastName: 'Doe',
|
|
211
|
+
email: 'john.doe@example.com',
|
|
212
|
+
username: 'johndoe',
|
|
213
|
+
password: 'password123',
|
|
214
|
+
},
|
|
215
|
+
};
|
|
216
|
+
const result = auth_dto_1.CreateAccountUserDtoSchema.safeParse(invalidDto);
|
|
217
|
+
expect(result.success).toBe(false);
|
|
218
|
+
if (!result.success) {
|
|
219
|
+
expect(result.error.issues[0].path).toEqual(['recaptchaToken']);
|
|
220
|
+
expect(result.error.issues[0].code).toBe('invalid_type');
|
|
221
|
+
}
|
|
222
|
+
});
|
|
223
|
+
it('should reject empty recaptchaToken', () => {
|
|
224
|
+
const invalidDto = Object.assign(Object.assign({}, validCreateAccountUserDto), { recaptchaToken: '' });
|
|
225
|
+
const result = auth_dto_1.CreateAccountUserDtoSchema.safeParse(invalidDto);
|
|
226
|
+
expect(result.success).toBe(false);
|
|
227
|
+
if (!result.success) {
|
|
228
|
+
expect(result.error.issues[0].path).toEqual(['recaptchaToken']);
|
|
229
|
+
expect(result.error.issues[0].message).toBe('reCAPTCHA token is required');
|
|
230
|
+
}
|
|
231
|
+
});
|
|
200
232
|
});
|
|
201
233
|
describe('CreateAccountUserResponseSchema', () => {
|
|
202
234
|
const validResponse = {
|
|
@@ -281,6 +313,7 @@ describe('AuthDto Schemas', () => {
|
|
|
281
313
|
const validLoginDto = {
|
|
282
314
|
emailOrUsername: 'john.doe@example.com',
|
|
283
315
|
password: 'password123',
|
|
316
|
+
recaptchaToken: 'test-recaptcha-token-123',
|
|
284
317
|
};
|
|
285
318
|
it('should validate a valid login DTO', () => {
|
|
286
319
|
const result = auth_dto_1.LoginDtoSchema.safeParse(validLoginDto);
|
|
@@ -290,7 +323,11 @@ describe('AuthDto Schemas', () => {
|
|
|
290
323
|
}
|
|
291
324
|
});
|
|
292
325
|
it('should accept any string as emailOrUsername', () => {
|
|
293
|
-
const dtoWithUsername =
|
|
326
|
+
const dtoWithUsername = {
|
|
327
|
+
emailOrUsername: 'invalid-email',
|
|
328
|
+
password: 'password123',
|
|
329
|
+
recaptchaToken: 'test-recaptcha-token-123',
|
|
330
|
+
};
|
|
294
331
|
const result = auth_dto_1.LoginDtoSchema.safeParse(dtoWithUsername);
|
|
295
332
|
expect(result.success).toBe(true);
|
|
296
333
|
if (result.success) {
|
|
@@ -300,6 +337,7 @@ describe('AuthDto Schemas', () => {
|
|
|
300
337
|
it('should reject missing emailOrUsername', () => {
|
|
301
338
|
const invalidDto = {
|
|
302
339
|
password: 'password123',
|
|
340
|
+
recaptchaToken: 'test-recaptcha-token-123',
|
|
303
341
|
};
|
|
304
342
|
const result = auth_dto_1.LoginDtoSchema.safeParse(invalidDto);
|
|
305
343
|
expect(result.success).toBe(false);
|
|
@@ -311,6 +349,7 @@ describe('AuthDto Schemas', () => {
|
|
|
311
349
|
it('should reject missing password', () => {
|
|
312
350
|
const invalidDto = {
|
|
313
351
|
emailOrUsername: 'john.doe@example.com',
|
|
352
|
+
recaptchaToken: 'test-recaptcha-token-123',
|
|
314
353
|
};
|
|
315
354
|
const result = auth_dto_1.LoginDtoSchema.safeParse(invalidDto);
|
|
316
355
|
expect(result.success).toBe(false);
|
|
@@ -323,6 +362,7 @@ describe('AuthDto Schemas', () => {
|
|
|
323
362
|
const dtoWithEmptyPassword = {
|
|
324
363
|
emailOrUsername: 'john.doe@example.com',
|
|
325
364
|
password: '',
|
|
365
|
+
recaptchaToken: 'test-recaptcha-token-123',
|
|
326
366
|
};
|
|
327
367
|
const result = auth_dto_1.LoginDtoSchema.safeParse(dtoWithEmptyPassword);
|
|
328
368
|
expect(result.success).toBe(true);
|
|
@@ -334,6 +374,7 @@ describe('AuthDto Schemas', () => {
|
|
|
334
374
|
const specialEmailDto = {
|
|
335
375
|
emailOrUsername: 'josé.óconnor+test@example.com',
|
|
336
376
|
password: 'password123',
|
|
377
|
+
recaptchaToken: 'test-recaptcha-token-123',
|
|
337
378
|
};
|
|
338
379
|
const result = auth_dto_1.LoginDtoSchema.safeParse(specialEmailDto);
|
|
339
380
|
expect(result.success).toBe(true);
|
|
@@ -341,6 +382,27 @@ describe('AuthDto Schemas', () => {
|
|
|
341
382
|
expect(result.data.emailOrUsername).toBe('josé.óconnor+test@example.com');
|
|
342
383
|
}
|
|
343
384
|
});
|
|
385
|
+
it('should reject missing recaptchaToken', () => {
|
|
386
|
+
const invalidDto = {
|
|
387
|
+
emailOrUsername: 'john.doe@example.com',
|
|
388
|
+
password: 'password123',
|
|
389
|
+
};
|
|
390
|
+
const result = auth_dto_1.LoginDtoSchema.safeParse(invalidDto);
|
|
391
|
+
expect(result.success).toBe(false);
|
|
392
|
+
if (!result.success) {
|
|
393
|
+
expect(result.error.issues[0].path).toEqual(['recaptchaToken']);
|
|
394
|
+
expect(result.error.issues[0].code).toBe('invalid_type');
|
|
395
|
+
}
|
|
396
|
+
});
|
|
397
|
+
it('should reject empty recaptchaToken', () => {
|
|
398
|
+
const invalidDto = Object.assign(Object.assign({}, validLoginDto), { recaptchaToken: '' });
|
|
399
|
+
const result = auth_dto_1.LoginDtoSchema.safeParse(invalidDto);
|
|
400
|
+
expect(result.success).toBe(false);
|
|
401
|
+
if (!result.success) {
|
|
402
|
+
expect(result.error.issues[0].path).toEqual(['recaptchaToken']);
|
|
403
|
+
expect(result.error.issues[0].message).toBe('reCAPTCHA token is required');
|
|
404
|
+
}
|
|
405
|
+
});
|
|
344
406
|
});
|
|
345
407
|
describe('LoginResponseSchema', () => {
|
|
346
408
|
const validLoginResponse = {
|