mirror of
https://github.com/kbwo/testing-language-server.git
synced 2025-08-03 15:18:16 +00:00
Merge pull request #53 from kbwo/feat/update-adapter-spec
adapter: Update specification
This commit is contained in:
commit
91db91a229
11 changed files with 168 additions and 123 deletions
10
Cargo.lock
generated
10
Cargo.lock
generated
|
@ -723,9 +723,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "testing-language-server"
|
||||
version = "0.1.7"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8fae6ce9cb290e80814d1796e4207a0a0dc21c216807136d48b68c0f27be29b9"
|
||||
version = "0.1.8"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"chrono",
|
||||
|
@ -750,6 +748,8 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "testing-language-server"
|
||||
version = "0.1.8"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f62894ce27874e8a8bde477d8036fe80acae38a20852f9019d3c881899cc874a"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"chrono",
|
||||
|
@ -773,7 +773,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "testing-ls-adapter"
|
||||
version = "0.0.11"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"clap",
|
||||
|
@ -783,7 +783,7 @@ dependencies = [
|
|||
"serde",
|
||||
"serde_json",
|
||||
"tempfile",
|
||||
"testing-language-server 0.1.7",
|
||||
"testing-language-server 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"tracing",
|
||||
"tracing-appender",
|
||||
"tracing-subscriber",
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "testing-ls-adapter"
|
||||
version = "0.0.11"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
description = "testing-language-server adapter"
|
||||
license = "MIT"
|
||||
|
@ -8,7 +8,7 @@ license = "MIT"
|
|||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
||||
[dependencies]
|
||||
testing-language-server = "0.1.7"
|
||||
testing-language-server = "0.1.8"
|
||||
lsp-types = { workspace = true }
|
||||
serde_json = { workspace = true }
|
||||
serde = { workspace = true }
|
||||
|
|
|
@ -7,7 +7,7 @@ use testing_language_server::spec::DetectWorkspaceResult;
|
|||
use testing_language_server::spec::RunFileTestResult;
|
||||
|
||||
use testing_language_server::spec::DiscoverResult;
|
||||
use testing_language_server::spec::DiscoverResultItem;
|
||||
use testing_language_server::spec::FoundFileTests;
|
||||
use testing_language_server::spec::TestItem;
|
||||
|
||||
use crate::model::Runner;
|
||||
|
@ -18,7 +18,9 @@ use super::util::parse_cargo_diagnostics;
|
|||
use super::util::write_result_log;
|
||||
|
||||
fn detect_workspaces(file_paths: &[String]) -> DetectWorkspaceResult {
|
||||
detect_workspaces_from_file_list(file_paths, &["Cargo.toml".to_string()])
|
||||
DetectWorkspaceResult {
|
||||
data: detect_workspaces_from_file_list(file_paths, &["Cargo.toml".to_string()]),
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Eq, PartialEq, Hash, Debug)]
|
||||
|
@ -28,11 +30,11 @@ impl Runner for CargoNextestRunner {
|
|||
#[tracing::instrument(skip(self))]
|
||||
fn discover(&self, args: testing_language_server::spec::DiscoverArgs) -> Result<(), LSError> {
|
||||
let file_paths = args.file_paths;
|
||||
let mut discover_results: DiscoverResult = vec![];
|
||||
let mut discover_results: DiscoverResult = DiscoverResult { data: vec![] };
|
||||
|
||||
for file_path in file_paths {
|
||||
let tests = discover_rust_tests(&file_path)?;
|
||||
discover_results.push(DiscoverResultItem {
|
||||
discover_results.data.push(FoundFileTests {
|
||||
tests,
|
||||
path: file_path,
|
||||
});
|
||||
|
@ -106,7 +108,7 @@ impl Runner for CargoNextestRunner {
|
|||
#[cfg(test)]
|
||||
mod tests {
|
||||
use lsp_types::{Diagnostic, DiagnosticSeverity, Position, Range};
|
||||
use testing_language_server::spec::{RunFileTestResultItem, TestItem};
|
||||
use testing_language_server::spec::{FileDiagnostics, TestItem};
|
||||
|
||||
use crate::runner::util::MAX_CHAR_LENGTH;
|
||||
|
||||
|
@ -171,24 +173,27 @@ note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
|
|||
|
||||
assert_eq!(
|
||||
diagnostics,
|
||||
vec![RunFileTestResultItem {
|
||||
path: file_paths.first().unwrap().to_owned(),
|
||||
diagnostics: vec![Diagnostic {
|
||||
range: Range {
|
||||
start: Position {
|
||||
line: 85,
|
||||
character: 63
|
||||
RunFileTestResult {
|
||||
data: vec![FileDiagnostics {
|
||||
path: file_paths.first().unwrap().to_owned(),
|
||||
diagnostics: vec![Diagnostic {
|
||||
range: Range {
|
||||
start: Position {
|
||||
line: 85,
|
||||
character: 63
|
||||
},
|
||||
end: Position {
|
||||
line: 85,
|
||||
character: MAX_CHAR_LENGTH
|
||||
}
|
||||
},
|
||||
end: Position {
|
||||
line: 85,
|
||||
character: MAX_CHAR_LENGTH
|
||||
}
|
||||
},
|
||||
message: message.to_string(),
|
||||
severity: Some(DiagnosticSeverity::ERROR),
|
||||
..Diagnostic::default()
|
||||
}]
|
||||
}]
|
||||
message: message.to_string(),
|
||||
severity: Some(DiagnosticSeverity::ERROR),
|
||||
..Diagnostic::default()
|
||||
}]
|
||||
}],
|
||||
messages: vec!()
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
|
@ -211,8 +216,10 @@ note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
|
|||
.collect();
|
||||
|
||||
let workspaces = detect_workspaces(&file_paths);
|
||||
assert_eq!(workspaces.len(), 2);
|
||||
assert!(workspaces.contains_key(absolute_path_of_demo.to_str().unwrap()));
|
||||
assert!(workspaces.contains_key(current_dir.to_str().unwrap()));
|
||||
assert_eq!(workspaces.data.len(), 2);
|
||||
assert!(workspaces
|
||||
.data
|
||||
.contains_key(absolute_path_of_demo.to_str().unwrap()));
|
||||
assert!(workspaces.data.contains_key(current_dir.to_str().unwrap()));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,7 +7,7 @@ use testing_language_server::spec::DetectWorkspaceResult;
|
|||
use testing_language_server::spec::RunFileTestResult;
|
||||
|
||||
use testing_language_server::spec::DiscoverResult;
|
||||
use testing_language_server::spec::DiscoverResultItem;
|
||||
use testing_language_server::spec::FoundFileTests;
|
||||
use testing_language_server::spec::TestItem;
|
||||
|
||||
use crate::model::Runner;
|
||||
|
@ -18,7 +18,9 @@ use super::util::parse_cargo_diagnostics;
|
|||
use super::util::write_result_log;
|
||||
|
||||
fn detect_workspaces(file_paths: &[String]) -> DetectWorkspaceResult {
|
||||
detect_workspaces_from_file_list(file_paths, &["Cargo.toml".to_string()])
|
||||
DetectWorkspaceResult {
|
||||
data: detect_workspaces_from_file_list(file_paths, &["Cargo.toml".to_string()]),
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Eq, PartialEq, Hash, Debug)]
|
||||
|
@ -28,11 +30,11 @@ impl Runner for CargoTestRunner {
|
|||
#[tracing::instrument(skip(self))]
|
||||
fn discover(&self, args: testing_language_server::spec::DiscoverArgs) -> Result<(), LSError> {
|
||||
let file_paths = args.file_paths;
|
||||
let mut discover_results: DiscoverResult = vec![];
|
||||
let mut discover_results: DiscoverResult = DiscoverResult { data: vec![] };
|
||||
|
||||
for file_path in file_paths {
|
||||
let tests = discover_rust_tests(&file_path)?;
|
||||
discover_results.push(DiscoverResultItem {
|
||||
discover_results.data.push(FoundFileTests {
|
||||
tests,
|
||||
path: file_path,
|
||||
});
|
||||
|
@ -101,7 +103,7 @@ impl Runner for CargoTestRunner {
|
|||
#[cfg(test)]
|
||||
mod tests {
|
||||
use lsp_types::{Diagnostic, DiagnosticSeverity, Position, Range};
|
||||
use testing_language_server::spec::RunFileTestResultItem;
|
||||
use testing_language_server::spec::FileDiagnostics;
|
||||
|
||||
use crate::runner::util::MAX_CHAR_LENGTH;
|
||||
|
||||
|
@ -166,24 +168,27 @@ note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
|
|||
|
||||
assert_eq!(
|
||||
diagnostics,
|
||||
vec![RunFileTestResultItem {
|
||||
path: file_paths.first().unwrap().to_owned(),
|
||||
diagnostics: vec![Diagnostic {
|
||||
range: Range {
|
||||
start: Position {
|
||||
line: 85,
|
||||
character: 63
|
||||
RunFileTestResult {
|
||||
data: vec![FileDiagnostics {
|
||||
path: file_paths.first().unwrap().to_owned(),
|
||||
diagnostics: vec![Diagnostic {
|
||||
range: Range {
|
||||
start: Position {
|
||||
line: 85,
|
||||
character: 63
|
||||
},
|
||||
end: Position {
|
||||
line: 85,
|
||||
character: MAX_CHAR_LENGTH
|
||||
}
|
||||
},
|
||||
end: Position {
|
||||
line: 85,
|
||||
character: MAX_CHAR_LENGTH
|
||||
}
|
||||
},
|
||||
message: message.to_string(),
|
||||
severity: Some(DiagnosticSeverity::ERROR),
|
||||
..Diagnostic::default()
|
||||
}]
|
||||
}]
|
||||
message: message.to_string(),
|
||||
severity: Some(DiagnosticSeverity::ERROR),
|
||||
..Diagnostic::default()
|
||||
}]
|
||||
}],
|
||||
messages: vec![]
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
|
@ -206,8 +211,10 @@ note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
|
|||
.collect();
|
||||
|
||||
let workspaces = detect_workspaces(&file_paths);
|
||||
assert_eq!(workspaces.len(), 2);
|
||||
assert!(workspaces.contains_key(absolute_path_of_demo.to_str().unwrap()));
|
||||
assert!(workspaces.contains_key(current_dir.to_str().unwrap()));
|
||||
assert_eq!(workspaces.data.len(), 2);
|
||||
assert!(workspaces
|
||||
.data
|
||||
.contains_key(absolute_path_of_demo.to_str().unwrap()));
|
||||
assert!(workspaces.data.contains_key(current_dir.to_str().unwrap()));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -13,9 +13,9 @@ use testing_language_server::error::LSError;
|
|||
|
||||
use testing_language_server::spec::DetectWorkspaceResult;
|
||||
use testing_language_server::spec::DiscoverResult;
|
||||
use testing_language_server::spec::DiscoverResultItem;
|
||||
use testing_language_server::spec::FileDiagnostics;
|
||||
use testing_language_server::spec::FoundFileTests;
|
||||
use testing_language_server::spec::RunFileTestResult;
|
||||
use testing_language_server::spec::RunFileTestResultItem;
|
||||
use testing_language_server::spec::TestItem;
|
||||
|
||||
use crate::model::Runner;
|
||||
|
@ -89,14 +89,19 @@ fn parse_diagnostics(
|
|||
message += line;
|
||||
}
|
||||
}
|
||||
Ok(result_map
|
||||
.into_iter()
|
||||
.map(|(path, diagnostics)| RunFileTestResultItem { path, diagnostics })
|
||||
.collect())
|
||||
Ok(RunFileTestResult {
|
||||
data: result_map
|
||||
.into_iter()
|
||||
.map(|(path, diagnostics)| FileDiagnostics { path, diagnostics })
|
||||
.collect(),
|
||||
messages: vec![],
|
||||
})
|
||||
}
|
||||
|
||||
fn detect_workspaces(file_paths: Vec<String>) -> DetectWorkspaceResult {
|
||||
detect_workspaces_from_file_list(&file_paths, &["deno.json".to_string()])
|
||||
DetectWorkspaceResult {
|
||||
data: detect_workspaces_from_file_list(&file_paths, &["deno.json".to_string()]),
|
||||
}
|
||||
}
|
||||
|
||||
fn discover(file_path: &str) -> Result<Vec<TestItem>, LSError> {
|
||||
|
@ -161,9 +166,9 @@ impl Runner for DenoRunner {
|
|||
#[tracing::instrument(skip(self))]
|
||||
fn discover(&self, args: testing_language_server::spec::DiscoverArgs) -> Result<(), LSError> {
|
||||
let file_paths = args.file_paths;
|
||||
let mut discover_results: DiscoverResult = vec![];
|
||||
let mut discover_results: DiscoverResult = DiscoverResult { data: vec![] };
|
||||
for file_path in file_paths {
|
||||
discover_results.push(DiscoverResultItem {
|
||||
discover_results.data.push(FoundFileTests {
|
||||
tests: discover(&file_path)?,
|
||||
path: file_path,
|
||||
})
|
||||
|
@ -229,7 +234,7 @@ mod tests {
|
|||
let target_file_path = "/home/demo/test/dneo/main_test.ts";
|
||||
let diagnostics =
|
||||
parse_diagnostics(&test_result, workspace, &[target_file_path.to_string()]).unwrap();
|
||||
assert_eq!(diagnostics.len(), 1);
|
||||
assert_eq!(diagnostics.data.len(), 1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -242,8 +247,8 @@ mod tests {
|
|||
.map(|file_path| file_path.to_str().unwrap().to_string())
|
||||
.collect();
|
||||
let detect_result = detect_workspaces(file_paths);
|
||||
assert_eq!(detect_result.len(), 1);
|
||||
detect_result.iter().for_each(|(workspace, _)| {
|
||||
assert_eq!(detect_result.data.len(), 1);
|
||||
detect_result.data.iter().for_each(|(workspace, _)| {
|
||||
assert_eq!(workspace, absolute_path_of_demo.to_str().unwrap());
|
||||
});
|
||||
}
|
||||
|
|
|
@ -13,9 +13,9 @@ use std::process::Output;
|
|||
use std::str::FromStr;
|
||||
use testing_language_server::error::LSError;
|
||||
use testing_language_server::spec::DiscoverResult;
|
||||
use testing_language_server::spec::DiscoverResultItem;
|
||||
use testing_language_server::spec::FileDiagnostics;
|
||||
use testing_language_server::spec::FoundFileTests;
|
||||
use testing_language_server::spec::RunFileTestResult;
|
||||
use testing_language_server::spec::RunFileTestResultItem;
|
||||
use testing_language_server::spec::TestItem;
|
||||
|
||||
use super::util::detect_workspaces_from_file_list;
|
||||
|
@ -130,10 +130,13 @@ fn parse_diagnostics(
|
|||
}
|
||||
}
|
||||
|
||||
Ok(result_map
|
||||
.into_iter()
|
||||
.map(|(path, diagnostics)| RunFileTestResultItem { path, diagnostics })
|
||||
.collect())
|
||||
Ok(RunFileTestResult {
|
||||
data: result_map
|
||||
.into_iter()
|
||||
.map(|(path, diagnostics)| FileDiagnostics { path, diagnostics })
|
||||
.collect(),
|
||||
messages: vec![],
|
||||
})
|
||||
}
|
||||
|
||||
fn discover(file_path: &str) -> Result<Vec<TestItem>, LSError> {
|
||||
|
@ -232,11 +235,11 @@ impl Runner for GoTestRunner {
|
|||
args: testing_language_server::spec::DiscoverArgs,
|
||||
) -> Result<(), testing_language_server::error::LSError> {
|
||||
let file_paths = args.file_paths;
|
||||
let mut discover_results: DiscoverResult = vec![];
|
||||
let mut discover_results: DiscoverResult = DiscoverResult { data: vec![] };
|
||||
|
||||
for file_path in file_paths {
|
||||
let tests = discover(&file_path)?;
|
||||
discover_results.push(DiscoverResultItem {
|
||||
discover_results.data.push(FoundFileTests {
|
||||
tests,
|
||||
path: file_path,
|
||||
});
|
||||
|
@ -305,7 +308,7 @@ mod tests {
|
|||
let target_file_path = "/home/demo/test/go/src/test/cases_test.go";
|
||||
let result =
|
||||
parse_diagnostics(&contents, workspace, &[target_file_path.to_string()]).unwrap();
|
||||
let result = result.first().unwrap();
|
||||
let result = result.data.first().unwrap();
|
||||
assert_eq!(result.path, target_file_path);
|
||||
let diagnostic = result.diagnostics.first().unwrap();
|
||||
assert_eq!(diagnostic.range.start.line, 30);
|
||||
|
|
|
@ -8,9 +8,9 @@ use testing_language_server::error::LSError;
|
|||
|
||||
use testing_language_server::spec::DetectWorkspaceResult;
|
||||
use testing_language_server::spec::DiscoverResult;
|
||||
use testing_language_server::spec::DiscoverResultItem;
|
||||
use testing_language_server::spec::FileDiagnostics;
|
||||
use testing_language_server::spec::FoundFileTests;
|
||||
use testing_language_server::spec::RunFileTestResult;
|
||||
use testing_language_server::spec::RunFileTestResultItem;
|
||||
use testing_language_server::spec::TestItem;
|
||||
|
||||
use crate::model::Runner;
|
||||
|
@ -67,14 +67,19 @@ fn parse_diagnostics(
|
|||
})
|
||||
}
|
||||
}
|
||||
Ok(result_map
|
||||
.into_iter()
|
||||
.map(|(path, diagnostics)| RunFileTestResultItem { path, diagnostics })
|
||||
.collect())
|
||||
Ok(RunFileTestResult {
|
||||
data: result_map
|
||||
.into_iter()
|
||||
.map(|(path, diagnostics)| FileDiagnostics { path, diagnostics })
|
||||
.collect(),
|
||||
messages: vec![],
|
||||
})
|
||||
}
|
||||
|
||||
fn detect_workspaces(file_paths: Vec<String>) -> DetectWorkspaceResult {
|
||||
detect_workspaces_from_file_list(&file_paths, &["package.json".to_string()])
|
||||
DetectWorkspaceResult {
|
||||
data: detect_workspaces_from_file_list(&file_paths, &["package.json".to_string()]),
|
||||
}
|
||||
}
|
||||
|
||||
fn discover(file_path: &str) -> Result<Vec<TestItem>, LSError> {
|
||||
|
@ -159,9 +164,9 @@ impl Runner for JestRunner {
|
|||
#[tracing::instrument(skip(self))]
|
||||
fn discover(&self, args: testing_language_server::spec::DiscoverArgs) -> Result<(), LSError> {
|
||||
let file_paths = args.file_paths;
|
||||
let mut discover_results: DiscoverResult = vec![];
|
||||
let mut discover_results: DiscoverResult = DiscoverResult { data: vec![] };
|
||||
for file_path in file_paths {
|
||||
discover_results.push(DiscoverResultItem {
|
||||
discover_results.data.push(FoundFileTests {
|
||||
tests: discover(&file_path)?,
|
||||
path: file_path,
|
||||
})
|
||||
|
@ -229,7 +234,7 @@ mod tests {
|
|||
],
|
||||
)
|
||||
.unwrap();
|
||||
assert_eq!(diagnostics.len(), 2);
|
||||
assert_eq!(diagnostics.data.len(), 2);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -242,8 +247,8 @@ mod tests {
|
|||
.map(|file_path| file_path.to_str().unwrap().to_string())
|
||||
.collect();
|
||||
let detect_result = detect_workspaces(file_paths);
|
||||
assert_eq!(detect_result.len(), 1);
|
||||
detect_result.iter().for_each(|(workspace, _)| {
|
||||
assert_eq!(detect_result.data.len(), 1);
|
||||
detect_result.data.iter().for_each(|(workspace, _)| {
|
||||
assert_eq!(workspace, absolute_path_of_demo.to_str().unwrap());
|
||||
});
|
||||
}
|
||||
|
|
|
@ -4,8 +4,8 @@ use regex::Regex;
|
|||
use testing_language_server::{
|
||||
error::LSError,
|
||||
spec::{
|
||||
DetectWorkspaceResult, DiscoverResult, DiscoverResultItem, RunFileTestResult,
|
||||
RunFileTestResultItem, TestItem,
|
||||
DetectWorkspaceResult, DiscoverResult, FileDiagnostics, FoundFileTests, RunFileTestResult,
|
||||
TestItem,
|
||||
},
|
||||
};
|
||||
use xml::{reader::XmlEvent, ParserConfig};
|
||||
|
@ -162,9 +162,9 @@ impl Runner for NodeTestRunner {
|
|||
#[tracing::instrument(skip(self))]
|
||||
fn discover(&self, args: testing_language_server::spec::DiscoverArgs) -> Result<(), LSError> {
|
||||
let file_paths = args.file_paths;
|
||||
let mut discover_results: DiscoverResult = vec![];
|
||||
let mut discover_results: DiscoverResult = DiscoverResult { data: vec![] };
|
||||
for file_path in file_paths {
|
||||
discover_results.push(DiscoverResultItem {
|
||||
discover_results.data.push(FoundFileTests {
|
||||
tests: discover(&file_path)?,
|
||||
path: file_path,
|
||||
})
|
||||
|
@ -194,14 +194,18 @@ impl Runner for NodeTestRunner {
|
|||
}
|
||||
let stdout = String::from_utf8(stdout).unwrap();
|
||||
let result_from_xml = get_result_from_xml(&stdout, &file_paths)?;
|
||||
let diagnostics: RunFileTestResult = result_from_xml
|
||||
let result_item: Vec<FileDiagnostics> = result_from_xml
|
||||
.into_iter()
|
||||
.map(|result_from_xml| {
|
||||
let result_item: RunFileTestResultItem = result_from_xml.into();
|
||||
let result_item: FileDiagnostics = result_from_xml.into();
|
||||
result_item
|
||||
})
|
||||
.collect();
|
||||
send_stdout(&diagnostics)?;
|
||||
let result = RunFileTestResult {
|
||||
data: result_item,
|
||||
messages: vec![],
|
||||
};
|
||||
send_stdout(&result)?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
|
@ -211,8 +215,9 @@ impl Runner for NodeTestRunner {
|
|||
args: testing_language_server::spec::DetectWorkspaceArgs,
|
||||
) -> Result<(), LSError> {
|
||||
let file_paths = args.file_paths;
|
||||
let detect_result: DetectWorkspaceResult =
|
||||
detect_workspaces_from_file_list(&file_paths, &["package.json".to_string()]);
|
||||
let detect_result: DetectWorkspaceResult = DetectWorkspaceResult {
|
||||
data: detect_workspaces_from_file_list(&file_paths, &["package.json".to_string()]),
|
||||
};
|
||||
send_stdout(&detect_result)?;
|
||||
Ok(())
|
||||
}
|
||||
|
|
|
@ -3,8 +3,8 @@ use std::io::BufReader;
|
|||
use std::process::Output;
|
||||
use testing_language_server::error::LSError;
|
||||
use testing_language_server::spec::{
|
||||
DetectWorkspaceResult, DiscoverResult, DiscoverResultItem, RunFileTestResult,
|
||||
RunFileTestResultItem, TestItem,
|
||||
DetectWorkspaceResult, DiscoverResult, FileDiagnostics, FoundFileTests, RunFileTestResult,
|
||||
TestItem,
|
||||
};
|
||||
use xml::reader::{ParserConfig, XmlEvent};
|
||||
|
||||
|
@ -16,7 +16,9 @@ use super::util::{
|
|||
};
|
||||
|
||||
fn detect_workspaces(file_paths: Vec<String>) -> DetectWorkspaceResult {
|
||||
detect_workspaces_from_file_list(&file_paths, &["composer.json".to_string()])
|
||||
DetectWorkspaceResult {
|
||||
data: detect_workspaces_from_file_list(&file_paths, &["composer.json".to_string()]),
|
||||
}
|
||||
}
|
||||
|
||||
fn get_result_from_characters(characters: &str) -> Result<ResultFromXml, anyhow::Error> {
|
||||
|
@ -125,9 +127,9 @@ impl Runner for PhpunitRunner {
|
|||
#[tracing::instrument(skip(self))]
|
||||
fn discover(&self, args: testing_language_server::spec::DiscoverArgs) -> Result<(), LSError> {
|
||||
let file_paths = args.file_paths;
|
||||
let mut discover_results: DiscoverResult = vec![];
|
||||
let mut discover_results: DiscoverResult = DiscoverResult { data: vec![] };
|
||||
for file_path in file_paths {
|
||||
discover_results.push(DiscoverResultItem {
|
||||
discover_results.data.push(FoundFileTests {
|
||||
tests: discover(&file_path)?,
|
||||
path: file_path,
|
||||
})
|
||||
|
@ -177,14 +179,18 @@ impl Runner for PhpunitRunner {
|
|||
return Err(LSError::Adapter(String::from_utf8(stderr).unwrap()));
|
||||
}
|
||||
let result_from_xml = get_result_from_xml(log_path.to_str().unwrap())?;
|
||||
let diagnostics: RunFileTestResult = result_from_xml
|
||||
let result_item: Vec<FileDiagnostics> = result_from_xml
|
||||
.into_iter()
|
||||
.map(|result_from_xml| {
|
||||
let result_item: RunFileTestResultItem = result_from_xml.into();
|
||||
let result_item: FileDiagnostics = result_from_xml.into();
|
||||
result_item
|
||||
})
|
||||
.collect();
|
||||
send_stdout(&diagnostics)?;
|
||||
let result = RunFileTestResult {
|
||||
data: result_item,
|
||||
messages: vec![],
|
||||
};
|
||||
send_stdout(&result)?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@ use std::sync::LazyLock;
|
|||
use lsp_types::{Diagnostic, DiagnosticSeverity, Position, Range};
|
||||
use regex::Regex;
|
||||
use serde::Serialize;
|
||||
use testing_language_server::spec::{RunFileTestResultItem, TestItem};
|
||||
use testing_language_server::spec::{FileDiagnostics, TestItem};
|
||||
use testing_language_server::{error::LSError, spec::RunFileTestResult};
|
||||
use tree_sitter::{Language, Point, Query, QueryCursor};
|
||||
|
||||
|
@ -30,9 +30,10 @@ pub struct ResultFromXml {
|
|||
pub col: u32,
|
||||
}
|
||||
|
||||
impl Into<RunFileTestResultItem> for ResultFromXml {
|
||||
fn into(self) -> RunFileTestResultItem {
|
||||
RunFileTestResultItem {
|
||||
#[allow(clippy::from_over_into)]
|
||||
impl Into<FileDiagnostics> for ResultFromXml {
|
||||
fn into(self) -> FileDiagnostics {
|
||||
FileDiagnostics {
|
||||
path: self.path,
|
||||
diagnostics: vec![Diagnostic {
|
||||
message: self.message,
|
||||
|
@ -371,10 +372,15 @@ pub fn parse_cargo_diagnostics(
|
|||
}
|
||||
}
|
||||
|
||||
result_map
|
||||
let data = result_map
|
||||
.into_iter()
|
||||
.map(|(path, diagnostics)| RunFileTestResultItem { path, diagnostics })
|
||||
.collect()
|
||||
.map(|(path, diagnostics)| FileDiagnostics { path, diagnostics })
|
||||
.collect();
|
||||
|
||||
RunFileTestResult {
|
||||
data,
|
||||
messages: vec![],
|
||||
}
|
||||
}
|
||||
|
||||
/// remove this function because duplicate implementation
|
||||
|
|
|
@ -7,9 +7,7 @@ use lsp_types::{Diagnostic, DiagnosticSeverity};
|
|||
use serde_json::Value;
|
||||
use testing_language_server::{
|
||||
error::LSError,
|
||||
spec::{
|
||||
DiscoverResult, DiscoverResultItem, RunFileTestResult, RunFileTestResultItem, TestItem,
|
||||
},
|
||||
spec::{DiscoverResult, FileDiagnostics, FoundFileTests, RunFileTestResult, TestItem},
|
||||
};
|
||||
|
||||
use crate::model::Runner;
|
||||
|
@ -124,21 +122,24 @@ fn parse_diagnostics(
|
|||
})
|
||||
}
|
||||
}
|
||||
Ok(result_map
|
||||
.into_iter()
|
||||
.map(|(path, diagnostics)| RunFileTestResultItem { path, diagnostics })
|
||||
.collect())
|
||||
Ok(RunFileTestResult {
|
||||
data: result_map
|
||||
.into_iter()
|
||||
.map(|(path, diagnostics)| FileDiagnostics { path, diagnostics })
|
||||
.collect(),
|
||||
messages: vec![],
|
||||
})
|
||||
}
|
||||
|
||||
impl Runner for VitestRunner {
|
||||
#[tracing::instrument(skip(self))]
|
||||
fn discover(&self, args: testing_language_server::spec::DiscoverArgs) -> Result<(), LSError> {
|
||||
let file_paths = args.file_paths;
|
||||
let mut discover_results: DiscoverResult = vec![];
|
||||
let mut discover_results: DiscoverResult = DiscoverResult { data: vec![] };
|
||||
|
||||
for file_path in file_paths {
|
||||
let tests = discover(&file_path)?;
|
||||
discover_results.push(DiscoverResultItem {
|
||||
discover_results.data.push(FoundFileTests {
|
||||
tests,
|
||||
path: file_path,
|
||||
});
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue