from babel.messages import jslexer
def test_unquote():
assert jslexer.unquote_string('""') == ''
assert jslexer.unquote_string(r'"h\u00ebllo"') == u"hëllo"
def test_dollar_in_identifier():
assert list(jslexer.tokenize('dollar$dollar')) == [('name', 'dollar$dollar', 1)]
def test_dotted_name():
assert list(jslexer.tokenize("foo.bar(quux)", dotted=True)) == [
('name', 'foo.bar', 1),
('operator', '(', 1),
('name', 'quux', 1),
('operator', ')', 1)
]
def test_dotted_name_end():
assert list(jslexer.tokenize("foo.bar", dotted=True)) == [
('name', 'foo.bar', 1),
]
def test_template_string():
assert list(jslexer.tokenize("gettext `foo\"bar\"p`", template_string=True)) == [
('name', 'gettext', 1),
('template_string', '`foo"bar"p`', 1)
]
def test_jsx():
assert list(jslexer.tokenize("""
} data={{active: true}}>
""", jsx=True)) == [
('jsx_tag', '', 2),
('jsx_tag', '', 3),
('jsx_tag', '', 4),
('jsx_tag', '', 5),
('jsx_tag', '', 6),
('operator', '}', 6),
('name', 'data', 6),
('operator', '=', 6),
('operator', '{', 6),
('operator', '{', 6),
('name', 'active', 6),
('operator', ':', 6),
('name', 'true', 6),
('operator', '}', 6),
('operator', '}', 6),
('operator', '>', 6),
('jsx_tag', '', 7),
('jsx_tag', '', 8)
]