import { expect } from 'chai'; import { getInitials } from '../../../../util/getInitials'; describe('getInitials', () => { describe('empty or null string', () => { it('initials: return undefined if string is undefined', () => { expect(getInitials(undefined)).to.be.equal('0', 'should have return 0'); }); it('initials: return undefined if string is empty', () => { expect(getInitials('')).to.be.equal('0', 'should have return 0'); }); it('initials: return undefined if string is null', () => { expect(getInitials(null as any)).to.be.equal('0', 'should have return 0'); }); }); describe('name is a pubkey', () => { it('initials: return the first char after 05 if it starts with 05 and has length >2 ', () => { expect(getInitials('052')).to.be.equal('2', 'should have return 2'); }); it('initials: return the first char after 05 capitalized if it starts with 05 and has length >2 ', () => { expect(getInitials('05bcd')).to.be.equal('B', 'should have return B'); }); it('initials: return the first char after 05 if it starts with 05 and has length >2 ', () => { expect(getInitials('059052052052052052052052')).to.be.equal('9', 'should have return 9'); }); }); describe('name has a space in its content', () => { it('initials: return the first char of each first 2 words if a space is present ', () => { expect(getInitials('John Doe')).to.be.equal('JD', 'should have return JD'); }); it('initials: return the first char capitalized of each first 2 words if a space is present ', () => { expect(getInitials('John doe')).to.be.equal('JD', 'should have return JD capitalized'); }); it('initials: return the first char capitalized of each first 2 words if a space is present, even with more than 2 words ', () => { expect(getInitials('John Doe Alice')).to.be.equal('JD', 'should have return JD capitalized'); }); it('initials: return the first char capitalized of each first 2 words if a space is present, even with more than 2 words ', () => { expect(getInitials('John doe Alice')).to.be.equal('JD', 'should have return JD capitalized'); }); describe('name is not ascii', () => { // ß maps to SS in uppercase it('initials: shorten to 2 char at most if the uppercase form length is > 2 ', () => { expect(getInitials('John ß')).to.be.equal('JS', 'should have return JS capitalized'); }); it('initials: shorten to 2 char at most if the uppercase form length is > 2 ', () => { expect(getInitials('ß ß')).to.be.equal('SS', 'should have return SS capitalized'); }); }); }); describe('name has a - in its content', () => { it('initials: return the first char of each first 2 words if a - is present ', () => { expect(getInitials('John-Doe')).to.be.equal('JD', 'should have return JD'); }); it('initials: return the first char capitalized of each first 2 words if a - is present ', () => { expect(getInitials('John-doe')).to.be.equal('JD', 'should have return JD capitalized'); }); it('initials: return the first char capitalized of each first 2 words if a - is present, even with more than 2 words ', () => { expect(getInitials('John-Doe-Alice')).to.be.equal('JD', 'should have return JD capitalized'); }); it('initials: return the first char capitalized of each first 2 words if a - is present, even with more than 2 words ', () => { expect(getInitials('John-doe-Alice')).to.be.equal('JD', 'should have return JD capitalized'); }); describe('name is not ascii', () => { // ß maps to SS in uppercase it('initials: shorten to 2 char at most if the uppercase form length is > 2 ', () => { expect(getInitials('John-ß')).to.be.equal('JS', 'should have return JS capitalized'); }); it('initials: shorten to 2 char at most if the uppercase form length is > 2 ', () => { expect(getInitials('ß-ß')).to.be.equal('SS', 'should have return SS capitalized'); }); }); }); describe('name has NO spaces in its content', () => { it('initials: return the first 2 chars of the first word if the name has no space ', () => { expect(getInitials('JOHNY')).to.be.equal('JO', 'should have return JO'); }); it('initials: return the first 2 chars capitalized of the first word if the name has no space ', () => { expect(getInitials('Johnny')).to.be.equal('JO', 'should have return JO'); }); describe('name is not ascii', () => { // ß maps to SS in uppercase it('initials: shorten to 2 char at most if the uppercase form length is > 2 ', () => { expect(getInitials('ß')).to.be.equal('SS', 'should have return SS capitalized'); }); it('initials: shorten to 2 char at most if the uppercase form length is > 2 ', () => { expect(getInitials('ßß')).to.be.equal('SS', 'should have return SS capitalized'); }); }); }); });