Fix/open book error (#11379)

* add isNotebook param and showPreview option

* showPreview changes

* update OpenNotebookFolder to open a specific path

* added test for showPreviewFile

* test name typo

* remove isNotebook from openBook
This commit is contained in:
Maddy
2020-07-22 22:23:37 -07:00
committed by GitHub
parent a889d017f5
commit 21cf89fb7e
3 changed files with 74 additions and 28 deletions

View File

@@ -525,8 +525,21 @@ describe('BooksTreeViewTests', function () {
it('should add book and initialize book on openBook', async () => {
should(bookTreeViewProvider.books.length).equal(0, 'Invalid books on initialize.');
let showPreviewSpy = sinon.spy(bookTreeViewProvider, 'showPreviewFile');
await bookTreeViewProvider.openBook(rootFolderPath);
should(bookTreeViewProvider.books.length).equal(1, 'Failed to initialize the book on open');
should(showPreviewSpy.notCalled).be.true('Should not call showPreviewFile when showPreview isn\' true');
});
it('should call showPreviewFile on openBook when showPreview flag is set', async () => {
await bookTreeViewProvider.closeBook(bookTreeViewProvider.books[0].bookItems[0]);
let showPreviewSpy = sinon.spy(bookTreeViewProvider, 'showPreviewFile');
await bookTreeViewProvider.openBook(rootFolderPath, undefined, true);
should(bookTreeViewProvider.books.length).equal(1, 'Failed to initialize the book on open');
should(showPreviewSpy.calledOnce).be.true('Should have called showPreviewFile.');
});
it('should add book when bookPath contains special characters on openBook', async () => {
@@ -554,11 +567,20 @@ describe('BooksTreeViewTests', function () {
should(notebookUri.scheme).equal('untitled', 'Failed to get untitled uri of the resource');
});
it('openNotebookFolder should prompt for notebook path and invoke loadNotebooksInFolder', async () => {
it('openNotebookFolder without folderPath should prompt for folder path and invoke loadNotebooksInFolder', async () => {
sinon.stub(vscode.window, 'showOpenDialog').returns(Promise.resolve([vscode.Uri.file(rootFolderPath)]));
let loadNotebooksSpy = sinon.spy(bookTreeViewProvider, 'loadNotebooksInFolder');
await bookTreeViewProvider.openNotebookFolder();
should(loadNotebooksSpy.calledWith(rootFolderPath)).be.true('openNotebookFolder should have called loadNotebooksInFolder passing the folderPath');
});
it('openNotebookFolder with folderPath shouldn\'t prompt for folder path but invoke loadNotebooksInFolder with the provided folderPath', async () => {
let showOpenDialogSpy = sinon.spy(vscode.window, 'showOpenDialog');
let loadNotebooksSpy = sinon.spy(bookTreeViewProvider, 'loadNotebooksInFolder');
await bookTreeViewProvider.openNotebookFolder(rootFolderPath);
should(showOpenDialogSpy.notCalled).be.true('openNotebookFolder with folderPath shouldn\'t prompt to select folder');
should(loadNotebooksSpy.calledOnce).be.true('openNotebookFolder should have called loadNotebooksInFolder');
});