diff options
author | Johannes Wilm <johanneswilm@gmail.com> | 2023-01-06 21:18:35 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-01-06 22:18:35 +0200 |
commit | d425f86a08d5f459d7380d7c196ecb33af564f5c (patch) | |
tree | 7b4258d4a2d24386aeddb05c70471f427fded2af /tests | |
parent | 82c41ccda68da8322c96c1176936b07ad8af8f1b (diff) | |
download | babel-d425f86a08d5f459d7380d7c196ecb33af564f5c.tar.gz |
Improved javascript template string expression extracting (#939)
Co-authored-by: Rik <gitaarik@posteo.net>
Co-authored-by: Aarni Koskela <akx@iki.fi>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/messages/test_js_extract.py | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/tests/messages/test_js_extract.py b/tests/messages/test_js_extract.py index 72c5211..95985c0 100644 --- a/tests/messages/test_js_extract.py +++ b/tests/messages/test_js_extract.py @@ -150,3 +150,42 @@ def test_template_string_tag_usage(): ) assert messages == [(1, 'Tag template, wow', [], None)] + + +def test_inside_template_string(): + buf = BytesIO(b"const msg = `${gettext('Hello')} ${user.name}`") + messages = list( + extract.extract('javascript', buf, {"gettext": None}, [], {'parse_template_string': True}) + ) + + assert messages == [(1, 'Hello', [], None)] + + +def test_inside_template_string_with_linebreaks(): + buf = BytesIO(b"""\ +const userName = gettext('Username') +const msg = `${ +gettext('Hello') +} ${userName} ${ +gettext('Are you having a nice day?') +}` +const msg2 = `${ +gettext('Howdy') +} ${userName} ${ +gettext('Are you doing ok?') +}` +""") + messages = list( + extract.extract('javascript', buf, {"gettext": None}, [], {'parse_template_string': True}) + ) + + assert messages == [(1, 'Username', [], None), (3, 'Hello', [], None), (5, 'Are you having a nice day?', [], None), (8, 'Howdy', [], None), (10, 'Are you doing ok?', [], None)] + + +def test_inside_nested_template_string(): + buf = BytesIO(b"const msg = `${gettext('Greetings!')} ${ evening ? `${user.name}: ${gettext('This is a lovely evening.')}` : `${gettext('The day is really nice!')} ${user.name}`}`") + messages = list( + extract.extract('javascript', buf, {"gettext": None}, [], {'parse_template_string': True}) + ) + + assert messages == [(1, 'Greetings!', [], None), (1, 'This is a lovely evening.', [], None), (1, 'The day is really nice!', [], None)] |