feat(core): Add description to projects (#15611)

This commit is contained in:
Daria
2025-06-12 13:57:23 +03:00
committed by GitHub
parent 46723d3518
commit 1ddbb78909
22 changed files with 235 additions and 35 deletions

View File

@@ -2,6 +2,7 @@ import { z } from 'zod';
import { Z } from 'zod-class';
import {
projectDescriptionSchema,
projectIconSchema,
projectNameSchema,
projectRelationSchema,
@@ -10,5 +11,6 @@ import {
export class UpdateProjectDto extends Z.class({
name: projectNameSchema.optional(),
icon: projectIconSchema.optional(),
description: projectDescriptionSchema.optional(),
relations: z.array(projectRelationSchema).optional(),
}) {}

View File

@@ -2,6 +2,7 @@ import {
projectNameSchema,
projectTypeSchema,
projectIconSchema,
projectDescriptionSchema,
projectRelationSchema,
} from '../project.schema';
@@ -56,6 +57,17 @@ describe('project.schema', () => {
});
});
describe('projectDescriptionSchema', () => {
test.each([
{ description: 'valid description', value: 'Nice Description', expected: true },
{ description: 'empty description', value: '', expected: true },
{ description: 'name too long', value: 'a'.repeat(513), expected: false },
])('should validate $description', ({ value, expected }) => {
const result = projectDescriptionSchema.safeParse(value);
expect(result.success).toBe(expected);
});
});
describe('projectRelationSchema', () => {
test.each([
{

View File

@@ -12,6 +12,8 @@ export const projectIconSchema = z.object({
});
export type ProjectIcon = z.infer<typeof projectIconSchema>;
export const projectDescriptionSchema = z.string().max(512);
export const projectRelationSchema = z.object({
userId: z.string().min(1),
role: projectRoleSchema.exclude(['project:personalOwner']),