Skip to content

Commit 5922ca8

Browse files
committed
fix tests
1 parent 37c54a8 commit 5922ca8

File tree

2 files changed

+47
-12
lines changed

2 files changed

+47
-12
lines changed

cli/lsp/diagnostics.rs

+44-9
Original file line numberDiff line numberDiff line change
@@ -1824,6 +1824,12 @@ fn diagnose_dependency(
18241824
DenoDiagnostic::NoCache(url) | DenoDiagnostic::NoLocal(url) => {
18251825
Some((url.to_string(), diag.to_lsp_diagnostic(&range)))
18261826
}
1827+
DenoDiagnostic::ResolutionError(
1828+
ResolutionError::InvalidSpecifier {
1829+
error: SpecifierError::ImportPrefixMissing { specifier, .. },
1830+
..
1831+
},
1832+
) => Some((specifier.clone(), diag.to_lsp_diagnostic(&range))),
18271833
_ => None,
18281834
}
18291835
})));
@@ -2013,12 +2019,11 @@ let c: number = "a";
20132019
.unwrap()
20142020
.0;
20152021
assert_eq!(get_diagnostics_for_single(diagnostics).len(), 4);
2016-
let diagnostics = generate_deno_diagnostics(
2022+
let diagnostics = generate_all_deno_diagnostics(
20172023
&snapshot,
20182024
&enabled_config,
20192025
Default::default(),
2020-
)
2021-
.0;
2026+
);
20222027
assert_eq!(get_diagnostics_for_single(diagnostics).len(), 1);
20232028
}
20242029

@@ -2049,12 +2054,11 @@ let c: number = "a";
20492054
.unwrap()
20502055
.0;
20512056
assert_eq!(get_diagnostics_for_single(diagnostics).len(), 0);
2052-
let diagnostics = generate_deno_diagnostics(
2057+
let diagnostics = generate_all_deno_diagnostics(
20532058
&snapshot,
20542059
&disabled_config,
20552060
Default::default(),
2056-
)
2057-
.0;
2061+
);
20582062
assert_eq!(get_diagnostics_for_single(diagnostics).len(), 0);
20592063
}
20602064
}
@@ -2074,6 +2078,37 @@ let c: number = "a";
20742078
.diagnostics
20752079
}
20762080

2081+
fn generate_all_deno_diagnostics(
2082+
snapshot: &StateSnapshot,
2083+
config: &Config,
2084+
token: CancellationToken,
2085+
) -> DiagnosticVec {
2086+
let (diagnostics, deferred) =
2087+
generate_deno_diagnostics(snapshot, config, token);
2088+
2089+
let mut all_diagnostics = diagnostics
2090+
.into_iter()
2091+
.map(|d| (d.specifier.clone(), d))
2092+
.collect::<HashMap<_, _>>();
2093+
for diag in deferred {
2094+
let existing = all_diagnostics
2095+
.entry(diag.document_specifier.clone())
2096+
.or_insert_with(|| DiagnosticRecord {
2097+
specifier: diag.document_specifier.clone(),
2098+
versioned: VersionedDiagnostics {
2099+
diagnostics: vec![],
2100+
version: diag.version,
2101+
},
2102+
});
2103+
existing
2104+
.versioned
2105+
.diagnostics
2106+
.extend(diag.diagnostics.into_iter().map(|(_, d)| d));
2107+
assert_eq!(existing.versioned.version, diag.version);
2108+
}
2109+
all_diagnostics.into_values().collect()
2110+
}
2111+
20772112
#[tokio::test]
20782113
async fn test_deno_diagnostics_with_import_map() {
20792114
let (temp_dir, snapshot) = setup(
@@ -2103,7 +2138,7 @@ let c: number = "a";
21032138
.await;
21042139
let config = mock_config();
21052140
let token = CancellationToken::new();
2106-
let actual = generate_deno_diagnostics(&snapshot, &config, token).0;
2141+
let actual = generate_all_deno_diagnostics(&snapshot, &config, token);
21072142
assert_eq!(actual.len(), 2);
21082143
for record in actual {
21092144
let relative_specifier =
@@ -2230,7 +2265,7 @@ let c: number = "a";
22302265
.await;
22312266
let config = mock_config();
22322267
let token = CancellationToken::new();
2233-
let actual = generate_deno_diagnostics(&snapshot, &config, token).0;
2268+
let actual = generate_all_deno_diagnostics(&snapshot, &config, token);
22342269
assert_eq!(actual.len(), 1);
22352270
let record = actual.first().unwrap();
22362271
assert_eq!(
@@ -2304,7 +2339,7 @@ let c: number = "a";
23042339
.await;
23052340
let config = mock_config();
23062341
let token = CancellationToken::new();
2307-
let actual = generate_deno_diagnostics(&snapshot, &config, token).0;
2342+
let actual = generate_all_deno_diagnostics(&snapshot, &config, token);
23082343
assert_eq!(actual.len(), 1);
23092344
let record = actual.first().unwrap();
23102345
assert_eq!(

cli/lsp/tsc.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -5718,7 +5718,7 @@ mod tests {
57185718
)
57195719
.await;
57205720
let specifier = temp_dir.url().join("a.ts").unwrap();
5721-
let diagnostics = ts_server
5721+
let (diagnostics, _) = ts_server
57225722
.get_diagnostics(snapshot, vec![specifier.clone()], Default::default())
57235723
.await
57245724
.unwrap();
@@ -5764,7 +5764,7 @@ mod tests {
57645764
)
57655765
.await;
57665766
let specifier = temp_dir.url().join("a.ts").unwrap();
5767-
let diagnostics = ts_server
5767+
let (diagnostics, _) = ts_server
57685768
.get_diagnostics(snapshot, vec![specifier.clone()], Default::default())
57695769
.await
57705770
.unwrap();
@@ -6053,7 +6053,7 @@ mod tests {
60536053
)
60546054
.unwrap();
60556055
let specifier = temp_dir.url().join("a.ts").unwrap();
6056-
let diagnostics = ts_server
6056+
let (diagnostics, _) = ts_server
60576057
.get_diagnostics(
60586058
snapshot.clone(),
60596059
vec![specifier.clone()],

0 commit comments

Comments
 (0)