From c2afad96d2c8f01179fe99cc11204280caabe93f Mon Sep 17 00:00:00 2001 From: blindfs Date: Wed, 9 Apr 2025 10:14:12 +0800 Subject: [PATCH] test: made harder --- crates/nu-lsp/src/hover.rs | 50 ++++++++++++++++++++++------- tests/fixtures/lsp/workspace/foo.nu | 3 +- 2 files changed, 40 insertions(+), 13 deletions(-) diff --git a/crates/nu-lsp/src/hover.rs b/crates/nu-lsp/src/hover.rs index 2634f44061..de5b7715ea 100644 --- a/crates/nu-lsp/src/hover.rs +++ b/crates/nu-lsp/src/hover.rs @@ -231,7 +231,7 @@ mod hover_tests { let script = path_to_uri(&script); open_unchecked(&client_connection, script.clone()); - let resp = send_hover_request(&client_connection, script.clone(), 2, 0); + let resp = send_hover_request(&client_connection, script, 2, 0); assert_json_eq!( result_from_message(resp), @@ -248,7 +248,6 @@ mod hover_tests { script.push("hover"); script.push("use.nu"); let script = path_to_uri(&script); - open_unchecked(&client_connection, script.clone()); let resp = send_hover_request(&client_connection, script.clone(), 2, 3); @@ -265,12 +264,27 @@ mod hover_tests { serde_json::json!("```\nrecord\n```") ); - let resp = send_hover_request(&client_connection, script.clone(), 2, 11); + let resp = send_hover_request(&client_connection, script, 2, 11); let result = result_from_message(resp); assert_json_eq!( result.pointer("/contents/value").unwrap(), serde_json::json!("```\nint\n```\n---\n2") ); + + let mut script = fixtures(); + script.push("lsp"); + script.push("workspace"); + script.push("baz.nu"); + let script = path_to_uri(&script); + open_unchecked(&client_connection, script.clone()); + + // For module record + let resp = send_hover_request(&client_connection, script, 8, 22); + let result = result_from_message(resp); + assert_json_eq!( + result.pointer("/contents/value").unwrap(), + serde_json::json!("```\nstring\n```\n---\nconst value") + ); } #[test] @@ -284,7 +298,7 @@ mod hover_tests { let script = path_to_uri(&script); open_unchecked(&client_connection, script.clone()); - let resp = send_hover_request(&client_connection, script.clone(), 3, 0); + let resp = send_hover_request(&client_connection, script, 3, 0); assert_json_eq!( result_from_message(resp), @@ -308,7 +322,7 @@ mod hover_tests { let script = path_to_uri(&script); open_unchecked(&client_connection, script.clone()); - let resp = send_hover_request(&client_connection, script.clone(), 9, 7); + let resp = send_hover_request(&client_connection, script, 9, 7); assert_json_eq!( result_from_message(resp), @@ -332,7 +346,7 @@ mod hover_tests { let script = path_to_uri(&script); open_unchecked(&client_connection, script.clone()); - let resp = send_hover_request(&client_connection, script.clone(), 6, 2); + let resp = send_hover_request(&client_connection, script, 6, 2); let hover_text = result_from_message(resp) .pointer("/contents/value") @@ -358,7 +372,7 @@ mod hover_tests { let script = path_to_uri(&script); open_unchecked(&client_connection, script.clone()); - let resp = send_hover_request(&client_connection, script.clone(), 5, 8); + let resp = send_hover_request(&client_connection, script, 5, 8); assert_json_eq!( result_from_message(resp), @@ -377,12 +391,12 @@ mod hover_tests { let mut script = fixtures(); script.push("lsp"); - script.push("goto"); - script.push("module.nu"); + script.push("workspace"); + script.push("foo.nu"); let script = path_to_uri(&script); open_unchecked(&client_connection, script.clone()); - let resp = send_hover_request(&client_connection, script.clone(), 3, 12); + let resp = send_hover_request(&client_connection, script.clone(), 15, 15); let result = result_from_message(resp); assert_eq!( @@ -391,7 +405,19 @@ mod hover_tests { .unwrap() .to_string() .replace("\\r", ""), - "\"# module doc\"" + "\"# cmt\"" + ); + + let resp = send_hover_request(&client_connection, script, 17, 27); + let result = result_from_message(resp); + + assert_eq!( + result + .pointer("/contents/value") + .unwrap() + .to_string() + .replace("\\r", ""), + "\"# sub cmt\"" ); } @@ -419,7 +445,7 @@ mod hover_tests { "\"```\\nrecord>\\n``` \\n---\\nimmutable\"" ); - let resp = send_hover_request(&client_connection, script_uri.clone(), 0, 22); + let resp = send_hover_request(&client_connection, script_uri, 0, 22); let result = result_from_message(resp); assert!(result diff --git a/tests/fixtures/lsp/workspace/foo.nu b/tests/fixtures/lsp/workspace/foo.nu index 5bdffdae3a..c0566efa72 100644 --- a/tests/fixtures/lsp/workspace/foo.nu +++ b/tests/fixtures/lsp/workspace/foo.nu @@ -7,13 +7,14 @@ export def foooo [ export def "foo str" [] { "foo" } export module "mod name" { - # cmt export module "sub module" { export def "cmd name" [] { } } } +# cmt export module cst_mod { + # sub cmt export module "sub module" { export const var_name = "const value" }