on master help sign in
Remove language-server configuration in integration tests
313579dMichael Davis
helix-term/tests/test/helpers.rs+29−1
@@ -143,9 +143,27 @@ pub async fn test_key_sequence_with_input_text<T: Into<TestCase>>(
143
143
144/// Generates language configs that merge in overrides, like a user language
144/// Generates language configs that merge in overrides, like a user language
145/// config. The argument string must be a raw TOML document.
145/// config. The argument string must be a raw TOML document.
146+///
147+/// By default, language server configuration is dropped from the languages.toml
148+/// document. If a language-server is necessary for a test, it must be explicitly
149+/// added in `overrides`.
146pub fn test_syntax_conf(overrides: Option<String>) -> helix_core::syntax::Configuration {
150pub fn test_syntax_conf(overrides: Option<String>) -> helix_core::syntax::Configuration {
147 let mut lang = helix_loader::config::default_lang_config();
151 let mut lang = helix_loader::config::default_lang_config();
148
152
153+ for lang_config in lang
154+ .as_table_mut()
155+ .expect("Expected languages.toml to be a table")
156+ .get_mut("language")
157+ .expect("Expected languages.toml to have \"language\" keys")
158+ .as_array_mut()
159+ .expect("Expected an array of language configurations")
160+ {
161+ lang_config
162+ .as_table_mut()
163+ .expect("Expected language config to be a TOML table")
164+ .remove("language-server");
165+ }
166+
149 if let Some(overrides) = overrides {
167 if let Some(overrides) = overrides {
150 let override_toml = toml::from_str(&overrides).unwrap();
168 let override_toml = toml::from_str(&overrides).unwrap();
151 lang = helix_loader::merge_toml_values(lang, override_toml, 3);
169 lang = helix_loader::merge_toml_values(lang, override_toml, 3);
@@ -236,7 +254,6 @@ pub fn new_readonly_tempfile() -> anyhow::Result<NamedTempFile> {
236 Ok(file)
254 Ok(file)
237}
255}
238
256
239−#[derive(Default)]
240pub struct AppBuilder {
257pub struct AppBuilder {
241 args: Args,
258 args: Args,
242 config: Config,
259 config: Config,
@@ -244,6 +261,17 @@ pub struct AppBuilder {
244 input: Option<(String, Selection)>,
261 input: Option<(String, Selection)>,
245}
262}
246
263
264+impl Default for AppBuilder {
265+ fn default() -> Self {
266+ Self {
267+ args: Args::default(),
268+ config: Config::default(),
269+ syn_conf: test_syntax_conf(None),
270+ input: None,
271+ }
272+ }
273+}
274+
247impl AppBuilder {
275impl AppBuilder {
248 pub fn new() -> Self {
276 pub fn new() -> Self {
249 AppBuilder::default()
277 AppBuilder::default()