summaryrefslogtreecommitdiff
path: root/cli/tests
diff options
context:
space:
mode:
Diffstat (limited to 'cli/tests')
-rw-r--r--cli/tests/integration/lsp_tests.rs66
-rw-r--r--cli/tests/testdata/lsp/code_action_params_import_assertion.json38
-rw-r--r--cli/tests/testdata/lsp/code_action_response_import_assertion.json43
3 files changed, 147 insertions, 0 deletions
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
@@ -345,6 +345,72 @@ fn lsp_import_map_data_url() {
}
#[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");
did_open(
diff --git a/cli/tests/testdata/lsp/code_action_params_import_assertion.json b/cli/tests/testdata/lsp/code_action_params_import_assertion.json
new file mode 100644
index 000000000..67b822a42
--- /dev/null
+++ b/cli/tests/testdata/lsp/code_action_params_import_assertion.json
@@ -0,0 +1,38 @@
+{
+ "textDocument": {
+ "uri": "file:///a/a.ts"
+ },
+ "range": {
+ "start": {
+ "line": 0,
+ "character": 14
+ },
+ "end": {
+ "line": 0,
+ "character": 27
+ }
+ },
+ "context": {
+ "diagnostics": [
+ {
+ "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."
+ }
+ ],
+ "only": [
+ "quickfix"
+ ]
+ }
+}
diff --git a/cli/tests/testdata/lsp/code_action_response_import_assertion.json b/cli/tests/testdata/lsp/code_action_response_import_assertion.json
new file mode 100644
index 000000000..bff934b21
--- /dev/null
+++ b/cli/tests/testdata/lsp/code_action_response_import_assertion.json
@@ -0,0 +1,43 @@
+[
+ {
+ "title": "Insert import assertion.",
+ "kind": "quickfix",
+ "diagnostics": [
+ {
+ "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."
+ }
+ ],
+ "edit": {
+ "changes": {
+ "file:///a/a.ts": [
+ {
+ "range": {
+ "start": {
+ "line": 0,
+ "character": 27
+ },
+ "end": {
+ "line": 0,
+ "character": 27
+ }
+ },
+ "newText": " assert { type: \"json\" }"
+ }
+ ]
+ }
+ }
+ }
+]