You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

77 lines
2.2 KiB

// Copyright (c) Jupyter Development Team.
// Distributed under the terms of the Modified BSD License.
import { IJupyterLabPage, expect, galata } from '@jupyterlab/galata';
import { test } from './fixtures';
import { hideAddCellButton, waitForKernelReady } from './utils';
test.use({
autoGoto: false,
viewport: { width: 524, height: 800 },
// Set a fixed string as Playwright is preventing the unique test name to be too long
// and replaces part of the path with a hash
tmpPath: 'mobile-layout',
});
test.describe('Mobile', () => {
// manually create the test directory since tmpPath is set to a fixed value
test.beforeAll(async ({ request, tmpPath }) => {
const contents = galata.newContentsHelper(request);
await contents.createDirectory(tmpPath);
});
test.afterAll(async ({ request, tmpPath }) => {
const contents = galata.newContentsHelper(request);
await contents.deleteDirectory(tmpPath);
});
test('The layout should be more compact on the file browser page', async ({
page,
tmpPath,
}) => {
await page.goto(`tree/${tmpPath}`);
await page.waitForSelector('#top-panel-wrapper', { state: 'hidden' });
expect(await page.screenshot()).toMatchSnapshot('tree.png', {
maxDiffPixels: 300,
});
});
test('The layout should be more compact on the notebook page', async ({
page,
tmpPath,
browserName,
}) => {
await page.goto(`tree/${tmpPath}`);
// Create a new notebook
const notebookPromise = page.waitForEvent('popup');
await page.click('text="New"');
await page
.locator(
'[data-command="notebook:create-new"] >> text="Python 3 (ipykernel)"'
)
.click();
const notebook = await notebookPromise;
// wait for the kernel status animations to be finished
await waitForKernelReady(notebook);
// force switching back to command mode to avoid capturing the cursor in the screenshot
await notebook.evaluate(async () => {
await window.jupyterapp.commands.execute('notebook:enter-command-mode');
});
// TODO: remove
if (browserName === 'firefox') {
await hideAddCellButton(notebook);
}
expect(await notebook.screenshot()).toMatchSnapshot('notebook.png');
await notebook.close();
});
});