@beparallel/langchain-ts
Version:
Extracts Langchain prompts and generates TypeScript types.
88 lines (87 loc) • 4.14 kB
JavaScript
import { toCamelCase, toPascalCase, toUpperCase } from './case.js';
describe('Case Conversion Functions', () => {
describe('toCamelCase', () => {
test('converts space-separated words to camelCase', () => {
expect(toCamelCase('hello world')).toBe('helloWorld');
expect(toCamelCase('foo bar baz')).toBe('fooBarBaz');
});
test('converts hyphen-separated words to camelCase', () => {
expect(toCamelCase('hello-world')).toBe('helloWorld');
expect(toCamelCase('foo-bar-baz')).toBe('fooBarBaz');
});
test('converts underscore-separated words to camelCase', () => {
expect(toCamelCase('hello_world')).toBe('helloWorld');
expect(toCamelCase('foo_bar_baz')).toBe('fooBarBaz');
});
test('converts mixed separators to camelCase', () => {
expect(toCamelCase('hello-world_test case')).toBe('helloWorldTestCase');
});
test('handles single words', () => {
expect(toCamelCase('hello')).toBe('hello');
expect(toCamelCase('HELLO')).toBe('hello');
});
test('handles empty and whitespace strings', () => {
expect(toCamelCase('')).toBe('');
expect(toCamelCase(' ')).toBe('');
});
test('trims leading and trailing whitespace', () => {
expect(toCamelCase(' hello world ')).toBe('helloWorld');
});
});
describe('toPascalCase', () => {
test('converts space-separated words to PascalCase', () => {
expect(toPascalCase('hello world')).toBe('HelloWorld');
expect(toPascalCase('foo bar baz')).toBe('FooBarBaz');
});
test('converts hyphen-separated words to PascalCase', () => {
expect(toPascalCase('hello-world')).toBe('HelloWorld');
expect(toPascalCase('foo-bar-baz')).toBe('FooBarBaz');
});
test('converts underscore-separated words to PascalCase', () => {
expect(toPascalCase('hello_world')).toBe('HelloWorld');
expect(toPascalCase('foo_bar_baz')).toBe('FooBarBaz');
});
test('converts mixed separators to PascalCase', () => {
expect(toPascalCase('hello-world_test case')).toBe('HelloWorldTestCase');
});
test('handles single words', () => {
expect(toPascalCase('hello')).toBe('Hello');
expect(toPascalCase('HELLO')).toBe('Hello');
});
test('handles empty and whitespace strings', () => {
expect(toPascalCase('')).toBe('');
expect(toPascalCase(' ')).toBe('');
});
test('trims leading and trailing whitespace', () => {
expect(toPascalCase(' hello world ')).toBe('HelloWorld');
});
});
describe('toUpperCase', () => {
test('converts space-separated words to UPPER_CASE', () => {
expect(toUpperCase('hello world')).toBe('HELLO_WORLD');
expect(toUpperCase('foo bar baz')).toBe('FOO_BAR_BAZ');
});
test('converts hyphen-separated words to UPPER_CASE', () => {
expect(toUpperCase('hello-world')).toBe('HELLO_WORLD');
expect(toUpperCase('foo-bar-baz')).toBe('FOO_BAR_BAZ');
});
test('converts underscore-separated words to UPPER_CASE', () => {
expect(toUpperCase('hello_world')).toBe('HELLO_WORLD');
expect(toUpperCase('foo_bar_baz')).toBe('FOO_BAR_BAZ');
});
test('converts mixed separators to UPPER_CASE', () => {
expect(toUpperCase('hello-world_test case')).toBe('HELLO_WORLD_TEST_CASE');
});
test('handles single words', () => {
expect(toUpperCase('hello')).toBe('HELLO');
expect(toUpperCase('HELLO')).toBe('HELLO');
});
test('handles empty and whitespace strings', () => {
expect(toUpperCase('')).toBe('');
expect(toUpperCase(' ')).toBe('');
});
test('trims leading and trailing whitespace', () => {
expect(toUpperCase(' hello world ')).toBe('HELLO_WORLD');
});
});
});