summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorJohannes Wilm <johanneswilm@gmail.com>2023-01-06 21:18:35 +0100
committerGitHub <noreply@github.com>2023-01-06 22:18:35 +0200
commitd425f86a08d5f459d7380d7c196ecb33af564f5c (patch)
tree7b4258d4a2d24386aeddb05c70471f427fded2af /tests
parent82c41ccda68da8322c96c1176936b07ad8af8f1b (diff)
downloadbabel-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.py39
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)]