Fixes notebook integration tests + running parameterized notebook (#15107)

* fix interface

* fix run all cells on new parameterized notebook

* add getNotebookUri function
This commit is contained in:
Vasu Bhog
2021-04-13 17:23:15 -07:00
committed by GitHub
parent b7ea1c1bf3
commit 9f63653a53
3 changed files with 27 additions and 14 deletions

View File

@@ -9,8 +9,8 @@ import { IContentManager } from 'sql/workbench/services/notebook/browser/models/
import { IStandardKernelWithProvider } from 'sql/workbench/services/notebook/browser/models/notebookUtils';
export interface INotebookInput {
defaultKernel: azdata.nb.IKernelSpec,
connectionProfile: azdata.IConnectionProfile,
defaultKernel?: azdata.nb.IKernelSpec,
connectionProfile?: azdata.IConnectionProfile,
isDirty(): boolean;
setDirty(boolean);
readonly notebookUri: URI;
@@ -22,12 +22,13 @@ export interface INotebookInput {
}
export function isINotebookInput(value: any): value is INotebookInput {
if (typeof value.defaultKernel === 'object' &&
typeof value.connectionProfile === 'object' &&
typeof value.isDirty === 'boolean' &&
value.notebookUri instanceof URI &&
if (
(typeof value.defaultKernel === 'object' || value.defaultKernel === undefined) &&
(typeof value.connectionProfile === 'object' || value.connectionProfile === undefined) &&
typeof value.notebookUri === 'object' &&
typeof value.isDirty === 'function' &&
typeof value.layoutChanged === 'function' &&
typeof value.editorOpenedTimestamp === 'number' &&
typeof value.layoutChanged === 'object' &&
typeof value.contentManager === 'object' &&
typeof value.standardKernels === 'object') {
return true;

View File

@@ -407,8 +407,7 @@ export class NotebookService extends Disposable implements INotebookService {
if (!notebookUri) {
return undefined;
}
// The NotebookEditor will not be found if there is query or fragments attached to the URI
let uriString = notebookUri.with({ query: '', fragment: '' }).toString();
let uriString = getNotebookUri(notebookUri);
let editor = this.listNotebookEditors().find(n => n.id === uriString);
return editor;
}
@@ -707,3 +706,16 @@ export class NotebookService extends Disposable implements INotebookService {
this._onCodeCellExecutionStart.fire();
}
}
/**
* Untitled notebookUri's need to have the query in order to get the NotebookEditor to run other actions (Run All Cells for example) on parameterized notebooks
* otherwise we strip the query and fragment from the notebookUri for all other file schemes
* @param notebookUri of the notebook
* @returns uriString that contains the formatted notebookUri
*/
export function getNotebookUri(notebookUri: URI): string {
if (notebookUri.scheme === 'untitled') {
return notebookUri.toString();
}
return notebookUri.with({ query: '', fragment: '' }).toString();
}