diff options
Diffstat (limited to 'cli/tests/integration')
-rw-r--r-- | cli/tests/integration/lsp_tests.rs | 79 | ||||
-rw-r--r-- | cli/tests/integration/mod.rs | 2 | ||||
-rw-r--r-- | cli/tests/integration/run_tests.rs | 112 |
3 files changed, 192 insertions, 1 deletions
diff --git a/cli/tests/integration/lsp_tests.rs b/cli/tests/integration/lsp_tests.rs index 6e009bd20..fc4f6dbc6 100644 --- a/cli/tests/integration/lsp_tests.rs +++ b/cli/tests/integration/lsp_tests.rs @@ -3684,3 +3684,82 @@ fn lsp_lint_with_config() { } shutdown(&mut client); } + +#[test] +fn lsp_jsx_import_source_pragma() { + let _g = http_server(); + let mut client = init("initialize_params.json"); + did_open( + &mut client, + json!({ + "textDocument": { + "uri": "file:///a/file.tsx", + "languageId": "typescriptreact", + "version": 1, + "text": +"/** @jsxImportSource http://localhost:4545/jsx */ + +function A() { + return \"hello\"; +} + +export function B() { + return <A></A>; +} +", + } + }), + ); + let (maybe_res, maybe_err) = client + .write_request::<_, _, Value>( + "deno/cache", + json!({ + "referrer": { + "uri": "file:///a/file.tsx", + }, + "uris": [ + { + "uri": "http://127.0.0.1:4545/jsx/jsx-runtime", + } + ], + }), + ) + .unwrap(); + assert!(maybe_err.is_none()); + assert!(maybe_res.is_some()); + let (maybe_res, maybe_err) = client + .write_request::<_, _, Value>( + "textDocument/hover", + json!({ + "textDocument": { + "uri": "file:///a/file.tsx" + }, + "position": { + "line": 0, + "character": 25 + } + }), + ) + .unwrap(); + assert!(maybe_err.is_none()); + assert_eq!( + maybe_res, + Some(json!({ + "contents": { + "kind": "markdown", + "value": "**Resolved Dependency**\n\n**Code**: http​://localhost:4545/jsx/jsx-runtime\n", + }, + "range": { + "start": { + "line": 0, + "character": 21 + }, + "end": { + "line": 0, + "character": 46 + } + } + })) + ); + shutdown(&mut client); +} diff --git a/cli/tests/integration/mod.rs b/cli/tests/integration/mod.rs index 251fca515..21ffc5627 100644 --- a/cli/tests/integration/mod.rs +++ b/cli/tests/integration/mod.rs @@ -1100,7 +1100,7 @@ fn basic_auth_tokens() { eprintln!("{}", stderr_str); assert!(stderr_str.contains( - "Import 'http://127.0.0.1:4554/001_hello.js' failed: 404 Not Found" + "Import 'http://127.0.0.1:4554/001_hello.js' failed, not found." )); let output = util::deno_cmd() diff --git a/cli/tests/integration/run_tests.rs b/cli/tests/integration/run_tests.rs index f290c6e62..214eb8ece 100644 --- a/cli/tests/integration/run_tests.rs +++ b/cli/tests/integration/run_tests.rs @@ -1215,6 +1215,118 @@ itest!(jsx_import_from_ts { output: "jsx_import_from_ts.ts.out", }); +itest!(jsx_import_source_pragma { + args: "run --reload jsx_import_source_pragma.tsx", + output: "jsx_import_source.out", + http_server: true, +}); + +itest!(jsx_import_source_pragma_with_config { + args: "run --reload --config jsx/deno-jsx.jsonc jsx_import_source_pragma.tsx", + output: "jsx_import_source.out", + http_server: true, +}); + +itest!(jsx_import_source_pragma_with_dev_config { + args: + "run --reload --config jsx/deno-jsxdev.jsonc jsx_import_source_pragma.tsx", + output: "jsx_import_source_dev.out", + http_server: true, +}); + +itest!(jsx_import_source_no_pragma { + args: + "run --reload --config jsx/deno-jsx.jsonc jsx_import_source_no_pragma.tsx", + output: "jsx_import_source.out", + http_server: true, +}); + +itest!(jsx_import_source_no_pragma_dev { + args: "run --reload --config jsx/deno-jsxdev.jsonc jsx_import_source_no_pragma.tsx", + output: "jsx_import_source_dev.out", + http_server: true, +}); + +itest!(jsx_import_source_pragma_import_map { + args: "run --reload --import-map jsx/import-map.json jsx_import_source_pragma_import_map.tsx", + output: "jsx_import_source_import_map.out", + http_server: true, +}); + +itest!(jsx_import_source_pragma_import_map_dev { + args: "run --reload --import-map jsx/import-map.json --config jsx/deno-jsxdev-import-map.jsonc jsx_import_source_pragma_import_map.tsx", + output: "jsx_import_source_import_map_dev.out", + http_server: true, +}); + +itest!(jsx_import_source_import_map { + args: "run --reload --import-map jsx/import-map.json --config jsx/deno-jsx-import-map.jsonc jsx_import_source_no_pragma.tsx", + output: "jsx_import_source_import_map.out", + http_server: true, +}); + +itest!(jsx_import_source_import_map_dev { + args: "run --reload --import-map jsx/import-map.json --config jsx/deno-jsxdev-import-map.jsonc jsx_import_source_no_pragma.tsx", + output: "jsx_import_source_import_map_dev.out", + http_server: true, +}); + +itest!(jsx_import_source_pragma_no_check { + args: "run --reload --no-check jsx_import_source_pragma.tsx", + output: "jsx_import_source.out", + http_server: true, +}); + +itest!(jsx_import_source_pragma_with_config_no_check { + args: "run --reload --config jsx/deno-jsx.jsonc --no-check jsx_import_source_pragma.tsx", + output: "jsx_import_source.out", + http_server: true, +}); + +// itest!(jsx_import_source_pragma_with_dev_config_no_check { +// args: +// "run --reload --config jsx/deno-jsxdev.jsonc --no-check jsx_import_source_pragma.tsx", +// output: "jsx_import_source_dev.out", +// http_server: true, +// }); + +itest!(jsx_import_source_no_pragma_no_check { + args: + "run --reload --config jsx/deno-jsx.jsonc --no-check jsx_import_source_no_pragma.tsx", + output: "jsx_import_source.out", + http_server: true, +}); + +// itest!(jsx_import_source_no_pragma_dev_no_check { +// args: "run --reload --config jsx/deno-jsxdev.jsonc --no-check jsx_import_source_no_pragma.tsx", +// output: "jsx_import_source_dev.out", +// http_server: true, +// }); + +itest!(jsx_import_source_pragma_import_map_no_check { + args: "run --reload --import-map jsx/import-map.json --no-check jsx_import_source_pragma_import_map.tsx", + output: "jsx_import_source_import_map.out", + http_server: true, +}); + +// itest!(jsx_import_source_pragma_import_map_dev_no_check { +// args: "run --reload --import-map jsx/import-map.json --config jsx/deno-jsxdev-import-map.jsonc --no-check jsx_import_source_pragma_import_map.tsx", +// output: "jsx_import_source_import_map_dev.out", +// http_server: true, +// }); + +itest!(jsx_import_source_import_map_no_check { + args: "run --reload --import-map jsx/import-map.json --config jsx/deno-jsx-import-map.jsonc --no-check jsx_import_source_no_pragma.tsx", + output: "jsx_import_source_import_map.out", + http_server: true, +}); + +// itest!(jsx_import_source_import_map_dev_no_check { +// args: "run --reload --import-map jsx/import-map.json --config jsx/deno-jsxdev-import-map.jsonc --no-check jsx_import_source_no_pragma.tsx", +// output: "jsx_import_source_import_map_dev.out", +// http_server: true, +// }); + // TODO(#11128): Flaky. Re-enable later. // itest!(single_compile_with_reload { // args: "run --reload --allow-read single_compile_with_reload.ts", |