UNPKG

@meanie/angular-convert

Version:

An Angular service with various conversion helpers

398 lines (374 loc) 15.5 kB
/** * Specifications */ describe('StringConverter', () => { //Load module and service beforeEach(module('Convert.StringConverter.Service')); //Inject storage let Convert; beforeEach(inject((_$stringConverter_) => { Convert = _$stringConverter_; })); /** * Camel case conversion */ describe('toCamelCase', () => { //Tests describe('camel casing', () => { it('should camel case an already camel cased string', () => { expect(Convert.toCamelCase('camelCase')).toBe('camelCase'); }); it('should camel case a snake cased string', () => { expect(Convert.toCamelCase('camel_case')).toBe('camelCase'); }); it('should camel case a dasherized string', () => { expect(Convert.toCamelCase('camel-case')).toBe('camelCase'); }); it('should camel case a string with spaces', () => { expect(Convert.toCamelCase('camel case')).toBe('camelCase'); }); it('should camel case a string with multiple spaces', () => { expect(Convert.toCamelCase('camel case')).toBe('camelCase'); expect(Convert.toCamelCase('camel ca se')).toBe('camelCaSe'); }); it('should camel case a mixed string', () => { expect(Convert.toCamelCase( 'CamelCase With snake_case _and dash-erized -andCamel' )) .toBe('camelCaseWithSnakeCaseAndDashErizedAndCamel'); expect(Convert.toCamelCase('camel_case With vari-ety andCamel')) .toBe('camelCaseWithVariEtyAndCamel'); }); it('should lowercase single letters', () => { expect(Convert.toCamelCase('A')).toBe('a'); expect(Convert.toCamelCase('F')).toBe('f'); expect(Convert.toCamelCase('Z')).toBe('z'); }); it('should trim and camel case with leading/trailing spaces', () => { expect(Convert.toCamelCase(' test_me ')).toBe('testMe'); expect(Convert.toCamelCase(' test_me')).toBe('testMe'); expect(Convert.toCamelCase('test_me ')).toBe('testMe'); expect(Convert.toCamelCase(' test_me ')).toBe('testMe'); }); it('should capitalize the first letter as well when requested', () => { expect(Convert.toCamelCase('camelCase', true)).toBe('CamelCase'); expect(Convert.toCamelCase('camel-case', true)).toBe('CamelCase'); expect(Convert.toCamelCase('camel_case', true)).toBe('CamelCase'); }); }); //Numbers describe('numbers', () => { it('should accept numbers and return them as a string', () => { expect(Convert.toCamelCase(123)).toBe('123'); expect(Convert.toCamelCase(1.23)).toBe('1.23'); expect(Convert.toCamelCase(0)).toBe('0'); expect(Convert.toCamelCase(-123)).toBe('-123'); }); }); //Invalid input describe('invalid input', () => { it('should return an empty string for empty strings', () => { expect(Convert.toCamelCase('')).toBe(''); }); it('should return an empty string for booleans', () => { expect(Convert.toCamelCase(true)).toBe(''); expect(Convert.toCamelCase(false)).toBe(''); }); it('should return an empty string for null', () => { expect(Convert.toCamelCase(null)).toBe(''); }); it('should return an empty string for undefined', () => { expect(Convert.toCamelCase(null)).toBe(''); }); it('should return an empty string for objects', () => { expect(Convert.toCamelCase({})).toBe(''); }); it('should return an empty string for arrays', () => { expect(Convert.toCamelCase([])).toBe(''); }); }); }); /** * Proper case conversion */ describe('toProperCase', () => { //Tests describe('proper casing', () => { it('should proper case lowercase names', () => { expect(Convert.toProperCase('adam')).toBe('Adam'); expect(Convert.toProperCase('adam reis')).toBe('Adam Reis'); }); it('should proper case uppercase names', () => { expect(Convert.toProperCase('ADAM')).toBe('Adam'); expect(Convert.toProperCase('ADAM REIS')).toBe('Adam Reis'); }); it('should proper case an already proper cased string', () => { expect(Convert.toProperCase('Adam')).toBe('Adam'); expect(Convert.toProperCase('Adam Reis')).toBe('Adam Reis'); }); it('should proper case a dasherized string', () => { expect(Convert.toProperCase('Adam-reis')).toBe('Adam-Reis'); expect(Convert.toProperCase('adam-reis')).toBe('Adam-Reis'); }); it('should lowercase single letters', () => { expect(Convert.toProperCase('A')).toBe('A'); expect(Convert.toProperCase('f')).toBe('F'); }); it('should trim and proper case with leading/trailing spaces', () => { expect(Convert.toProperCase(' adam reis ')).toBe('Adam Reis'); }); it('should handle special characters', () => { expect(Convert.toProperCase('hawke\'s bay')).toBe('Hawke\'s Bay'); expect(Convert.toProperCase('HAWKE\'S BAY')).toBe('Hawke\'s Bay'); }); it('should handle special characters with capitals', () => { expect(Convert.toProperCase('O\'Sullivan')).toBe('O\'Sullivan'); expect(Convert.toProperCase('o\'sullivan')).toBe('O\'Sullivan'); }); }); //Numbers describe('numbers', () => { it('should accept numbers and return them as a string', () => { expect(Convert.toProperCase(123)).toBe('123'); expect(Convert.toProperCase(1.23)).toBe('1.23'); expect(Convert.toProperCase(0)).toBe('0'); expect(Convert.toProperCase(-123)).toBe('-123'); expect(Convert.toProperCase('adam 123')).toBe('Adam 123'); }); }); //Invalid input describe('invalid input', () => { it('should return an empty string for empty strings', () => { expect(Convert.toProperCase('')).toBe(''); }); it('should return an empty string for booleans', () => { expect(Convert.toProperCase(true)).toBe(''); expect(Convert.toProperCase(false)).toBe(''); }); it('should return an empty string for null', () => { expect(Convert.toProperCase(null)).toBe(''); }); it('should return an empty string for undefined', () => { expect(Convert.toProperCase(null)).toBe(''); }); it('should return an empty string for objects', () => { expect(Convert.toProperCase({})).toBe(''); }); it('should return an empty string for arrays', () => { expect(Convert.toProperCase([])).toBe(''); }); }); }); /** * Snake case conversion */ describe('toSnakeCase', () => { //Tests describe('snake casing', () => { it('should snake case an already snake cased string', () => { expect(Convert.toSnakeCase('snake_case')).toBe('snake_case'); }); it('should snake case a camel cased string', () => { expect(Convert.toSnakeCase('snakeCase')).toBe('snake_case'); expect(Convert.toSnakeCase('SnakeCase')).toBe('snake_case'); expect(Convert.toSnakeCase('SnAkeCASe')).toBe('sn_ake_c_a_se'); }); it('should snake case a dasherized string', () => { expect(Convert.toSnakeCase('snake-case')).toBe('snake_case'); expect(Convert.toSnakeCase('Snake-Case')).toBe('snake_case'); }); it('should snake case a string with spaces', () => { expect(Convert.toSnakeCase('Snake Case')).toBe('snake_case'); }); it('should snake case a string with multiple spaces', () => { expect(Convert.toSnakeCase('Snake Case')).toBe('snake_case'); expect(Convert.toSnakeCase('Snake Ca se')).toBe('snake_ca_se'); }); it('should snake case a mixed string', () => { expect(Convert.toSnakeCase('Snake-Case mixEd Stri_ng te-st')) .toBe('snake_case_mix_ed_stri_ng_te_st'); expect(Convert.toSnakeCase( 'CamelCase With snake_case _and dash-erized -andCamel' )) .toBe('camel_case_with_snake_case_and_dash_erized_and_camel'); }); it('should lowercase single letters', () => { expect(Convert.toSnakeCase('A')).toBe('a'); expect(Convert.toSnakeCase('F')).toBe('f'); expect(Convert.toSnakeCase('Z')).toBe('z'); }); it('should trim and snake case with leading/trailing spaces', () => { expect(Convert.toSnakeCase(' TestMe ')).toBe('test_me'); expect(Convert.toSnakeCase(' TestMe')).toBe('test_me'); expect(Convert.toSnakeCase('TestMe ')).toBe('test_me'); expect(Convert.toSnakeCase(' TestMe ')).toBe('test_me'); }); }); //Numbers describe('numbers', () => { it('should accept numbers and return them as a string', () => { expect(Convert.toSnakeCase(123)).toBe('123'); expect(Convert.toSnakeCase(1.23)).toBe('1.23'); expect(Convert.toSnakeCase(0)).toBe('0'); expect(Convert.toSnakeCase(-123)).toBe('-123'); }); }); //Invalid input describe('invalid input', () => { it('should return an empty string for empty strings', () => { expect(Convert.toSnakeCase('')).toBe(''); }); it('should return an empty string for booleans', () => { expect(Convert.toSnakeCase(true)).toBe(''); expect(Convert.toSnakeCase(false)).toBe(''); }); it('should return an empty string for null', () => { expect(Convert.toSnakeCase(null)).toBe(''); }); it('should return an empty string for undefined', () => { expect(Convert.toSnakeCase(null)).toBe(''); }); it('should return an empty string for objects', () => { expect(Convert.toSnakeCase({})).toBe(''); }); it('should return an empty string for arrays', () => { expect(Convert.toSnakeCase([])).toBe(''); }); }); }); /** * Dasherize conversion */ describe('toDasherized', () => { //Tests describe('dasherizing', () => { it('should dasherize an already dasherized string', () => { expect(Convert.toDasherized('dash-erized')).toBe('dash-erized'); }); it('should dasherize a snake cased string', () => { expect(Convert.toDasherized('dash_erized')).toBe('dash-erized'); }); it('should dasherize a camel cased string', () => { expect(Convert.toDasherized('dashErized')).toBe('dash-erized'); expect(Convert.toDasherized('DashErized')).toBe('dash-erized'); }); it('should dasherize a string with spaces', () => { expect(Convert.toDasherized('dash erized')).toBe('dash-erized'); }); it('should dasherize a string with multiple spaces', () => { expect(Convert.toDasherized('dash erized')).toBe('dash-erized'); expect(Convert.toDasherized('dash eri zed')).toBe('dash-eri-zed'); }); it('should dasherize a mixed string', () => { expect(Convert.toDasherized( 'CamelCase With snake_case _and dash-erized -andCamel' )) .toBe('camel-case-with-snake-case-and-dash-erized-and-camel'); }); it('should lowercase single letters', () => { expect(Convert.toDasherized('A')).toBe('a'); expect(Convert.toDasherized('F')).toBe('f'); expect(Convert.toDasherized('Z')).toBe('z'); }); it('should trim and dasherize with leading/trailing spaces', () => { expect(Convert.toDasherized(' test_me ')).toBe('test-me'); expect(Convert.toDasherized(' test_me')).toBe('test-me'); expect(Convert.toDasherized('test_me ')).toBe('test-me'); expect(Convert.toDasherized(' test_me ')).toBe('test-me'); }); it('should dasherize a string with brackets', () => { expect(Convert.toDasherized('dash (erized)')).toBe('dash-(erized)'); expect(Convert.toDasherized('dash (erized) more')) .toBe('dash-(erized)-more'); }); }); //Numbers describe('numbers', () => { it('should accept numbers and return them as a string', () => { expect(Convert.toDasherized(123)).toBe('123'); expect(Convert.toDasherized(1.23)).toBe('1.23'); expect(Convert.toDasherized(0)).toBe('0'); expect(Convert.toDasherized(-123)).toBe('-123'); }); }); //Invalid input describe('invalid input', () => { it('should return an empty string for empty strings', () => { expect(Convert.toDasherized('')).toBe(''); }); it('should return an empty string for booleans', () => { expect(Convert.toDasherized(true)).toBe(''); expect(Convert.toDasherized(false)).toBe(''); }); it('should return an empty string for null', () => { expect(Convert.toDasherized(null)).toBe(''); }); it('should return an empty string for undefined', () => { expect(Convert.toDasherized(null)).toBe(''); }); it('should return an empty string for objects', () => { expect(Convert.toDasherized({})).toBe(''); }); it('should return an empty string for arrays', () => { expect(Convert.toDasherized([])).toBe(''); }); }); }); /** * Ucfirst conversion */ describe('toUcFirst', () => { //Tests describe('capitalization', () => { it('should capitalize the first letter of a string', () => { expect(Convert.toUcFirst('test')).toBe('Test'); expect(Convert.toUcFirst('test with spaces')).toBe('Test with spaces'); }); it('should capitalize single letters', () => { expect(Convert.toUcFirst('a')).toBe('A'); expect(Convert.toUcFirst('f')).toBe('F'); expect(Convert.toUcFirst('z')).toBe('Z'); }); it('should leave capitalization of the rest of the string intact', () => { expect(Convert.toUcFirst('tEsT')).toBe('TEsT'); }); it('should trim and capitalize with leading and trailing spaces', () => { expect(Convert.toUcFirst(' test ')).toBe('Test'); expect(Convert.toUcFirst(' test')).toBe('Test'); expect(Convert.toUcFirst('test ')).toBe('Test'); expect(Convert.toUcFirst(' test ')).toBe('Test'); }); }); //Numbers describe('numbers', () => { it('should accept numbers and return them as a string', () => { expect(Convert.toUcFirst(123)).toBe('123'); expect(Convert.toUcFirst(1.23)).toBe('1.23'); expect(Convert.toUcFirst(0)).toBe('0'); expect(Convert.toUcFirst(-123)).toBe('-123'); }); }); //Invalid input describe('invalid input', () => { it('should return an empty string for empty strings', () => { expect(Convert.toUcFirst('')).toBe(''); }); it('should return an empty string for booleans', () => { expect(Convert.toUcFirst(true)).toBe(''); expect(Convert.toUcFirst(false)).toBe(''); }); it('should return an empty string for null', () => { expect(Convert.toUcFirst(null)).toBe(''); }); it('should return an empty string for undefined', () => { expect(Convert.toUcFirst(null)).toBe(''); }); it('should return an empty string for objects', () => { expect(Convert.toUcFirst({})).toBe(''); }); it('should return an empty string for arrays', () => { expect(Convert.toUcFirst([])).toBe(''); }); }); }); });