fix(core): Improve validator error messages for name and label fields (#31391)

This commit is contained in:
Charlie Kolb 2026-06-03 08:41:25 +02:00 committed by GitHub
parent 0a3d04faa2
commit 24f27ed559
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 14 additions and 8 deletions

View File

@ -11,6 +11,8 @@ const xssCheck = (value: string) =>
});
export class UpdateApiKeyRequestDto extends Z.class({
label: z.string().max(50).min(1).refine(xssCheck),
label: z.string().max(50).min(1).refine(xssCheck, {
message: 'Label can only contain letters, numbers, spaces and punctuation',
}),
scopes: scopesSchema,
}) {}

View File

@ -18,10 +18,10 @@ const nameSchema = () =>
.min(1)
.max(32)
.refine(xssCheck, {
message: 'Potentially malicious string',
message: 'Name can only contain letters, numbers, spaces and punctuation',
})
.refine(urlCheck, {
message: 'Potentially malicious string',
message: 'Name cannot contain a URL',
});
export class UserUpdateRequestDto extends Z.class({

View File

@ -20,7 +20,7 @@ describe('NoUrl', () => {
expect(errors).toHaveLength(1);
const [error] = errors;
expect(error.property).toEqual('name');
expect(error.constraints).toEqual({ NoUrl: 'Potentially malicious string' });
expect(error.constraints).toEqual({ NoUrl: 'URLs are not allowed' });
});
}
});

View File

@ -30,7 +30,9 @@ describe('NoXss', () => {
expect(errors).toHaveLength(1);
const [error] = errors;
expect(error.property).toEqual('name');
expect(error.constraints).toEqual({ NoXss: 'Potentially malicious string' });
expect(error.constraints).toEqual({
NoXss: 'Only letters, numbers, spaces and punctuation are allowed',
});
});
}
});
@ -111,7 +113,9 @@ describe('NoXss', () => {
expect(errors).toHaveLength(1);
const [error] = errors;
expect(error.property).toEqual('categories');
expect(error.constraints).toEqual({ NoXss: 'Potentially malicious string' });
expect(error.constraints).toEqual({
NoXss: 'Only letters, numbers, spaces and punctuation are allowed',
});
});
}
});

View File

@ -10,7 +10,7 @@ class NoUrlConstraint implements ValidatorConstraintInterface {
}
defaultMessage() {
return 'Potentially malicious string';
return 'URLs are not allowed';
}
}

View File

@ -16,7 +16,7 @@ class NoXssConstraint implements ValidatorConstraintInterface {
}
defaultMessage() {
return 'Potentially malicious string';
return 'Only letters, numbers, spaces and punctuation are allowed';
}
}