Skip to content

Commit 0b45e49

Browse files
committed
fix javascript lexer test
1 parent 67a0a83 commit 0b45e49

File tree

1 file changed

+12
-15
lines changed

1 file changed

+12
-15
lines changed

tests/lexers/test_javascriptlexer.py

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ def assert_tokens_equal(actual_tokens, expected_tokens_data):
1212

1313
for i, (token_type, value) in enumerate(expected_tokens_data):
1414
assert actual_tokens[i].type == token_type, f"Token {i} type mismatch: Expected {token_type}, got {actual_tokens[i].type} ({actual_tokens[i].value})"
15-
assert actual_tokens[i].value == value, f"Token {i} value mismatch: Expected {value} , got {actual_tokens[i].value} "
15+
assert actual_tokens[i].value == value, f"Token {i} value mismatch: Expected '{value}', got '{actual_tokens[i].value}'"
1616

1717
# --- Test Cases ---
1818

@@ -67,13 +67,14 @@ def test_js_numbers():
6767
]
6868
assert_tokens_equal(tokens, expected)
6969

70-
def test_js_strings() code = "\\'hello\\' \"world\" \"with \\\"escape\\\"\""
70+
def test_js_strings():
71+
code = "'hello' \"world\" \"with \\\"escape\\\"\""
7172
lexer = JavaScriptLexer(code)
7273
tokens = lexer.tokenize()
7374
expected = [
74-
(TokenType.STRING, "\'hello\'"),
75-
(TokenType.STRING, '\"world\"'),
76-
(TokenType.STRING, '\"with \\"escape\\"\"'), # String includes escapes
75+
(TokenType.STRING, "'hello'"),
76+
(TokenType.STRING, '"world"'),
77+
(TokenType.STRING, '"with \\"escape\\""'), # String includes escapes
7778
]
7879
assert_tokens_equal(tokens, expected)
7980

@@ -103,10 +104,9 @@ def test_js_delimiters():
103104
(TokenType.DELIMITER, "{"), (TokenType.DELIMITER, "}"),
104105
(TokenType.DELIMITER, "["), (TokenType.DELIMITER, "]"),
105106
(TokenType.DELIMITER, ";"),
106-
(TokenType.ERROR, ","), # Comma is not listed as a delimiter in the lexer
107+
(TokenType.DELIMITER, ","), # Assuming comma should be a delimiter in JS
107108
(TokenType.DELIMITER, ":"),
108109
]
109-
# Note: Comma is currently marked as ERROR. Adjust test if lexer is updated.
110110
assert_tokens_equal(tokens, expected)
111111

112112
def test_js_comments():
@@ -138,7 +138,7 @@ def test_js_mixed_code():
138138
tokens = lexer.tokenize()
139139
expected = [
140140
(TokenType.NEWLINE, "\\n"),
141-
(TokenType.KEYWORD, "function"), (TokenType.IDENTIFIER, "calculate"), (TokenType.DELIMITER, "("), (TokenType.IDENTIFIER, "x"), (TokenType.ERROR, ","), (TokenType.IDENTIFIER, "y"), (TokenType.DELIMITER, ")"), (TokenType.DELIMITER, "{"), (TokenType.NEWLINE, "\\n"),
141+
(TokenType.KEYWORD, "function"), (TokenType.IDENTIFIER, "calculate"), (TokenType.DELIMITER, "("), (TokenType.IDENTIFIER, "x"), (TokenType.DELIMITER, ","), (TokenType.IDENTIFIER, "y"), (TokenType.DELIMITER, ")"), (TokenType.DELIMITER, "{"), (TokenType.NEWLINE, "\\n"),
142142
(TokenType.COMMENT, "// Calculate sum"), (TokenType.NEWLINE, "\\n"),
143143
(TokenType.KEYWORD, "const"), (TokenType.IDENTIFIER, "sum"), (TokenType.OPERATOR, "="), (TokenType.IDENTIFIER, "x"), (TokenType.OPERATOR, "+"), (TokenType.IDENTIFIER, "y"), (TokenType.DELIMITER, ";"), (TokenType.NEWLINE, "\\n"),
144144
(TokenType.KEYWORD, "if"), (TokenType.DELIMITER, "("), (TokenType.IDENTIFIER, "sum"), (TokenType.OPERATOR, ">"), (TokenType.NUMBER, "10"), (TokenType.DELIMITER, ")"), (TokenType.DELIMITER, "{"), (TokenType.NEWLINE, "\\n"),
@@ -147,9 +147,8 @@ def test_js_mixed_code():
147147
(TokenType.KEYWORD, "return"), (TokenType.IDENTIFIER, "sum"), (TokenType.DELIMITER, ";"), (TokenType.NEWLINE, "\\n"),
148148
(TokenType.DELIMITER, "}"), (TokenType.NEWLINE, "\\n"),
149149
(TokenType.NEWLINE, "\\n"),
150-
(TokenType.IDENTIFIER, "calculate"), (TokenType.DELIMITER, "("), (TokenType.NUMBER, "5"), (TokenType.ERROR, ","), (TokenType.NUMBER, "7"), (TokenType.DELIMITER, ")"), (TokenType.DELIMITER, ";"), (TokenType.NEWLINE, "\\n"),
150+
(TokenType.IDENTIFIER, "calculate"), (TokenType.DELIMITER, "("), (TokenType.NUMBER, "5"), (TokenType.DELIMITER, ","), (TokenType.NUMBER, "7"), (TokenType.DELIMITER, ")"), (TokenType.DELIMITER, ";"), (TokenType.NEWLINE, "\\n"),
151151
]
152-
# Note: Comma is currently marked as ERROR. Template literals are treated as simple strings.
153152
assert_tokens_equal(tokens, expected)
154153

155154
def test_js_error_character():
@@ -166,12 +165,12 @@ def test_js_error_character():
166165
assert_tokens_equal(tokens, expected)
167166

168167
def test_js_unterminated_string():
169-
code = "\'unterminated string"
168+
code = "'unterminated string"
170169
lexer = JavaScriptLexer(code)
171170
tokens = lexer.tokenize()
172171
# The lexer currently returns the unterminated string as a STRING token
173172
expected = [
174-
(TokenType.STRING, "\'unterminated string"),
173+
(TokenType.STRING, "'unterminated string"),
175174
]
176175
assert_tokens_equal(tokens, expected)
177176

@@ -182,6 +181,4 @@ def test_js_unterminated_comment():
182181
# The lexer currently returns an ERROR token for unterminated multi-line comments
183182
assert len(tokens) == 2 # ERROR token + EOF
184183
assert tokens[0].type == TokenType.ERROR
185-
assert "comentário não fechado" in tokens[0].value
186-
187-
184+
assert "unterminated comment" in tokens[0].value.lower()

0 commit comments

Comments
 (0)