From 6c96c80c8c4fa7c02336acf6dd184dc4cba50d0e Mon Sep 17 00:00:00 2001 From: Jeremy Tuloup Date: Mon, 22 Nov 2021 15:15:40 +0100 Subject: [PATCH] Fix user settings overrides --- packages/application-extension/src/index.ts | 13 +++++++++--- packages/application/src/app.ts | 2 +- packages/notebook-extension/src/index.ts | 11 +++++++--- ui-tests/test/jupyter_server_config.py | 7 +++++- ui-tests/test/mobile.spec.ts | 20 ++++++++++++++++++ .../notebook-chromium-linux.png | Bin 0 -> 10595 bytes .../notebook-firefox-linux.png | Bin 0 -> 9632 bytes .../tree-chromium-linux.png | Bin 0 -> 23372 bytes .../tree-firefox-linux.png | Bin 0 -> 20610 bytes ui-tests/test/settings.spec.ts | 6 ++++-- 10 files changed, 49 insertions(+), 10 deletions(-) create mode 100644 ui-tests/test/mobile.spec.ts-snapshots/notebook-chromium-linux.png create mode 100644 ui-tests/test/mobile.spec.ts-snapshots/notebook-firefox-linux.png create mode 100644 ui-tests/test/mobile.spec.ts-snapshots/tree-chromium-linux.png create mode 100644 ui-tests/test/mobile.spec.ts-snapshots/tree-firefox-linux.png diff --git a/packages/application-extension/src/index.ts b/packages/application-extension/src/index.ts index 9fd0bb3f..d85a7911 100644 --- a/packages/application-extension/src/index.ts +++ b/packages/application-extension/src/index.ts @@ -527,11 +527,16 @@ const topVisibility: JupyterFrontEndPlugin = { menu.viewMenu.addGroup([{ command: CommandIDs.toggleTop }], 2); } + let settingsOverride = false; + if (settingRegistry) { const loadSettings = settingRegistry.load(pluginId); const updateSettings = (settings: ISettingRegistry.ISettings): void => { - const visible = settings.get('visible').composite as boolean; - top.setHidden(!visible); + const visible = settings.get('visible').composite; + if (settings.user.visible !== undefined) { + settingsOverride = true; + top.setHidden(!visible); + } }; Promise.all([loadSettings, app.restored]) @@ -547,6 +552,9 @@ const topVisibility: JupyterFrontEndPlugin = { } const onChanged = (): void => { + if (settingsOverride) { + return; + } if (app.format === 'desktop') { retroShell.expandTop(); } else { @@ -556,7 +564,6 @@ const topVisibility: JupyterFrontEndPlugin = { // listen on format change (mobile and desktop) to make the view more compact app.formatChanged.connect(onChanged); - onChanged(); }, autoStart: true }; diff --git a/packages/application/src/app.ts b/packages/application/src/app.ts index 7bba90ce..25a3d4e9 100644 --- a/packages/application/src/app.ts +++ b/packages/application/src/app.ts @@ -37,7 +37,7 @@ export class RetroApp extends JupyterFrontEnd { this.registerPlugin(plugin); } } - void this._formatter.invoke(); + this.restored.then(() => this._formatter.invoke()); } /** diff --git a/packages/notebook-extension/src/index.ts b/packages/notebook-extension/src/index.ts index b08f4c87..5ea0e39c 100644 --- a/packages/notebook-extension/src/index.ts +++ b/packages/notebook-extension/src/index.ts @@ -158,8 +158,13 @@ const kernelLogo: JupyterFrontEndPlugin = { const kernelStatus: JupyterFrontEndPlugin = { id: '@retrolab/notebook-extension:kernel-status', autoStart: true, - requires: [IRetroShell], - activate: (app: JupyterFrontEnd, shell: IRetroShell) => { + requires: [IRetroShell, ITranslator], + activate: ( + app: JupyterFrontEnd, + shell: IRetroShell, + translator: ITranslator + ) => { + const trans = translator.load('retrolab'); const widget = new Widget(); widget.addClass('jp-RetroKernelStatus'); app.shell.add(widget, 'menu', { rank: 10_010 }); @@ -193,7 +198,7 @@ const kernelStatus: JupyterFrontEndPlugin = { widget.addClass(KERNEL_STATUS_FADE_OUT_CLASS); break; } - widget.node.textContent = text; + widget.node.textContent = trans.__(text); }; const onChange = async () => { diff --git a/ui-tests/test/jupyter_server_config.py b/ui-tests/test/jupyter_server_config.py index f124c6c6..c73e22bd 100644 --- a/ui-tests/test/jupyter_server_config.py +++ b/ui-tests/test/jupyter_server_config.py @@ -1,6 +1,11 @@ +from tempfile import mkdtemp + c.ServerApp.port = 8888 +c.ServerApp.port_retries = 0 +c.ServerApp.open_browser = False + +c.ServerApp.root_dir = mkdtemp(prefix="galata-test-") c.ServerApp.token = "" c.ServerApp.password = "" c.ServerApp.disable_check_xsrf = True -c.ServerApp.open_browser = False c.RetroApp.expose_app_in_browser = True diff --git a/ui-tests/test/mobile.spec.ts b/ui-tests/test/mobile.spec.ts index f7fd68f6..d7bdaff9 100644 --- a/ui-tests/test/mobile.spec.ts +++ b/ui-tests/test/mobile.spec.ts @@ -15,6 +15,7 @@ test.describe('Mobile', () => { tmpPath }) => { await page.goto(`tree/${tmpPath}`); + await page.waitForSelector('#top-panel-wrapper', { state: 'hidden' }); expect(await page.screenshot()).toMatchSnapshot('tree.png'); }); @@ -28,6 +29,25 @@ test.describe('Mobile', () => { `${tmpPath}/${notebook}` ); await page.goto(`notebooks/${tmpPath}/${notebook}`); + // TODO: investigate why this does not run the cells in RetroLab + // await page.notebook.run(); + + // wait for the kernel status animations to be finished + await page.waitForSelector('.jp-RetroKernelStatus-fade'); + await page.waitForFunction(() => { + const status = window.document.getElementsByClassName( + 'jp-RetroKernelStatus' + )[0]; + + if (!status) { + return false; + } + + const finished = status?.getAnimations().reduce((prev, curr) => { + return prev && curr.playState === 'finished'; + }, true); + return finished; + }); expect(await page.screenshot()).toMatchSnapshot('notebook.png'); }); diff --git a/ui-tests/test/mobile.spec.ts-snapshots/notebook-chromium-linux.png b/ui-tests/test/mobile.spec.ts-snapshots/notebook-chromium-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..607e93307c65b02f1511f673b4a57367181885c2 GIT binary patch literal 10595 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

7I>z5UfKQ6nP@ocGevg>7w2Dk>^_ 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 V(Tpz`@p^1R=A8W5_op=<{y(JOk&yrZ literal 0 HcmV?d00001 diff --git a/ui-tests/test/mobile.spec.ts-snapshots/tree-firefox-linux.png b/ui-tests/test/mobile.spec.ts-snapshots/tree-firefox-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..0a50ac812678a6941cb9b33aa67b71b96b92fa20 GIT binary patch literal 20610 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 { await page.goto(`tree/${tmpPath}`); + await page.waitForSelector('#top-panel', { state: 'visible' }); await page.menu.clickMenuItem(showHeaderPath); + await page.waitForSelector('#top-panel', { state: 'hidden' }); await page.reload({ waitUntil: 'networkidle' }); - await page.menu.getMenuItem(showHeaderPath); expect(await page.screenshot()).toMatchSnapshot('top-hidden.png'); + await page.waitForSelector('#top-panel', { state: 'hidden' }); await page.menu.clickMenuItem(showHeaderPath); + await page.waitForSelector('#top-panel', { state: 'visible' }); await page.reload({ waitUntil: 'networkidle' }); - await page.menu.getMenuItem(showHeaderPath); expect(await page.screenshot()).toMatchSnapshot('top-visible.png'); });