Skip to content

Commit b9ce91c

Browse files
Add a QueryDiscoverer interface to make testing QueryTreeDataProvider easier
1 parent 7ef35af commit b9ce91c

2 files changed

Lines changed: 13 additions & 5 deletions

File tree

extensions/ql-vscode/src/queries-panel/query-discovery.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import { App } from "../common/app";
77
import { FileTreeDirectory, FileTreeLeaf } from "../common/file-tree-nodes";
88
import { getOnDiskWorkspaceFoldersObjects } from "../helpers";
99
import { AppEventEmitter } from "../common/events";
10+
import { QueryDiscoverer } from "./query-tree-data-provider";
1011

1112
/**
1213
* The results of discovering queries.
@@ -28,7 +29,10 @@ interface QueryDiscoveryResults {
2829
/**
2930
* Discovers all query files contained in the QL packs in a given workspace folder.
3031
*/
31-
export class QueryDiscovery extends Discovery<QueryDiscoveryResults> {
32+
export class QueryDiscovery
33+
extends Discovery<QueryDiscoveryResults>
34+
implements QueryDiscoverer
35+
{
3236
private results: QueryDiscoveryResults | undefined;
3337

3438
private readonly onDidChangeQueriesEmitter: AppEventEmitter<void>;

extensions/ql-vscode/src/queries-panel/query-tree-data-provider.ts

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
11
import { Event, EventEmitter, TreeDataProvider, TreeItem } from "vscode";
22
import { QueryTreeViewItem } from "./query-tree-view-item";
33
import { DisposableObject } from "../pure/disposable-object";
4-
import { QueryDiscovery } from "./query-discovery";
54
import { FileTreeNode } from "../common/file-tree-nodes";
65

6+
export interface QueryDiscoverer {
7+
readonly queries: FileTreeNode[] | undefined;
8+
readonly onDidChangeQueries: Event<void>;
9+
}
10+
711
export class QueryTreeDataProvider
812
extends DisposableObject
913
implements TreeDataProvider<QueryTreeViewItem>
@@ -14,10 +18,10 @@ export class QueryTreeDataProvider
1418
new EventEmitter<void>(),
1519
);
1620

17-
public constructor(private readonly queryDiscovery: QueryDiscovery) {
21+
public constructor(private readonly queryDiscoverer: QueryDiscoverer) {
1822
super();
1923

20-
queryDiscovery.onDidChangeQueries(() => {
24+
queryDiscoverer.onDidChangeQueries(() => {
2125
this.queryTreeItems = this.createTree();
2226
this.onDidChangeTreeDataEmitter.fire();
2327
});
@@ -30,7 +34,7 @@ export class QueryTreeDataProvider
3034
}
3135

3236
private createTree(): QueryTreeViewItem[] {
33-
return (this.queryDiscovery.queries || []).map(
37+
return (this.queryDiscoverer.queries || []).map(
3438
this.convertFileTreeNode.bind(this),
3539
);
3640
}

0 commit comments

Comments
 (0)