Skip to content

Commit ac122a5

Browse files
test belongs here
1 parent e3e54e4 commit ac122a5

File tree

1 file changed

+65
-0
lines changed

1 file changed

+65
-0
lines changed

crates/pgt_completions/src/providers/columns.rs

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -224,4 +224,69 @@ mod tests {
224224
"`email` not present in first four completion items."
225225
);
226226
}
227+
228+
#[tokio::test]
229+
async fn prefers_columns_of_mentioned_tables() {
230+
let setup = r#"
231+
create schema private;
232+
233+
create table private.users (
234+
id1 serial primary key,
235+
name1 text,
236+
address1 text,
237+
email1 text
238+
);
239+
240+
create table public.users (
241+
id2 serial primary key,
242+
name2 text,
243+
address2 text,
244+
email2 text
245+
);
246+
"#;
247+
248+
{
249+
let test_case = TestCase {
250+
message: "",
251+
query: format!(r#"select {} from users"#, CURSOR_POS),
252+
label: "suggests from table",
253+
description: "",
254+
};
255+
256+
let (tree, cache) = get_test_deps(setup, test_case.get_input_query()).await;
257+
let params = get_test_params(&tree, &cache, test_case.get_input_query());
258+
let results = complete(params);
259+
260+
assert_eq!(
261+
results
262+
.into_iter()
263+
.take(4)
264+
.map(|item| item.label)
265+
.collect::<Vec<String>>(),
266+
vec!["address2", "email2", "id2", "name2"]
267+
);
268+
}
269+
270+
{
271+
let test_case = TestCase {
272+
message: "",
273+
query: format!(r#"select {} from private.users"#, CURSOR_POS),
274+
label: "suggests from table",
275+
description: "",
276+
};
277+
278+
let (tree, cache) = get_test_deps(setup, test_case.get_input_query()).await;
279+
let params = get_test_params(&tree, &cache, test_case.get_input_query());
280+
let results = complete(params);
281+
282+
assert_eq!(
283+
results
284+
.into_iter()
285+
.take(4)
286+
.map(|item| item.label)
287+
.collect::<Vec<String>>(),
288+
vec!["address1", "email1", "id1", "name1"]
289+
);
290+
}
291+
}
227292
}

0 commit comments

Comments
 (0)