UNPKG

merge-class-names

Version:

A function that merges given class names, no matter their format: string with single or multiple class names or an array of class names. Filters out invalid class names as well.

46 lines (31 loc) 1.54 kB
import mergeClassNames from './index'; describe('mergeClassNames', () => { it('returns nothing given nothing', () => { const result = mergeClassNames(); expect(result).toBe(''); }); it('returns properly merged class names given an array of strings with single class names', () => { const result = mergeClassNames('a', 'b', 'c'); expect(result).toBe('a b c'); }); it('returns properly merged class names given an array of strings with multiple class names', () => { const result = mergeClassNames('a b', 'c d', 'e f'); expect(result).toBe('a b c d e f'); }); it('returns properly merged class names given an array of arrays of strings with single class names', () => { const result = mergeClassNames(['a', 'b'], ['c', 'd']); expect(result).toBe('a b c d'); }); it('returns properly merged class names given an array of arrays of strings with multiple class names', () => { const result = mergeClassNames(['a b', 'c d'], ['e f', 'g h']); expect(result).toBe('a b c d e f g h'); }); it('does not include null, undefined or other non-string arguments in the result', () => { const result = mergeClassNames('a', 'b', {}, 'c', null, 'd', () => {}, 'e', undefined); expect(result).toBe('a b c d e'); }); it('does not include null, undefined or other non-string arguments passed in an array in the result', () => { const result = mergeClassNames('a', ['b', {}], ['c', null], ['d', () => {}], ['e', undefined]); expect(result).toBe('a b c d e'); }); });