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.
57 lines
1.6 KiB
57 lines
1.6 KiB
// Copyright (c) Jupyter Development Team.
|
|
// Distributed under the terms of the Modified BSD License.
|
|
|
|
import path from 'path';
|
|
|
|
import { expect } from '@playwright/test';
|
|
|
|
import { test } from './fixtures';
|
|
|
|
const NOTEBOOK = 'local_links.ipynb';
|
|
const SUBFOLDER = 'test';
|
|
|
|
test.describe('Local Links', () => {
|
|
test.beforeEach(async ({ page, tmpPath }) => {
|
|
await page.contents.uploadFile(
|
|
path.resolve(__dirname, `./notebooks/${NOTEBOOK}`),
|
|
`${tmpPath}/${NOTEBOOK}`
|
|
);
|
|
});
|
|
|
|
test('Open the current directory', async ({ page, tmpPath }) => {
|
|
await page.goto(`notebooks/${tmpPath}/${NOTEBOOK}`);
|
|
|
|
const [current] = await Promise.all([
|
|
page.waitForEvent('popup'),
|
|
page.getByText('Current Directory').last().click(),
|
|
]);
|
|
|
|
await current.waitForLoadState();
|
|
await current.waitForSelector('.jp-DirListing-content');
|
|
|
|
// Check that the link opened in a new tab
|
|
expect(current.url()).toContain(`tree/${tmpPath}`);
|
|
await current.close();
|
|
});
|
|
|
|
test('Open a folder', async ({ page, tmpPath }) => {
|
|
// Create a test folder
|
|
await page.contents.createDirectory(`${tmpPath}/${SUBFOLDER}`);
|
|
|
|
await page.goto(`notebooks/${tmpPath}/${NOTEBOOK}`);
|
|
|
|
const [folder] = await Promise.all([
|
|
page.waitForEvent('popup'),
|
|
page.getByText('Open Test Folder').last().click(),
|
|
]);
|
|
|
|
await folder.waitForLoadState();
|
|
await folder.waitForSelector('.jp-DirListing-content');
|
|
|
|
await folder.close();
|
|
|
|
// Check that the link opened in a new tab
|
|
expect(folder.url()).toContain(`tree/${tmpPath}/${SUBFOLDER}`);
|
|
});
|
|
});
|