Files
immich/server/src/dtos/user.dto.spec.ts
T

60 lines
1.6 KiB
TypeScript

import { UserAdminCreateSchema, UserUpdateMeSchema } from 'src/dtos/user.dto';
describe('update user DTO', () => {
it('should allow emails without a tld', () => {
const someEmail = 'test@test';
const result = UserUpdateMeSchema.safeParse({
email: someEmail,
id: '3fe388e4-2078-44d7-b36c-39d9dee3a657',
});
expect(result.success).toBe(true);
expect(result.data?.email).toEqual(someEmail);
});
});
describe('create user DTO', () => {
it('validates the email', () => {
expect(UserAdminCreateSchema.safeParse({ password: 'password', name: 'name' }).success).toBe(false);
expect(
UserAdminCreateSchema.safeParse({ email: 'invalid email', password: 'password', name: 'name' }).success,
).toBe(false);
const result = UserAdminCreateSchema.safeParse({
email: 'valid@email.com',
password: 'password',
name: 'name',
});
expect(result.success).toBe(true);
});
it('validates invalid email type', () => {
expect(
UserAdminCreateSchema.safeParse({
email: [],
password: 'some password',
name: 'some name',
}).success,
).toBe(false);
expect(
UserAdminCreateSchema.safeParse({
email: {},
password: 'some password',
name: 'some name',
}).success,
).toBe(false);
});
it('should allow emails without a tld', () => {
const someEmail = 'test@test';
const result = UserAdminCreateSchema.safeParse({
email: someEmail,
password: 'some password',
name: 'some name',
});
expect(result.success).toBe(true);
expect(result.data?.email).toEqual(someEmail);
});
});