From 6b280639a8f775f74390a7bf3a00a3b25a6064fc Mon Sep 17 00:00:00 2001 From: JohnDoe6345789 Date: Thu, 25 Dec 2025 19:44:13 +0000 Subject: [PATCH] code: dbal,validate,is (26 files) --- .../core/validation/is-plain-object.test.ts | 15 ---------- .../src/core/validation/is-valid-date.test.ts | 18 ------------ .../core/validation/is-valid-email.test.ts | 21 -------------- .../core/validation/is-valid-level.test.ts | 19 ------------- .../core/validation/is-valid-semver.test.ts | 14 ---------- .../src/core/validation/is-valid-slug.test.ts | 20 ------------- .../core/validation/is-valid-title.test.ts | 18 ------------ .../core/validation/is-valid-username.test.ts | 20 ------------- .../src/core/validation/is-valid-uuid.test.ts | 19 ------------- ...alidate-component-hierarchy-create.test.ts | 27 ------------------ ...alidate-component-hierarchy-update.test.ts | 19 ------------- .../validate-credential-create.test.ts | 24 ---------------- .../validate-credential-update.test.ts | 19 ------------- .../src/core/validation/validate-id.test.ts | 17 ----------- .../validate-lua-script-create.test.ts | 28 ------------------- .../validate-lua-script-update.test.ts | 19 ------------- .../validate-package-create.test.ts | 28 ------------------- .../validate-package-update.test.ts | 20 ------------- .../validation/validate-page-create.test.ts | 27 ------------------ .../validation/validate-page-update.test.ts | 19 ------------- .../validate-session-create.test.ts | 24 ---------------- .../validate-session-update.test.ts | 19 ------------- .../validation/validate-user-create.test.ts | 20 ------------- .../validation/validate-user-update.test.ts | 19 ------------- .../validate-workflow-create.test.ts | 28 ------------------- .../validate-workflow-update.test.ts | 19 ------------- 26 files changed, 540 deletions(-) delete mode 100644 dbal/ts/src/core/validation/is-plain-object.test.ts delete mode 100644 dbal/ts/src/core/validation/is-valid-date.test.ts delete mode 100644 dbal/ts/src/core/validation/is-valid-email.test.ts delete mode 100644 dbal/ts/src/core/validation/is-valid-level.test.ts delete mode 100644 dbal/ts/src/core/validation/is-valid-semver.test.ts delete mode 100644 dbal/ts/src/core/validation/is-valid-slug.test.ts delete mode 100644 dbal/ts/src/core/validation/is-valid-title.test.ts delete mode 100644 dbal/ts/src/core/validation/is-valid-username.test.ts delete mode 100644 dbal/ts/src/core/validation/is-valid-uuid.test.ts delete mode 100644 dbal/ts/src/core/validation/validate-component-hierarchy-create.test.ts delete mode 100644 dbal/ts/src/core/validation/validate-component-hierarchy-update.test.ts delete mode 100644 dbal/ts/src/core/validation/validate-credential-create.test.ts delete mode 100644 dbal/ts/src/core/validation/validate-credential-update.test.ts delete mode 100644 dbal/ts/src/core/validation/validate-id.test.ts delete mode 100644 dbal/ts/src/core/validation/validate-lua-script-create.test.ts delete mode 100644 dbal/ts/src/core/validation/validate-lua-script-update.test.ts delete mode 100644 dbal/ts/src/core/validation/validate-package-create.test.ts delete mode 100644 dbal/ts/src/core/validation/validate-package-update.test.ts delete mode 100644 dbal/ts/src/core/validation/validate-page-create.test.ts delete mode 100644 dbal/ts/src/core/validation/validate-page-update.test.ts delete mode 100644 dbal/ts/src/core/validation/validate-session-create.test.ts delete mode 100644 dbal/ts/src/core/validation/validate-session-update.test.ts delete mode 100644 dbal/ts/src/core/validation/validate-user-create.test.ts delete mode 100644 dbal/ts/src/core/validation/validate-user-update.test.ts delete mode 100644 dbal/ts/src/core/validation/validate-workflow-create.test.ts delete mode 100644 dbal/ts/src/core/validation/validate-workflow-update.test.ts diff --git a/dbal/ts/src/core/validation/is-plain-object.test.ts b/dbal/ts/src/core/validation/is-plain-object.test.ts deleted file mode 100644 index 5049f8b20..000000000 --- a/dbal/ts/src/core/validation/is-plain-object.test.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { describe, expect, it } from 'vitest' -import { isPlainObject } from './is-plain-object' - -describe('isPlainObject', () => { - it.each([ - { value: {}, expected: true }, - { value: { key: 'value' }, expected: true }, - { value: [], expected: false }, - { value: null, expected: false }, - { value: 'string', expected: false }, - { value: 123, expected: false }, - ])('returns $expected for %s', ({ value, expected }) => { - expect(isPlainObject(value)).toBe(expected) - }) -}) diff --git a/dbal/ts/src/core/validation/is-valid-date.test.ts b/dbal/ts/src/core/validation/is-valid-date.test.ts deleted file mode 100644 index acc1b7503..000000000 --- a/dbal/ts/src/core/validation/is-valid-date.test.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { describe, expect, it } from 'vitest' -import { isValidDate } from './is-valid-date' - -describe('isValidDate', () => { - const validDate = new Date('2024-01-01T00:00:00Z') - const invalidDate = new Date('invalid') - - it.each([ - { value: validDate, expected: true }, - { value: '2024-01-01T00:00:00Z', expected: true }, - { value: 1704067200000, expected: true }, - { value: invalidDate, expected: false }, - { value: 'not-a-date', expected: false }, - { value: {}, expected: false }, - ])('returns $expected for %s', ({ value, expected }) => { - expect(isValidDate(value)).toBe(expected) - }) -}) diff --git a/dbal/ts/src/core/validation/is-valid-email.test.ts b/dbal/ts/src/core/validation/is-valid-email.test.ts deleted file mode 100644 index 7a9536e84..000000000 --- a/dbal/ts/src/core/validation/is-valid-email.test.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { describe, expect, it } from 'vitest' -import { isValidEmail } from './is-valid-email' - -describe('isValidEmail', () => { - const longEmail = `${'a'.repeat(250)}@example.com` - - it.each([ - { email: 'user@example.com' }, - { email: 'first.last+tag@sub.domain.com' }, - ])('accepts $email', ({ email }) => { - expect(isValidEmail(email)).toBe(true) - }) - - it.each([ - { email: 'invalid-email' }, - { email: 'missing-at.example.com' }, - { email: longEmail }, - ])('rejects $email', ({ email }) => { - expect(isValidEmail(email)).toBe(false) - }) -}) diff --git a/dbal/ts/src/core/validation/is-valid-level.test.ts b/dbal/ts/src/core/validation/is-valid-level.test.ts deleted file mode 100644 index f5b26e8e3..000000000 --- a/dbal/ts/src/core/validation/is-valid-level.test.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { describe, expect, it } from 'vitest' -import { isValidLevel } from './is-valid-level' - -describe('isValidLevel', () => { - it.each([ - { level: 1 }, - { level: 5 }, - ])('accepts level $level', ({ level }) => { - expect(isValidLevel(level)).toBe(true) - }) - - it.each([ - { level: 0 }, - { level: 6 }, - { level: 2.5 }, - ])('rejects level $level', ({ level }) => { - expect(isValidLevel(level)).toBe(false) - }) -}) diff --git a/dbal/ts/src/core/validation/is-valid-semver.test.ts b/dbal/ts/src/core/validation/is-valid-semver.test.ts deleted file mode 100644 index d0bc6dbc1..000000000 --- a/dbal/ts/src/core/validation/is-valid-semver.test.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { describe, expect, it } from 'vitest' -import { isValidSemver } from './is-valid-semver' - -describe('isValidSemver', () => { - it.each([ - { version: '1.0.0', expected: true }, - { version: '0.10.2', expected: true }, - { version: '1.0', expected: false }, - { version: '1.0.0-beta', expected: false }, - { version: 'v1.0.0', expected: false }, - ])('returns $expected for $version', ({ version, expected }) => { - expect(isValidSemver(version)).toBe(expected) - }) -}) diff --git a/dbal/ts/src/core/validation/is-valid-slug.test.ts b/dbal/ts/src/core/validation/is-valid-slug.test.ts deleted file mode 100644 index 358fc4455..000000000 --- a/dbal/ts/src/core/validation/is-valid-slug.test.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { describe, expect, it } from 'vitest' -import { isValidSlug } from './is-valid-slug' - -describe('isValidSlug', () => { - it.each([ - { slug: 'home' }, - { slug: 'docs/getting-started' }, - { slug: 'a-b/c' }, - ])('accepts $slug', ({ slug }) => { - expect(isValidSlug(slug)).toBe(true) - }) - - it.each([ - { slug: 'Home' }, - { slug: 'has spaces' }, - { slug: 'a'.repeat(256) }, - ])('rejects $slug', ({ slug }) => { - expect(isValidSlug(slug)).toBe(false) - }) -}) diff --git a/dbal/ts/src/core/validation/is-valid-title.test.ts b/dbal/ts/src/core/validation/is-valid-title.test.ts deleted file mode 100644 index 13d9883ba..000000000 --- a/dbal/ts/src/core/validation/is-valid-title.test.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { describe, expect, it } from 'vitest' -import { isValidTitle } from './is-valid-title' - -describe('isValidTitle', () => { - it.each([ - { title: 'Welcome' }, - { title: 'a'.repeat(255) }, - ])('accepts title length %s', ({ title }) => { - expect(isValidTitle(title)).toBe(true) - }) - - it.each([ - { title: '' }, - { title: 'a'.repeat(256) }, - ])('rejects title length %s', ({ title }) => { - expect(isValidTitle(title)).toBe(false) - }) -}) diff --git a/dbal/ts/src/core/validation/is-valid-username.test.ts b/dbal/ts/src/core/validation/is-valid-username.test.ts deleted file mode 100644 index b530a2796..000000000 --- a/dbal/ts/src/core/validation/is-valid-username.test.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { describe, expect, it } from 'vitest' -import { isValidUsername } from './is-valid-username' - -describe('isValidUsername', () => { - it.each([ - { username: 'user_1' }, - { username: 'abc' }, - { username: 'user-name' }, - ])('accepts $username', ({ username }) => { - expect(isValidUsername(username)).toBe(true) - }) - - it.each([ - { username: 'ab' }, - { username: 'user name' }, - { username: 'a'.repeat(51) }, - ])('rejects $username', ({ username }) => { - expect(isValidUsername(username)).toBe(false) - }) -}) diff --git a/dbal/ts/src/core/validation/is-valid-uuid.test.ts b/dbal/ts/src/core/validation/is-valid-uuid.test.ts deleted file mode 100644 index 292372cbe..000000000 --- a/dbal/ts/src/core/validation/is-valid-uuid.test.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { describe, expect, it } from 'vitest' -import { isValidUuid } from './is-valid-uuid' - -describe('isValidUuid', () => { - it.each([ - { id: '550e8400-e29b-41d4-a716-446655440000' }, - { id: '00000000-0000-0000-0000-000000000000' }, - ])('accepts $id', ({ id }) => { - expect(isValidUuid(id)).toBe(true) - }) - - it.each([ - { id: 'not-a-uuid' }, - { id: '550e8400e29b41d4a716446655440000' }, - { id: '550e8400-e29b-41d4-a716-44665544000' }, - ])('rejects $id', ({ id }) => { - expect(isValidUuid(id)).toBe(false) - }) -}) diff --git a/dbal/ts/src/core/validation/validate-component-hierarchy-create.test.ts b/dbal/ts/src/core/validation/validate-component-hierarchy-create.test.ts deleted file mode 100644 index 1382dfd3d..000000000 --- a/dbal/ts/src/core/validation/validate-component-hierarchy-create.test.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { describe, expect, it } from 'vitest' -import { validateComponentHierarchyCreate } from './validate-component-hierarchy-create' - -describe('validateComponentHierarchyCreate', () => { - const base = { - pageId: '550e8400-e29b-41d4-a716-446655440000', - componentType: 'Hero', - order: 0, - props: { title: 'Hello' }, - } - - it.each([ - { data: base }, - { data: { ...base, parentId: '00000000-0000-0000-0000-000000000000' } }, - ])('accepts %s', ({ data }) => { - expect(validateComponentHierarchyCreate(data)).toEqual([]) - }) - - it.each([ - { data: { ...base, pageId: 'not-a-uuid' }, message: 'pageId must be a valid UUID' }, - { data: { ...base, componentType: 'a'.repeat(101) }, message: 'componentType must be 1-100 characters' }, - { data: { ...base, order: -1 }, message: 'order must be a non-negative integer' }, - { data: { ...base, props: [] }, message: 'props must be an object' }, - ])('rejects %s', ({ data, message }) => { - expect(validateComponentHierarchyCreate(data)).toContain(message) - }) -}) diff --git a/dbal/ts/src/core/validation/validate-component-hierarchy-update.test.ts b/dbal/ts/src/core/validation/validate-component-hierarchy-update.test.ts deleted file mode 100644 index 37d7fdec1..000000000 --- a/dbal/ts/src/core/validation/validate-component-hierarchy-update.test.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { describe, expect, it } from 'vitest' -import { validateComponentHierarchyUpdate } from './validate-component-hierarchy-update' - -describe('validateComponentHierarchyUpdate', () => { - it.each([ - { data: { order: 2 } }, - { data: { componentType: 'Header' } }, - ])('accepts %s', ({ data }) => { - expect(validateComponentHierarchyUpdate(data)).toEqual([]) - }) - - it.each([ - { data: { pageId: 'not-a-uuid' }, message: 'pageId must be a valid UUID' }, - { data: { order: 1.5 }, message: 'order must be a non-negative integer' }, - { data: { props: [] }, message: 'props must be an object' }, - ])('rejects %s', ({ data, message }) => { - expect(validateComponentHierarchyUpdate(data)).toContain(message) - }) -}) diff --git a/dbal/ts/src/core/validation/validate-credential-create.test.ts b/dbal/ts/src/core/validation/validate-credential-create.test.ts deleted file mode 100644 index a35bc0b92..000000000 --- a/dbal/ts/src/core/validation/validate-credential-create.test.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { describe, expect, it } from 'vitest' -import { validateCredentialCreate } from './validate-credential-create' - -describe('validateCredentialCreate', () => { - const base = { - username: 'valid_user', - passwordHash: 'hashed_value', - firstLogin: true, - } - - it.each([ - { data: base }, - ])('accepts %s', ({ data }) => { - expect(validateCredentialCreate(data)).toEqual([]) - }) - - it.each([ - { data: { ...base, username: 'ab' }, message: 'username must be 3-50 characters (alphanumeric, underscore, hyphen)' }, - { data: { ...base, passwordHash: ' ' }, message: 'passwordHash must be a non-empty string' }, - { data: { ...base, firstLogin: 'yes' as unknown as boolean }, message: 'firstLogin must be a boolean' }, - ])('rejects %s', ({ data, message }) => { - expect(validateCredentialCreate(data)).toContain(message) - }) -}) diff --git a/dbal/ts/src/core/validation/validate-credential-update.test.ts b/dbal/ts/src/core/validation/validate-credential-update.test.ts deleted file mode 100644 index de4315b47..000000000 --- a/dbal/ts/src/core/validation/validate-credential-update.test.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { describe, expect, it } from 'vitest' -import { validateCredentialUpdate } from './validate-credential-update' - -describe('validateCredentialUpdate', () => { - it.each([ - { data: { passwordHash: 'new_hash' } }, - { data: { firstLogin: false } }, - ])('accepts %s', ({ data }) => { - expect(validateCredentialUpdate(data)).toEqual([]) - }) - - it.each([ - { data: { username: 'ab' }, message: 'username must be 3-50 characters (alphanumeric, underscore, hyphen)' }, - { data: { passwordHash: '' }, message: 'passwordHash must be a non-empty string' }, - { data: { firstLogin: 'no' as unknown as boolean }, message: 'firstLogin must be a boolean' }, - ])('rejects %s', ({ data, message }) => { - expect(validateCredentialUpdate(data)).toContain(message) - }) -}) diff --git a/dbal/ts/src/core/validation/validate-id.test.ts b/dbal/ts/src/core/validation/validate-id.test.ts deleted file mode 100644 index 1c4b2e700..000000000 --- a/dbal/ts/src/core/validation/validate-id.test.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { describe, expect, it } from 'vitest' -import { validateId } from './validate-id' - -describe('validateId', () => { - it.each([ - { id: '550e8400-e29b-41d4-a716-446655440000', expected: [] }, - ])('accepts valid id $id', ({ id, expected }) => { - expect(validateId(id)).toEqual(expected) - }) - - it.each([ - { id: '', message: 'ID cannot be empty' }, - { id: 'not-a-uuid', message: 'ID must be a valid UUID' }, - ])('rejects invalid id $id', ({ id, message }) => { - expect(validateId(id)).toContain(message) - }) -}) diff --git a/dbal/ts/src/core/validation/validate-lua-script-create.test.ts b/dbal/ts/src/core/validation/validate-lua-script-create.test.ts deleted file mode 100644 index 10ecebc41..000000000 --- a/dbal/ts/src/core/validation/validate-lua-script-create.test.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { describe, expect, it } from 'vitest' -import { validateLuaScriptCreate } from './validate-lua-script-create' - -describe('validateLuaScriptCreate', () => { - const base = { - name: 'daily-cleanup', - code: 'return true', - isSandboxed: true, - allowedGlobals: ['math'], - timeoutMs: 5000, - createdBy: '550e8400-e29b-41d4-a716-446655440000', - } - - it.each([ - { data: base }, - ])('accepts %s', ({ data }) => { - expect(validateLuaScriptCreate(data)).toEqual([]) - }) - - it.each([ - { data: { ...base, allowedGlobals: 'math' as unknown as string[] }, message: 'allowedGlobals must be an array of strings' }, - { data: { ...base, allowedGlobals: [''] }, message: 'allowedGlobals must contain non-empty strings' }, - { data: { ...base, timeoutMs: 50 }, message: 'timeoutMs must be an integer between 100 and 30000' }, - { data: { ...base, createdBy: 'invalid' }, message: 'createdBy must be a valid UUID' }, - ])('rejects %s', ({ data, message }) => { - expect(validateLuaScriptCreate(data)).toContain(message) - }) -}) diff --git a/dbal/ts/src/core/validation/validate-lua-script-update.test.ts b/dbal/ts/src/core/validation/validate-lua-script-update.test.ts deleted file mode 100644 index 1b864508c..000000000 --- a/dbal/ts/src/core/validation/validate-lua-script-update.test.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { describe, expect, it } from 'vitest' -import { validateLuaScriptUpdate } from './validate-lua-script-update' - -describe('validateLuaScriptUpdate', () => { - it.each([ - { data: { timeoutMs: 100 } }, - { data: { allowedGlobals: ['math', 'string'] } }, - ])('accepts %s', ({ data }) => { - expect(validateLuaScriptUpdate(data)).toEqual([]) - }) - - it.each([ - { data: { timeoutMs: 10 }, message: 'timeoutMs must be an integer between 100 and 30000' }, - { data: { allowedGlobals: ['ok', 1 as unknown as string] }, message: 'allowedGlobals must contain non-empty strings' }, - { data: { isSandboxed: 'yes' as unknown as boolean }, message: 'isSandboxed must be a boolean' }, - ])('rejects %s', ({ data, message }) => { - expect(validateLuaScriptUpdate(data)).toContain(message) - }) -}) diff --git a/dbal/ts/src/core/validation/validate-package-create.test.ts b/dbal/ts/src/core/validation/validate-package-create.test.ts deleted file mode 100644 index 8d88d1a63..000000000 --- a/dbal/ts/src/core/validation/validate-package-create.test.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { describe, expect, it } from 'vitest' -import { validatePackageCreate } from './validate-package-create' - -describe('validatePackageCreate', () => { - const base = { - name: 'forum', - version: '1.0.0', - author: 'MetaBuilder', - manifest: { dependencies: [] }, - isInstalled: false, - } - - it.each([ - { data: base }, - { data: { ...base, installedAt: '2024-01-01T00:00:00Z' } }, - ])('accepts %s', ({ data }) => { - expect(validatePackageCreate(data)).toEqual([]) - }) - - it.each([ - { data: { ...base, version: '1.0' }, message: 'version must be semantic (x.y.z)' }, - { data: { ...base, manifest: [] }, message: 'manifest must be an object' }, - { data: { ...base, isInstalled: 'no' as unknown as boolean }, message: 'isInstalled must be a boolean' }, - { data: { ...base, installedBy: 'invalid' }, message: 'installedBy must be a valid UUID' }, - ])('rejects %s', ({ data, message }) => { - expect(validatePackageCreate(data)).toContain(message) - }) -}) diff --git a/dbal/ts/src/core/validation/validate-package-update.test.ts b/dbal/ts/src/core/validation/validate-package-update.test.ts deleted file mode 100644 index a6d5dd750..000000000 --- a/dbal/ts/src/core/validation/validate-package-update.test.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { describe, expect, it } from 'vitest' -import { validatePackageUpdate } from './validate-package-update' - -describe('validatePackageUpdate', () => { - it.each([ - { data: { version: '2.0.0' } }, - { data: { isInstalled: true } }, - ])('accepts %s', ({ data }) => { - expect(validatePackageUpdate(data)).toEqual([]) - }) - - it.each([ - { data: { name: '' }, message: 'name must be 1-255 characters' }, - { data: { version: '2.0' }, message: 'version must be semantic (x.y.z)' }, - { data: { manifest: [] }, message: 'manifest must be an object' }, - { data: { installedAt: 'not-a-date' }, message: 'installedAt must be a valid date' }, - ])('rejects %s', ({ data, message }) => { - expect(validatePackageUpdate(data)).toContain(message) - }) -}) diff --git a/dbal/ts/src/core/validation/validate-page-create.test.ts b/dbal/ts/src/core/validation/validate-page-create.test.ts deleted file mode 100644 index 1e74dee44..000000000 --- a/dbal/ts/src/core/validation/validate-page-create.test.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { describe, expect, it } from 'vitest' -import { validatePageCreate } from './validate-page-create' - -describe('validatePageCreate', () => { - const base = { - slug: 'docs/getting-started', - title: 'Docs', - level: 1, - layout: { sections: [] }, - isActive: true, - } - - it.each([ - { data: base }, - ])('accepts %s', ({ data }) => { - expect(validatePageCreate(data)).toEqual([]) - }) - - it.each([ - { data: { ...base, slug: 'Bad Slug' }, message: 'Invalid slug format (lowercase alphanumeric, hyphen, slash, 1-255 chars)' }, - { data: { ...base, level: 0 }, message: 'Invalid level (must be 1-5)' }, - { data: { ...base, layout: [] }, message: 'Layout must be an object' }, - { data: { ...base, isActive: 'yes' as unknown as boolean }, message: 'isActive must be a boolean' }, - ])('rejects %s', ({ data, message }) => { - expect(validatePageCreate(data)).toContain(message) - }) -}) diff --git a/dbal/ts/src/core/validation/validate-page-update.test.ts b/dbal/ts/src/core/validation/validate-page-update.test.ts deleted file mode 100644 index f687faeb6..000000000 --- a/dbal/ts/src/core/validation/validate-page-update.test.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { describe, expect, it } from 'vitest' -import { validatePageUpdate } from './validate-page-update' - -describe('validatePageUpdate', () => { - it.each([ - { data: { title: 'Updated' } }, - { data: { level: 5 } }, - ])('accepts %s', ({ data }) => { - expect(validatePageUpdate(data)).toEqual([]) - }) - - it.each([ - { data: { slug: 'Bad Slug' }, message: 'Invalid slug format (lowercase alphanumeric, hyphen, slash, 1-255 chars)' }, - { data: { layout: [] }, message: 'Layout must be an object' }, - { data: { isActive: 'no' as unknown as boolean }, message: 'isActive must be a boolean' }, - ])('rejects %s', ({ data, message }) => { - expect(validatePageUpdate(data)).toContain(message) - }) -}) diff --git a/dbal/ts/src/core/validation/validate-session-create.test.ts b/dbal/ts/src/core/validation/validate-session-create.test.ts deleted file mode 100644 index 251b1b64b..000000000 --- a/dbal/ts/src/core/validation/validate-session-create.test.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { describe, expect, it } from 'vitest' -import { validateSessionCreate } from './validate-session-create' - -describe('validateSessionCreate', () => { - const base = { - userId: '550e8400-e29b-41d4-a716-446655440000', - token: 'token-value', - expiresAt: new Date('2024-01-01T00:00:00Z'), - } - - it.each([ - { data: base }, - ])('accepts %s', ({ data }) => { - expect(validateSessionCreate(data)).toEqual([]) - }) - - it.each([ - { data: { ...base, userId: 'invalid' }, message: 'userId must be a valid UUID' }, - { data: { ...base, token: ' ' }, message: 'token must be a non-empty string' }, - { data: { ...base, expiresAt: 'not-a-date' }, message: 'expiresAt must be a valid date' }, - ])('rejects %s', ({ data, message }) => { - expect(validateSessionCreate(data)).toContain(message) - }) -}) diff --git a/dbal/ts/src/core/validation/validate-session-update.test.ts b/dbal/ts/src/core/validation/validate-session-update.test.ts deleted file mode 100644 index 1b1430eb7..000000000 --- a/dbal/ts/src/core/validation/validate-session-update.test.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { describe, expect, it } from 'vitest' -import { validateSessionUpdate } from './validate-session-update' - -describe('validateSessionUpdate', () => { - it.each([ - { data: { expiresAt: '2024-01-01T00:00:00Z' } }, - { data: { lastActivity: new Date('2024-01-01T00:00:00Z') } }, - ])('accepts %s', ({ data }) => { - expect(validateSessionUpdate(data)).toEqual([]) - }) - - it.each([ - { data: { userId: 'invalid' }, message: 'userId must be a valid UUID' }, - { data: { token: '' }, message: 'token must be a non-empty string' }, - { data: { lastActivity: 'not-a-date' }, message: 'lastActivity must be a valid date' }, - ])('rejects %s', ({ data, message }) => { - expect(validateSessionUpdate(data)).toContain(message) - }) -}) diff --git a/dbal/ts/src/core/validation/validate-user-create.test.ts b/dbal/ts/src/core/validation/validate-user-create.test.ts deleted file mode 100644 index eef01ad05..000000000 --- a/dbal/ts/src/core/validation/validate-user-create.test.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { describe, expect, it } from 'vitest' -import { validateUserCreate } from './validate-user-create' - -describe('validateUserCreate', () => { - const base = { username: 'valid_user', email: 'user@example.com', role: 'user' as const } - - it.each([ - { data: base }, - ])('accepts %s', ({ data }) => { - expect(validateUserCreate(data)).toEqual([]) - }) - - it.each([ - { data: { ...base, username: 'ab' }, message: 'Invalid username format (alphanumeric, underscore, hyphen only, 3-50 chars)' }, - { data: { ...base, email: 'invalid-email' }, message: 'Invalid email format (max 255 chars)' }, - { data: { ...base, role: 'guest' as unknown as 'user' }, message: 'Invalid role' }, - ])('rejects %s', ({ data, message }) => { - expect(validateUserCreate(data)).toContain(message) - }) -}) diff --git a/dbal/ts/src/core/validation/validate-user-update.test.ts b/dbal/ts/src/core/validation/validate-user-update.test.ts deleted file mode 100644 index d557f712b..000000000 --- a/dbal/ts/src/core/validation/validate-user-update.test.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { describe, expect, it } from 'vitest' -import { validateUserUpdate } from './validate-user-update' - -describe('validateUserUpdate', () => { - it.each([ - { data: { email: 'new@example.com' } }, - { data: { role: 'admin' as const } }, - ])('accepts %s', ({ data }) => { - expect(validateUserUpdate(data)).toEqual([]) - }) - - it.each([ - { data: { username: 'ab' }, message: 'Invalid username format (alphanumeric, underscore, hyphen only, 3-50 chars)' }, - { data: { email: 'invalid-email' }, message: 'Invalid email format (max 255 chars)' }, - { data: { role: 'guest' as unknown as 'user' }, message: 'Invalid role' }, - ])('rejects %s', ({ data, message }) => { - expect(validateUserUpdate(data)).toContain(message) - }) -}) diff --git a/dbal/ts/src/core/validation/validate-workflow-create.test.ts b/dbal/ts/src/core/validation/validate-workflow-create.test.ts deleted file mode 100644 index 1b5288554..000000000 --- a/dbal/ts/src/core/validation/validate-workflow-create.test.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { describe, expect, it } from 'vitest' -import { validateWorkflowCreate } from './validate-workflow-create' - -describe('validateWorkflowCreate', () => { - const base = { - name: 'Daily Sync', - trigger: 'schedule' as const, - triggerConfig: { cron: '0 0 * * *' }, - steps: { nodes: [] }, - isActive: true, - createdBy: '550e8400-e29b-41d4-a716-446655440000', - } - - it.each([ - { data: base }, - ])('accepts %s', ({ data }) => { - expect(validateWorkflowCreate(data)).toEqual([]) - }) - - it.each([ - { data: { ...base, trigger: 'invalid' as unknown as 'manual' }, message: 'trigger must be one of manual, schedule, event, webhook' }, - { data: { ...base, steps: [] }, message: 'steps must be an object' }, - { data: { ...base, createdBy: 'invalid' }, message: 'createdBy must be a valid UUID' }, - { data: { ...base, name: 'a'.repeat(256) }, message: 'name must be 1-255 characters' }, - ])('rejects %s', ({ data, message }) => { - expect(validateWorkflowCreate(data)).toContain(message) - }) -}) diff --git a/dbal/ts/src/core/validation/validate-workflow-update.test.ts b/dbal/ts/src/core/validation/validate-workflow-update.test.ts deleted file mode 100644 index ab9b99ed9..000000000 --- a/dbal/ts/src/core/validation/validate-workflow-update.test.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { describe, expect, it } from 'vitest' -import { validateWorkflowUpdate } from './validate-workflow-update' - -describe('validateWorkflowUpdate', () => { - it.each([ - { data: { name: 'Updated' } }, - { data: { isActive: false } }, - ])('accepts %s', ({ data }) => { - expect(validateWorkflowUpdate(data)).toEqual([]) - }) - - it.each([ - { data: { trigger: 'invalid' as unknown as 'manual' }, message: 'trigger must be one of manual, schedule, event, webhook' }, - { data: { isActive: 'yes' as unknown as boolean }, message: 'isActive must be a boolean' }, - { data: { triggerConfig: [] }, message: 'triggerConfig must be an object' }, - ])('rejects %s', ({ data, message }) => { - expect(validateWorkflowUpdate(data)).toContain(message) - }) -})