UNPKG

hey-api-builders

Version:

A custom plugin for @hey-api/openapi-ts that generates mock data builders with a lightweight custom runtime, Zod integration, or static mock generation.

90 lines 5.19 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const vitest_1 = require("vitest"); const string_utils_1 = require("./string-utils"); (0, vitest_1.describe)('String Utils', () => { (0, vitest_1.describe)('toPascal', () => { (0, vitest_1.it)('converts snake_case to PascalCase', () => { (0, vitest_1.expect)((0, string_utils_1.toPascal)('hello_world')).toBe('HelloWorld'); }); (0, vitest_1.it)('converts kebab-case to PascalCase', () => { (0, vitest_1.expect)((0, string_utils_1.toPascal)('hello-world')).toBe('HelloWorld'); }); (0, vitest_1.it)('converts space separated to PascalCase', () => { (0, vitest_1.expect)((0, string_utils_1.toPascal)('hello world')).toBe('HelloWorld'); }); (0, vitest_1.it)('handles already PascalCase strings', () => { (0, vitest_1.expect)((0, string_utils_1.toPascal)('HelloWorld')).toBe('HelloWorld'); }); (0, vitest_1.it)('handles camelCase strings', () => { (0, vitest_1.expect)((0, string_utils_1.toPascal)('helloWorld')).toBe('HelloWorld'); }); (0, vitest_1.it)('handles single words', () => { (0, vitest_1.expect)((0, string_utils_1.toPascal)('hello')).toBe('Hello'); }); (0, vitest_1.it)('handles numbers in strings', () => { (0, vitest_1.expect)((0, string_utils_1.toPascal)('hello_world_123')).toBe('HelloWorld123'); }); }); (0, vitest_1.describe)('safeTypeName', () => { (0, vitest_1.it)('removes invalid characters', () => { (0, vitest_1.expect)((0, string_utils_1.safeTypeName)('Hello-World!')).toBe('Hello_World_'); }); (0, vitest_1.it)('keeps valid characters', () => { (0, vitest_1.expect)((0, string_utils_1.safeTypeName)('HelloWorld123')).toBe('HelloWorld123'); }); (0, vitest_1.it)('handles underscores', () => { (0, vitest_1.expect)((0, string_utils_1.safeTypeName)('Hello_World')).toBe('Hello_World'); }); (0, vitest_1.it)('replaces special characters with underscores', () => { (0, vitest_1.expect)((0, string_utils_1.safeTypeName)('Hello@World#123')).toBe('Hello_World_123'); }); }); (0, vitest_1.describe)('normalizeTypeName', () => { (0, vitest_1.it)('normalizes UI prefix', () => { (0, vitest_1.expect)((0, string_utils_1.normalizeTypeName)('UITheme')).toBe('UiTheme'); }); (0, vitest_1.it)('normalizes API prefix', () => { (0, vitest_1.expect)((0, string_utils_1.normalizeTypeName)('APIKey')).toBe('ApiKey'); }); (0, vitest_1.it)('normalizes HTTP prefix', () => { (0, vitest_1.expect)((0, string_utils_1.normalizeTypeName)('HTTPResponse')).toBe('HttpResponse'); }); (0, vitest_1.it)('normalizes URL prefix', () => { (0, vitest_1.expect)((0, string_utils_1.normalizeTypeName)('URLConfig')).toBe('UrlConfig'); }); (0, vitest_1.it)('normalizes ID prefix', () => { (0, vitest_1.expect)((0, string_utils_1.normalizeTypeName)('IDType')).toBe('IdType'); }); (0, vitest_1.it)('does not change non-prefixed names', () => { (0, vitest_1.expect)((0, string_utils_1.normalizeTypeName)('UserType')).toBe('UserType'); }); (0, vitest_1.it)('handles multiple normalizations', () => { (0, vitest_1.expect)((0, string_utils_1.normalizeTypeName)('UIAPIConfig')).toBe('UiAPIConfig'); }); }); (0, vitest_1.describe)('isValidIdentifier', () => { (0, vitest_1.it)('returns true for valid identifiers', () => { (0, vitest_1.expect)((0, string_utils_1.isValidIdentifier)('validName')).toBe(true); (0, vitest_1.expect)((0, string_utils_1.isValidIdentifier)('_private')).toBe(true); (0, vitest_1.expect)((0, string_utils_1.isValidIdentifier)('name123')).toBe(true); }); (0, vitest_1.it)('returns false for invalid identifiers', () => { (0, vitest_1.expect)((0, string_utils_1.isValidIdentifier)('123name')).toBe(false); (0, vitest_1.expect)((0, string_utils_1.isValidIdentifier)('na-me')).toBe(false); (0, vitest_1.expect)((0, string_utils_1.isValidIdentifier)('na me')).toBe(false); (0, vitest_1.expect)((0, string_utils_1.isValidIdentifier)('na.me')).toBe(false); }); }); (0, vitest_1.describe)('safePropName', () => { (0, vitest_1.it)('returns unquoted name for valid identifiers', () => { (0, vitest_1.expect)((0, string_utils_1.safePropName)('validName')).toBe('validName'); }); (0, vitest_1.it)('returns quoted name for invalid identifiers', () => { (0, vitest_1.expect)((0, string_utils_1.safePropName)('invalid-name')).toBe('"invalid-name"'); (0, vitest_1.expect)((0, string_utils_1.safePropName)('123invalid')).toBe('"123invalid"'); (0, vitest_1.expect)((0, string_utils_1.safePropName)('invalid.name')).toBe('"invalid.name"'); }); }); }); //# sourceMappingURL=string-utils.test.js.map