diff --git a/transforms/angle-brackets/transform.js b/transforms/angle-brackets/transform.js index c4a2ade9d..8613f4543 100755 --- a/transforms/angle-brackets/transform.js +++ b/transforms/angle-brackets/transform.js @@ -149,6 +149,10 @@ function transformAttrs(tagName, attrs) { } else { _value = b.text(a.value.original || _EMPTY_STRING_); } + + if (_value.chars && _value.chars.length > 0) { + _value.chars = JSON.stringify(_value.chars).slice(1, -1); + } return b.attr(_key, _value); }); } diff --git a/transforms/angle-brackets/transform.test.js b/transforms/angle-brackets/transform.test.js index b4607a831..bd5de683f 100644 --- a/transforms/angle-brackets/transform.test.js +++ b/transforms/angle-brackets/transform.test.js @@ -68,6 +68,20 @@ test('boolean-values', () => { `); }); +test('string-preserve-quotes', () => { + let input = '{{foo-bar placeholder="Choose a \\"thing\\"..."}}'; + // eslint-disable-next-line prettier/prettier + expect(runTest('string-preserve-quotes.hbs', input)).toMatch(''); +}); + +test('string-mixed-line-endings', () => { + let input = '{{foo-bar placeholder="Choose a... \\t\\r\\n"}}'; + + expect(runTest('string-mixed-line-endings.hbs', input)).toMatch( + '' + ); +}); + test('curly', () => { let input = `
{{foo}}