From dafde61e3afdde1cbca653a3b2ebfecf618d3ad3 Mon Sep 17 00:00:00 2001 From: JohnDoe6345789 Date: Thu, 25 Dec 2025 19:32:35 +0000 Subject: [PATCH] code: validate,dbal,user (2 files) --- dbal/ts/src/core/validation/validate-id.ts | 6 ++++ .../validation/validate-user-create.test.ts | 34 +++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 dbal/ts/tests/core/validation/validate-user-create.test.ts diff --git a/dbal/ts/src/core/validation/validate-id.ts b/dbal/ts/src/core/validation/validate-id.ts index 94a231d39..fdabfbd19 100644 --- a/dbal/ts/src/core/validation/validate-id.ts +++ b/dbal/ts/src/core/validation/validate-id.ts @@ -3,6 +3,12 @@ export function validateId(id: string): string[] { if (!id || id.trim().length === 0) { errors.push('ID cannot be empty') + return errors + } + + const uuidPattern = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i + if (!uuidPattern.test(id.trim())) { + errors.push('ID must be a valid UUID') } return errors diff --git a/dbal/ts/tests/core/validation/validate-user-create.test.ts b/dbal/ts/tests/core/validation/validate-user-create.test.ts new file mode 100644 index 000000000..eaf5ca44a --- /dev/null +++ b/dbal/ts/tests/core/validation/validate-user-create.test.ts @@ -0,0 +1,34 @@ +import { describe, it, expect } from 'vitest' +import { validateUserCreate } from '../../../src/core/validation/validate-user-create' + +describe('validateUserCreate', () => { + it.each([ + { + data: {}, + expected: ['Username is required', 'Email is required', 'Role is required'], + description: 'missing required fields', + }, + { + data: { username: 'bad name', email: 'user@example.com', role: 'user' }, + expected: ['Invalid username format (alphanumeric, underscore, hyphen only, 1-50 chars)'], + description: 'invalid username', + }, + { + data: { username: 'user', email: 'invalid', role: 'user' }, + expected: ['Invalid email format'], + description: 'invalid email', + }, + { + data: { username: 'user', email: 'user@example.com', role: 'owner' }, + expected: ['Invalid role'], + description: 'invalid role', + }, + { + data: { username: 'user', email: 'user@example.com', role: 'admin' }, + expected: [], + description: 'valid payload', + }, + ])('returns expected errors for $description', ({ data, expected }) => { + expect(validateUserCreate(data)).toEqual(expected) + }) +})