Skip to content

Commit ccf9a23

Browse files
authored
test: ensure SlideTreeProvider is disposed (#1369)
1 parent 9a83ae5 commit ccf9a23

2 files changed

Lines changed: 19 additions & 1 deletion

File tree

src/SlideExplorer.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,9 @@ export class SlideTreeProvider extends Disposable
3434
}
3535

3636
public register() {
37-
return vscode.window.registerTreeDataProvider('slidesExplorer', this)
37+
return this._register(
38+
vscode.window.registerTreeDataProvider('slidesExplorer', this)
39+
)
3840
}
3941

4042
public getTreeItem(element: SlideNode): vscode.TreeItem | Thenable<vscode.TreeItem> {
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import { SlideTreeProvider } from "../../SlideExplorer";
2+
import * as vscode from "vscode";
3+
4+
test('dispose cleans up registered provider', () => {
5+
const dispose = jest.fn();
6+
const registration = { dispose } as vscode.Disposable;
7+
const spy = jest.spyOn(vscode.window, 'registerTreeDataProvider').mockReturnValue(registration);
8+
9+
const provider = new SlideTreeProvider(() => []);
10+
provider.register();
11+
provider.dispose();
12+
13+
expect(spy).toHaveBeenCalledTimes(1);
14+
expect(dispose).toHaveBeenCalledTimes(1);
15+
spy.mockRestore();
16+
});

0 commit comments

Comments
 (0)