summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorMarvin Hagemeister <marvin@deno.com>2024-04-22 17:07:36 +0200
committerGitHub <noreply@github.com>2024-04-22 17:07:36 +0200
commit9686a8803e311d532c37fe919e0684feca91a04f (patch)
treed892d1b76fb6c53fd0882869126cb0fc8a620392 /tests
parentaac7a8cb7cc675e3cb2ca1ddb39629a8fa59113b (diff)
feat: add jsx precompile skip element option (#23457)
<!-- Before submitting a PR, please read https://docs.deno.com/runtime/manual/references/contributing 1. Give the PR a descriptive title. Examples of good title: - fix(std/http): Fix race condition in server - docs(console): Update docstrings - feat(doc): Handle nested reexports Examples of bad title: - fix #7123 - update docs - fix bugs 2. Ensure there is a related issue and it is referenced in the PR text. 3. Ensure there are tests that cover the changes. 4. Ensure `cargo test` passes. 5. Ensure `./tools/format.js` passes without changing files. 6. Ensure `./tools/lint.js` passes. 7. Open as a draft PR if your work is still in progress. The CI won't run all steps, but you can add '[ci]' to a commit message to force it to. 8. If you would like to run the benchmarks on the CI, add the 'ci-bench' label. --> This PR wires up a new `jsxPrecompileSkipElements` option in `compilerOptions` that can be used to exempt a list of elements from being precompiled with the `precompile` JSX transform.
Diffstat (limited to 'tests')
-rw-r--r--tests/integration/run_tests.rs6
-rw-r--r--tests/testdata/jsx/deno-jsx-precompile-skip.jsonc7
-rw-r--r--tests/testdata/run/jsx_precompile/skip.out3
-rw-r--r--tests/testdata/run/jsx_precompile/skip.tsx9
4 files changed, 25 insertions, 0 deletions
diff --git a/tests/integration/run_tests.rs b/tests/integration/run_tests.rs
index dfbebeaf1..c298e4f5b 100644
--- a/tests/integration/run_tests.rs
+++ b/tests/integration/run_tests.rs
@@ -2098,6 +2098,12 @@ itest!(jsx_import_source_precompile_import_map {
http_server: true,
});
+itest!(jsx_import_source_precompile_import_map_skip_element {
+ args: "run --reload --check --import-map jsx/import-map.json --no-lock --config jsx/deno-jsx-precompile-skip.jsonc run/jsx_precompile/skip.tsx",
+ output: "run/jsx_precompile/skip.out",
+ http_server: true,
+});
+
itest!(jsx_import_source_import_map {
args: "run --reload --import-map jsx/import-map.json --no-lock --config jsx/deno-jsx-import-map.jsonc run/jsx_import_source_no_pragma.tsx",
output: "run/jsx_import_source_import_map.out",
diff --git a/tests/testdata/jsx/deno-jsx-precompile-skip.jsonc b/tests/testdata/jsx/deno-jsx-precompile-skip.jsonc
new file mode 100644
index 000000000..3c9e4fa1f
--- /dev/null
+++ b/tests/testdata/jsx/deno-jsx-precompile-skip.jsonc
@@ -0,0 +1,7 @@
+{
+ "compilerOptions": {
+ "jsx": "precompile",
+ "jsxImportSource": "jsx-precompile",
+ "jsxPrecompileSkipElements": ["a", "img"]
+ }
+}
diff --git a/tests/testdata/run/jsx_precompile/skip.out b/tests/testdata/run/jsx_precompile/skip.out
new file mode 100644
index 000000000..a32b616f0
--- /dev/null
+++ b/tests/testdata/run/jsx_precompile/skip.out
@@ -0,0 +1,3 @@
+Download http://localhost:4545/jsx/jsx-precompile/index.ts
+Check file:///[WILDCARD]/run/jsx_precompile/skip.tsx
+imported http://localhost:4545/jsx/jsx-precompile/index.ts
diff --git a/tests/testdata/run/jsx_precompile/skip.tsx b/tests/testdata/run/jsx_precompile/skip.tsx
new file mode 100644
index 000000000..49bc4e2b7
--- /dev/null
+++ b/tests/testdata/run/jsx_precompile/skip.tsx
@@ -0,0 +1,9 @@
+export function A() {
+ return (
+ <div>
+ <a href="#">foo</a>
+ <p>hello</p>
+ <img src="#" alt="" />
+ </div>
+ );
+}