fix(test): proper type checking for files with doc tests (#23654)

Closes https://github.com/denoland/deno/issues/23430

---------

Co-authored-by: Yoshiya Hinosawa <stibium121@gmail.com>
This commit is contained in:
Leo Kettmeir 2024-05-02 11:13:51 -07:00 committed by GitHub
parent 811280af77
commit 1b27b58396
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 37 additions and 22 deletions

View File

@ -1326,27 +1326,7 @@ pub async fn check_specifiers(
)
.await?;
if !inline_files.is_empty() {
let specifiers = inline_files
.iter()
.map(|file| file.specifier.clone())
.collect();
for file in inline_files {
file_fetcher.insert_memory_files(file);
}
module_load_preparer
.prepare_module_load(
specifiers,
false,
lib,
PermissionsContainer::new(Permissions::allow_all()),
)
.await?;
}
let module_specifiers = specifiers
let mut module_specifiers = specifiers
.into_iter()
.filter_map(|(specifier, mode)| {
if mode != TestMode::Documentation {
@ -1355,7 +1335,16 @@ pub async fn check_specifiers(
None
}
})
.collect();
.collect::<Vec<_>>();
if !inline_files.is_empty() {
module_specifiers
.extend(inline_files.iter().map(|file| file.specifier.clone()));
for file in inline_files {
file_fetcher.insert_memory_files(file);
}
}
module_load_preparer
.prepare_module_load(

View File

@ -0,0 +1,5 @@
{
"args": "test --doc main.ts",
"output": "main.out",
"exitCode": 1
}

View File

@ -0,0 +1,13 @@
Check [WILDCARD]/main.ts
Check [WILDCARD]/main.ts$2-5.ts
error: TS2322 [ERROR]: Type 'number' is not assignable to type 'string'.
const a: string = 1;
^
at file://[WILDCARD]/main.ts:8:7
TS2322 [ERROR]: Type 'string' is not assignable to type 'number'.
const b: number = "1";
^
at file://[WILDCARD]/main.ts$2-5.ts:1:7
Found 2 errors.

View File

@ -0,0 +1,8 @@
/**
* ```ts
* const b: number = "1";
* ```
*/
function foo() {}
const a: string = 1;