//! Completion tests for visibility modifiers.
use expect_test::{expect, Expect};
use crate::tests::{completion_list, completion_list_with_trigger_character};
fn check(ra_fixture: &str, expect: Expect) {
let actual = completion_list(ra_fixture);
expect.assert_eq(&actual)
}
fn check_with_trigger_character(ra_fixture: &str, trigger_character: char, expect: Expect) {
let actual = completion_list_with_trigger_character(ra_fixture, Some(trigger_character));
expect.assert_eq(&actual)
}
#[test]
fn empty_pub() {
cov_mark::check!(kw_completion_in);
check_with_trigger_character(
r#"
pub($0)
"#,
'(',
expect![[r#"
kw crate
kw in
kw self
"#]],
);
}
#[test]
fn after_in_kw() {
check(
r#"
pub(in $0)
"#,
expect![[r#"
kw crate
kw self
"#]],
);
}
#[test]
fn qualified() {
cov_mark::check!(visibility_qualified);
check(
r#"
mod foo {
pub(in crate::$0)
}
mod bar {}
"#,
expect![[r#"
md foo
"#]],
);
check(
r#"
mod qux {
mod foo {
pub(in crate::$0)
}
mod baz {}
}
mod bar {}
"#,
expect![[r#"
md qux
"#]],
);
check(
r#"
mod qux {
mod foo {
pub(in crate::qux::$0)
}
mod baz {}
}
mod bar {}
"#,
expect![[r#"
md foo
"#]],
);
}