From e28fb70aeecf548d150312c30f7f32b60c4fdece Mon Sep 17 00:00:00 2001 From: Kitson Kelly Date: Thu, 16 Dec 2021 14:53:17 +1100 Subject: fix(lsp): provide diagnostics for import assertions (#13105) Fixes: #13099 --- cli/tests/integration/lsp_tests.rs | 66 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) (limited to 'cli/tests/integration/lsp_tests.rs') diff --git a/cli/tests/integration/lsp_tests.rs b/cli/tests/integration/lsp_tests.rs index 718f73311..a3e1138b6 100644 --- a/cli/tests/integration/lsp_tests.rs +++ b/cli/tests/integration/lsp_tests.rs @@ -344,6 +344,72 @@ fn lsp_import_map_data_url() { shutdown(&mut client); } +#[test] +fn lsp_import_assertions() { + let mut client = init("initialize_params_import_map.json"); + client + .write_notification( + "textDocument/didOpen", + json!({ + "textDocument": { + "uri": "file:///a/test.json", + "languageId": "json", + "version": 1, + "text": "{\"a\":1}" + } + }), + ) + .unwrap(); + + let mut diagnostics = did_open( + &mut client, + json!({ + "textDocument": { + "uri": "file:///a/a.ts", + "languageId": "typescript", + "version": 1, + "text": "import a from \"./test.json\";\n\nconsole.log(a);\n" + } + }), + ); + + let last = diagnostics.pop().unwrap(); + assert_eq!( + json!(last.diagnostics), + json!([ + { + "range": { + "start": { + "line": 0, + "character": 14 + }, + "end": { + "line": 0, + "character": 27 + } + }, + "severity": 1, + "code": "no-assert-type", + "source": "deno", + "message": "The module is a JSON module and not being imported with an import assertion. Consider adding `assert { type: \"json\" }` to the import statement." + } + ]) + ); + + let (maybe_res, maybe_err) = client + .write_request( + "textDocument/codeAction", + load_fixture("code_action_params_import_assertion.json"), + ) + .unwrap(); + assert!(maybe_err.is_none()); + assert_eq!( + maybe_res, + Some(load_fixture("code_action_response_import_assertion.json")) + ); + shutdown(&mut client); +} + #[test] fn lsp_hover() { let mut client = init("initialize_params.json"); -- cgit v1.2.3