Add a QueryDiscoverer interface to make testing QueryTreeDataProvider easier
This commit is contained in:
@@ -7,6 +7,7 @@ import { App } from "../common/app";
|
||||
import { FileTreeDirectory, FileTreeLeaf } from "../common/file-tree-nodes";
|
||||
import { getOnDiskWorkspaceFoldersObjects } from "../helpers";
|
||||
import { AppEventEmitter } from "../common/events";
|
||||
import { QueryDiscoverer } from "./query-tree-data-provider";
|
||||
|
||||
/**
|
||||
* The results of discovering queries.
|
||||
@@ -28,7 +29,10 @@ interface QueryDiscoveryResults {
|
||||
/**
|
||||
* Discovers all query files contained in the QL packs in a given workspace folder.
|
||||
*/
|
||||
export class QueryDiscovery extends Discovery<QueryDiscoveryResults> {
|
||||
export class QueryDiscovery
|
||||
extends Discovery<QueryDiscoveryResults>
|
||||
implements QueryDiscoverer
|
||||
{
|
||||
private results: QueryDiscoveryResults | undefined;
|
||||
|
||||
private readonly onDidChangeQueriesEmitter: AppEventEmitter<void>;
|
||||
|
||||
@@ -1,9 +1,13 @@
|
||||
import { Event, EventEmitter, TreeDataProvider, TreeItem } from "vscode";
|
||||
import { QueryTreeViewItem } from "./query-tree-view-item";
|
||||
import { DisposableObject } from "../pure/disposable-object";
|
||||
import { QueryDiscovery } from "./query-discovery";
|
||||
import { FileTreeNode } from "../common/file-tree-nodes";
|
||||
|
||||
export interface QueryDiscoverer {
|
||||
readonly queries: FileTreeNode[] | undefined;
|
||||
readonly onDidChangeQueries: Event<void>;
|
||||
}
|
||||
|
||||
export class QueryTreeDataProvider
|
||||
extends DisposableObject
|
||||
implements TreeDataProvider<QueryTreeViewItem>
|
||||
@@ -14,10 +18,10 @@ export class QueryTreeDataProvider
|
||||
new EventEmitter<void>(),
|
||||
);
|
||||
|
||||
public constructor(private readonly queryDiscovery: QueryDiscovery) {
|
||||
public constructor(private readonly queryDiscoverer: QueryDiscoverer) {
|
||||
super();
|
||||
|
||||
queryDiscovery.onDidChangeQueries(() => {
|
||||
queryDiscoverer.onDidChangeQueries(() => {
|
||||
this.queryTreeItems = this.createTree();
|
||||
this.onDidChangeTreeDataEmitter.fire();
|
||||
});
|
||||
@@ -30,7 +34,7 @@ export class QueryTreeDataProvider
|
||||
}
|
||||
|
||||
private createTree(): QueryTreeViewItem[] {
|
||||
return (this.queryDiscovery.queries || []).map(
|
||||
return (this.queryDiscoverer.queries || []).map(
|
||||
this.convertFileTreeNode.bind(this),
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user