summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cli/util/extract.rs57
-rw-r--r--tests/specs/test/doc_ts_expect_error/__test__.jsonc5
-rw-r--r--tests/specs/test/doc_ts_expect_error/mod.out8
-rw-r--r--tests/specs/test/doc_ts_expect_error/mod.ts13
-rw-r--r--tests/specs/test/markdown_ts_expect_error/__test__.jsonc5
-rw-r--r--tests/specs/test/markdown_ts_expect_error/main.md8
-rw-r--r--tests/specs/test/markdown_ts_expect_error/main.out6
7 files changed, 101 insertions, 1 deletions
diff --git a/cli/util/extract.rs b/cli/util/extract.rs
index f577cbefe..be68202aa 100644
--- a/cli/util/extract.rs
+++ b/cli/util/extract.rs
@@ -586,7 +586,10 @@ fn generate_pseudo_file(
wrap_kind,
}));
- let source = deno_ast::swc::codegen::to_code(&transformed);
+ let source = deno_ast::swc::codegen::to_code_with_comments(
+ Some(&parsed.comments().as_single_threaded()),
+ &transformed,
+ );
log::debug!("{}:\n{}", file.specifier, source);
@@ -1165,6 +1168,33 @@ Deno.test("file:///main.ts$3-6.ts", async ()=>{
media_type: MediaType::TypeScript,
}],
},
+ // https://github.com/denoland/deno/issues/26728
+ Test {
+ input: Input {
+ source: r#"
+/**
+ * ```ts
+ * // @ts-expect-error: can only add numbers
+ * add('1', '2');
+ * ```
+ */
+export function add(first: number, second: number) {
+ return first + second;
+}
+"#,
+ specifier: "file:///main.ts",
+ },
+ expected: vec![Expected {
+ source: r#"import { add } from "file:///main.ts";
+Deno.test("file:///main.ts$3-7.ts", async ()=>{
+ // @ts-expect-error: can only add numbers
+ add('1', '2');
+});
+"#,
+ specifier: "file:///main.ts$3-7.ts",
+ media_type: MediaType::TypeScript,
+ }],
+ },
];
for test in tests {
@@ -1376,6 +1406,31 @@ console.log(Foo);
media_type: MediaType::TypeScript,
}],
},
+ // https://github.com/denoland/deno/issues/26728
+ Test {
+ input: Input {
+ source: r#"
+/**
+ * ```ts
+ * // @ts-expect-error: can only add numbers
+ * add('1', '2');
+ * ```
+ */
+export function add(first: number, second: number) {
+ return first + second;
+}
+"#,
+ specifier: "file:///main.ts",
+ },
+ expected: vec![Expected {
+ source: r#"import { add } from "file:///main.ts";
+// @ts-expect-error: can only add numbers
+add('1', '2');
+"#,
+ specifier: "file:///main.ts$3-7.ts",
+ media_type: MediaType::TypeScript,
+ }],
+ },
];
for test in tests {
diff --git a/tests/specs/test/doc_ts_expect_error/__test__.jsonc b/tests/specs/test/doc_ts_expect_error/__test__.jsonc
new file mode 100644
index 000000000..ba64887a3
--- /dev/null
+++ b/tests/specs/test/doc_ts_expect_error/__test__.jsonc
@@ -0,0 +1,5 @@
+{
+ "args": "test --doc mod.ts",
+ "exitCode": 0,
+ "output": "mod.out"
+}
diff --git a/tests/specs/test/doc_ts_expect_error/mod.out b/tests/specs/test/doc_ts_expect_error/mod.out
new file mode 100644
index 000000000..d464d13d7
--- /dev/null
+++ b/tests/specs/test/doc_ts_expect_error/mod.out
@@ -0,0 +1,8 @@
+Check [WILDCARD]/mod.ts
+Check [WILDCARD]/mod.ts$2-10.ts
+running 0 tests from ./mod.ts
+running 1 test from ./mod.ts$2-10.ts
+[WILDCARD]/mod.ts$2-10.ts ... ok ([WILDCARD]ms)
+
+ok | 1 passed | 0 failed ([WILDCARD]ms)
+
diff --git a/tests/specs/test/doc_ts_expect_error/mod.ts b/tests/specs/test/doc_ts_expect_error/mod.ts
new file mode 100644
index 000000000..eeace602a
--- /dev/null
+++ b/tests/specs/test/doc_ts_expect_error/mod.ts
@@ -0,0 +1,13 @@
+/**
+ * ```ts
+ * import { add } from "./mod.ts";
+ *
+ * add(1, 2);
+ *
+ * // @ts-expect-error: can only add numbers
+ * add('1', '2');
+ * ```
+ */
+export function add(first: number, second: number) {
+ return first + second;
+}
diff --git a/tests/specs/test/markdown_ts_expect_error/__test__.jsonc b/tests/specs/test/markdown_ts_expect_error/__test__.jsonc
new file mode 100644
index 000000000..ad73f6df6
--- /dev/null
+++ b/tests/specs/test/markdown_ts_expect_error/__test__.jsonc
@@ -0,0 +1,5 @@
+{
+ "args": "test --doc main.md",
+ "exitCode": 0,
+ "output": "main.out"
+}
diff --git a/tests/specs/test/markdown_ts_expect_error/main.md b/tests/specs/test/markdown_ts_expect_error/main.md
new file mode 100644
index 000000000..9be70e919
--- /dev/null
+++ b/tests/specs/test/markdown_ts_expect_error/main.md
@@ -0,0 +1,8 @@
+# Documentation
+
+This test case checks if `@ts-expect-error` comment works as expected.
+
+```ts
+// @ts-expect-error
+const a: string = 42;
+```
diff --git a/tests/specs/test/markdown_ts_expect_error/main.out b/tests/specs/test/markdown_ts_expect_error/main.out
new file mode 100644
index 000000000..65990cd3f
--- /dev/null
+++ b/tests/specs/test/markdown_ts_expect_error/main.out
@@ -0,0 +1,6 @@
+Check [WILDCARD]/main.md$5-9.ts
+running 1 test from ./main.md$5-9.ts
+[WILDCARD]/main.md$5-9.ts ... ok ([WILDCARD]ms)
+
+ok | 1 passed | 0 failed ([WILDCARD]ms)
+