diff --git a/src/builtin/filters/string.ts b/src/builtin/filters/string.ts index b31013ec7..bf68c50c8 100644 --- a/src/builtin/filters/string.ts +++ b/src/builtin/filters/string.ts @@ -54,7 +54,7 @@ export function stripNewlines (v: string) { export function capitalize (str: string) { str = stringify(str) - return str.charAt(0).toUpperCase() + str.slice(1) + return str.charAt(0).toUpperCase() + str.slice(1).toLowerCase() } export function replace (v: string, pattern: string, replacement: string) { diff --git a/test/integration/builtin/filters/string.ts b/test/integration/builtin/filters/string.ts index 29d0998b0..e2fdc388d 100644 --- a/test/integration/builtin/filters/string.ts +++ b/test/integration/builtin/filters/string.ts @@ -33,6 +33,9 @@ describe('filters/string', function () { it('should capitalize first', () => test('{{ "i am good" | capitalize }}', 'I am good')) it('should return empty for nil', () => test('{{ nil | capitalize }}', '')) it('should return empty for undefined', async () => test('{{ foo | capitalize }}', '')) + it('should capitalize only first word', async () => test('{{"foo bar" | capitalize}}', 'Foo bar')) + it('should to lower case if prefixed by spaces', async () => test('{{" foo BaR" | capitalize}}', ' foo bar')) + it('should to lower case trailing words', async () => test('{{"foo BaR" | capitalize}}', 'Foo bar')) }) describe('concat', function () { it('should concat arrays', () => test(`