From bee4a5a6b05b287aa64c0316f2bc4349b35d82c0 Mon Sep 17 00:00:00 2001 From: Don Jayamanne Date: Fri, 24 Apr 2020 16:42:37 -0700 Subject: [PATCH] Fix widget tests --- .../localWidgetScriptSourceProvider.ts | 16 ++++++++++++---- .../ipyWidgetScriptSourceProvider.unit.test.ts | 2 +- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/client/datascience/ipywidgets/localWidgetScriptSourceProvider.ts b/src/client/datascience/ipywidgets/localWidgetScriptSourceProvider.ts index 5b2ffcc92f8d..b69b3e59e2f7 100644 --- a/src/client/datascience/ipywidgets/localWidgetScriptSourceProvider.ts +++ b/src/client/datascience/ipywidgets/localWidgetScriptSourceProvider.ts @@ -55,9 +55,13 @@ export class LocalWidgetScriptSourceProvider implements IWidgetScriptSourceProvi const validFiles = files.filter((file) => { // Should be of the form `/index.js` - const parts = file.split('/'); // On windows this uses the unix separator too. + let parts = file.split('/'); // On windows this uses the unix separator too. + if (parts.length === 1) { + // Fall back if search API changes and returns results with OS path sep. + parts = file.split('\\'); + } if (parts.length !== 2) { - traceError('Incorrect file found when searching for nnbextension entrypoints'); + traceError(`Incorrect file found when searching for nnbextension entrypoints ${file}`); return false; } return true; @@ -65,10 +69,14 @@ export class LocalWidgetScriptSourceProvider implements IWidgetScriptSourceProvi const mappedFiles = validFiles.map(async (file) => { // Should be of the form `/index.js` - const parts = file.split('/'); + let parts = file.split('/'); // On windows this uses the unix separator too. + if (parts.length === 1) { + // Fall back if search API changes and returns results with OS path sep. + parts = file.split('\\'); + } const moduleName = parts[0]; - const fileUri = Uri.file(path.join(nbextensionsPath, file)); + const fileUri = Uri.file(path.join(nbextensionsPath, moduleName, parts[1])); const scriptUri = (await this.localResourceUriConverter.asWebviewUri(fileUri)).toString(); // tslint:disable-next-line: no-unnecessary-local-variable const widgetScriptSource: WidgetScriptSource = { moduleName, scriptUri, source: 'local' }; diff --git a/src/test/datascience/ipywidgets/ipyWidgetScriptSourceProvider.unit.test.ts b/src/test/datascience/ipywidgets/ipyWidgetScriptSourceProvider.unit.test.ts index 3b2ba1d3c536..d9bc133021e5 100644 --- a/src/test/datascience/ipywidgets/ipyWidgetScriptSourceProvider.unit.test.ts +++ b/src/test/datascience/ipywidgets/ipyWidgetScriptSourceProvider.unit.test.ts @@ -24,7 +24,7 @@ import { InterpreterService } from '../../../client/interpreter/interpreterServi // tslint:disable: no-any no-invalid-this -suite('xxxData Science - ipywidget - Widget Script Source Provider', () => { +suite('Data Science - ipywidget - Widget Script Source Provider', () => { let scriptSourceProvider: IPyWidgetScriptSourceProvider; let notebook: INotebook; let configService: IConfigurationService;