refactor(tests): migrate remaining grammar.json tests to grammar.js

This commit is contained in:
Amaan Qureshi 2024-04-28 23:50:41 -04:00
parent 26fa3a76a5
commit 627617edb4
36 changed files with 560 additions and 1212 deletions

View file

@ -418,7 +418,20 @@ function grammar(baseGrammar, options) {
throw new Error("Grammar must have at least one rule.");
}
return { grammar: { name, inherits, word, rules, extras, conflicts, precedences, externals, inline, supertypes } };
return {
grammar: {
name,
...(inherits ? ( inherits ) : {}),
word,
rules,
extras,
conflicts,
precedences,
externals,
inline,
supertypes,
},
};
}
function checkArguments(args, ruleCount, caller, callerName, suffix = '', argType = 'rule') {

View file

@ -1,5 +1,3 @@
use std::fs;
use tree_sitter::{Node, Parser, Point, Tree};
use super::helpers::{
@ -7,7 +5,10 @@ use super::helpers::{
fixtures::{fixtures_dir, get_language, get_test_language},
random::Rand,
};
use crate::{generate::generate_parser_for_grammar, parse::perform_edit};
use crate::{
generate::{generate_parser_for_grammar, load_grammar_file},
parse::perform_edit,
};
const JSON_EXAMPLE: &str = r#"
@ -853,17 +854,17 @@ fn test_node_field_calls_in_language_without_fields() {
#[test]
fn test_node_is_named_but_aliased_as_anonymous() {
let (parser_name, parser_code) = generate_parser_for_grammar(
&fs::read_to_string(
fixtures_dir()
.join("test_grammars")
.join("named_rule_aliased_as_anonymous")
.join("grammar.json"),
)
.unwrap(),
let grammar_json = load_grammar_file(
&fixtures_dir()
.join("test_grammars")
.join("named_rule_aliased_as_anonymous")
.join("grammar.js"),
None,
)
.unwrap();
let (parser_name, parser_code) = generate_parser_for_grammar(&grammar_json).unwrap();
let mut parser = Parser::new();
let language = get_test_language(&parser_name, &parser_code, None);
parser.set_language(&language).unwrap();

View file

@ -1,5 +1,4 @@
use std::{
fs,
sync::atomic::{AtomicUsize, Ordering},
thread, time,
};
@ -13,7 +12,7 @@ use super::helpers::{
fixtures::{get_language, get_test_language},
};
use crate::{
generate::generate_parser_for_grammar,
generate::{generate_parser_for_grammar, load_grammar_file},
parse::{perform_edit, Edit},
tests::helpers::fixtures::fixtures_dir,
};
@ -432,8 +431,8 @@ fn test_parsing_after_editing_tree_that_depends_on_column_values() {
let dir = fixtures_dir()
.join("test_grammars")
.join("uses_current_column");
let grammar = fs::read_to_string(dir.join("grammar.json")).unwrap();
let (grammar_name, parser_code) = generate_parser_for_grammar(&grammar).unwrap();
let grammar_json = load_grammar_file(&dir.join("grammar.js"), None).unwrap();
let (grammar_name, parser_code) = generate_parser_for_grammar(&grammar_json).unwrap();
let mut parser = Parser::new();
parser