mirror of
https://github.com/denoland/deno.git
synced 2024-10-29 08:58:01 -04:00
d28384c3de
Previously:
```rust
pub struct TestDefinition {
pub id: String,
pub name: String,
pub range: SourceRange,
pub steps: Vec<TestDefinition>,
}
pub struct TestDefinitions {
pub discovered: Vec<TestDefinition>,
pub injected: Vec<lsp_custom::TestData>,
pub script_version: String,
}
```
Now:
```rust
pub struct TestDefinition {
pub id: String,
pub name: String,
pub range: Option<Range>,
pub is_dynamic: bool, // True for 'injected' module, not statically detected but added at runtime.
pub parent_id: Option<String>,
pub step_ids: HashSet<String>,
}
pub struct TestModule {
pub specifier: ModuleSpecifier,
pub script_version: String,
pub defs: HashMap<String, TestDefinition>,
}
```
Storing the test tree as a literal tree diminishes the value of IDs,
even though vscode stores them that way. This makes all data easily
accessible from `TestModule`. It unifies the interface between
'discovered' and 'injected' tests. This unblocks some enhancements wrt
syncing tests between the LSP and extension, such as this TODO:
|
||
---|---|---|
.. | ||
bench | ||
coverage | ||
init | ||
repl | ||
test | ||
vendor | ||
bundle.rs | ||
check.rs | ||
compile.rs | ||
doc.rs | ||
fmt.rs | ||
info.rs | ||
installer.rs | ||
lint.rs | ||
mod.rs | ||
run.rs | ||
task.rs | ||
upgrade.rs |