Skip to content

Commit

Permalink
fix(test): proper type checking for files with doc tests (#23654)
Browse files Browse the repository at this point in the history
Closes #23430

---------

Co-authored-by: Yoshiya Hinosawa <stibium121@gmail.com>
  • Loading branch information
crowlKats and kt3k committed May 2, 2024
1 parent 811280a commit 1b27b58
Show file tree
Hide file tree
Showing 4 changed files with 37 additions and 22 deletions.
33 changes: 11 additions & 22 deletions cli/tools/test/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand All @@ -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(
Expand Down
5 changes: 5 additions & 0 deletions tests/specs/test/type_check_with_doc/__test__.jsonc
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"args": "test --doc main.ts",
"output": "main.out",
"exitCode": 1
}
13 changes: 13 additions & 0 deletions tests/specs/test/type_check_with_doc/main.out
Original file line number Diff line number Diff line change
@@ -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.
8 changes: 8 additions & 0 deletions tests/specs/test/type_check_with_doc/main.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
/**
* ```ts
* const b: number = "1";
* ```
*/
function foo() {}

const a: string = 1;

0 comments on commit 1b27b58

Please sign in to comment.