diff --git a/dbal/ts/tests/core/validation/validate-credential-create.test.ts b/dbal/ts/tests/core/validation/validate-credential-create.test.ts new file mode 100644 index 000000000..2e576a0b5 --- /dev/null +++ b/dbal/ts/tests/core/validation/validate-credential-create.test.ts @@ -0,0 +1,24 @@ +import { describe, expect, it } from 'vitest' +import { validateCredentialCreate } from '../../../src/core/validation/validate-credential-create' + +describe('validateCredentialCreate', () => { + const base = { + username: 'valid_user', + passwordHash: 'hashed_value', + firstLogin: true, + } + + it.each([ + { data: base, expected: [] }, + ])('returns $expected for valid case', ({ data, expected }) => { + expect(validateCredentialCreate(data)).toEqual(expected) + }) + + 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 invalid case', ({ data, message }) => { + expect(validateCredentialCreate(data)).toContain(message) + }) +}) diff --git a/frontends/nextjs/src/lib/auth/auth.ts b/frontends/nextjs/src/lib/auth/auth.ts index b041b4ad2..57b554ae2 100644 --- a/frontends/nextjs/src/lib/auth/auth.ts +++ b/frontends/nextjs/src/lib/auth/auth.ts @@ -9,5 +9,5 @@ export { getScrambledPassword, DEFAULT_USERS, DEFAULT_CREDENTIALS, -} from './auth/index' +} from './index'