From 2819cee85692a20705ebbab32cfea95f703f7f9c Mon Sep 17 00:00:00 2001 From: Nicolas Brichet <32258950+brichet@users.noreply.github.com> Date: Wed, 6 Nov 2024 21:15:12 +0100 Subject: [PATCH] Fix the ui tests for jupyterlab 4.3 (#97) * Fix the autocompletion test for jupyterlab 4.3 * Update snapshots --- .../ui-tests/tests/autocompletion.spec.ts | 12 +++++++----- .../not-stacked-messages-linux.png | Bin 6380 -> 6334 bytes .../stacked-messages-linux.png | Bin 4571 -> 4524 bytes 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/python/jupyterlab-collaborative-chat/ui-tests/tests/autocompletion.spec.ts b/python/jupyterlab-collaborative-chat/ui-tests/tests/autocompletion.spec.ts index 5ad2061..97b8c95 100644 --- a/python/jupyterlab-collaborative-chat/ui-tests/tests/autocompletion.spec.ts +++ b/python/jupyterlab-collaborative-chat/ui-tests/tests/autocompletion.spec.ts @@ -24,15 +24,15 @@ const exposeDepsJs = (deps: Record any>): string => { // The function running in browser context to get a plugin. const getPlugin = (pluginId: string): Promise => { return new Promise((resolve, reject) => { - const app = window.jupyterapp; + const app = window.jupyterapp as any; const hasPlugin = app.hasPlugin(pluginId); if (hasPlugin) { try { - const appAny = app as any; - const plugin: any = appAny._plugins - ? appAny._plugins.get(pluginId) - : undefined; + // Compatibility with jupyterlab 4.3 + const plugin: any = app._plugins + ? app._plugins.get(pluginId) + : app.pluginRegistry._plugins.get(pluginId); if (plugin.activated) { resolve(plugin.service); } else { @@ -309,8 +309,10 @@ test('should use properties from autocompletion object', async ({ page }) => { }); test('single autocompletion should be the default', async ({ page }) => { + await page.pause(); await page.evaluate( async options => { + console.log('YAYAYAYA'); const registry = await window.getPlugin( 'jupyterlab-collaborative-chat-extension:autocompletionRegistry' ); diff --git a/python/jupyterlab-collaborative-chat/ui-tests/tests/ui-config.spec.ts-snapshots/not-stacked-messages-linux.png b/python/jupyterlab-collaborative-chat/ui-tests/tests/ui-config.spec.ts-snapshots/not-stacked-messages-linux.png index b78e2c6578dc220d0dfa4773f59a4bf4a0471aff..cbf8905e28bc89f75de5863446c5b094c8a47fff 100644 GIT binary patch literal 6334 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 literal 6380 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 yN7KFTQ8CnaL=gL1PL?% diff --git a/python/jupyterlab-collaborative-chat/ui-tests/tests/ui-config.spec.ts-snapshots/stacked-messages-linux.png b/python/jupyterlab-collaborative-chat/ui-tests/tests/ui-config.spec.ts-snapshots/stacked-messages-linux.png index e6673610d3ccdbf3e5074a120b1eeb3c76065b84..6c2261010749c49fe9e57837bbece6ad8bad282f 100644 GIT binary patch literal 4524 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 literal 4571 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