Cover Files breadcrumb segment navigation
This commit is contained in:
parent
03dbede414
commit
05bfe1d993
|
|
@ -156,6 +156,29 @@ test.describe('G: Files Plugin', () => {
|
|||
await expect(page.locator('[data-file-name="CutMe"]')).toHaveCount(0);
|
||||
});
|
||||
|
||||
test('files explorer navigates by clicking breadcrumb segments', async ({ page }) => {
|
||||
await page.locator('.wt-label').filter({ hasText: 'Project' }).click();
|
||||
await openFilesTool(page);
|
||||
await expect(page.locator('.files-breadcrumb')).toContainText('Project', { timeout: 10000 });
|
||||
|
||||
await page.locator('[data-files-action="new-folder"]').click();
|
||||
await page.locator('[data-files-create-input]').fill('BreadcrumbParent');
|
||||
await page.locator('[data-files-create-confirm]').click();
|
||||
await page.locator('[data-file-name="BreadcrumbParent"]').dblclick();
|
||||
await expect(page.locator('.files-breadcrumb')).toContainText('BreadcrumbParent');
|
||||
|
||||
await page.locator('[data-files-action="new-folder"]').click();
|
||||
await page.locator('[data-files-create-input]').fill('BreadcrumbChild');
|
||||
await page.locator('[data-files-create-confirm]').click();
|
||||
await page.locator('[data-file-name="BreadcrumbChild"]').dblclick();
|
||||
await expect(page.locator('.files-breadcrumb')).toContainText('BreadcrumbChild');
|
||||
|
||||
await page.locator('.files-breadcrumb-item').filter({ hasText: 'BreadcrumbParent' }).click();
|
||||
await expect(page.locator('.files-breadcrumb')).toContainText('BreadcrumbParent');
|
||||
await expect(page.locator('.files-breadcrumb')).not.toContainText('BreadcrumbChild');
|
||||
await expect(page.locator('[data-file-name="BreadcrumbChild"]')).toBeVisible();
|
||||
});
|
||||
|
||||
test('files explorer duplicates a file from the context menu', async ({ page }) => {
|
||||
await page.locator('.wt-label').filter({ hasText: 'Project' }).click();
|
||||
await openFilesTool(page);
|
||||
|
|
|
|||
|
|
@ -787,8 +787,20 @@
|
|||
function firstSelected() { return selectedEntries()[0] || null; }
|
||||
function updateBreadcrumb() {
|
||||
breadcrumb.innerHTML = '';
|
||||
breadcrumb.appendChild(e('span', { className: 'files-breadcrumb-item', onClick: function () { nav(''); } }, [workspaceName]));
|
||||
if (current) breadcrumb.appendChild(e('span', { className: 'files-breadcrumb-current' }, [' / ' + current]));
|
||||
breadcrumb.appendChild(e('span', { className: current ? 'files-breadcrumb-item' : 'files-breadcrumb-current', onClick: function () { nav(''); } }, [workspaceName]));
|
||||
if (!current) return;
|
||||
var parts = current.split('/');
|
||||
var path = '';
|
||||
parts.forEach(function (part, index) {
|
||||
path = path ? path + '/' + part : part;
|
||||
breadcrumb.appendChild(e('span', { className: 'files-breadcrumb-sep' }, [' / ']));
|
||||
var target = path;
|
||||
var isCurrent = index === parts.length - 1;
|
||||
breadcrumb.appendChild(e('span', {
|
||||
className: isCurrent ? 'files-breadcrumb-current' : 'files-breadcrumb-item',
|
||||
onClick: function () { if (!isCurrent) nav(target); }
|
||||
}, [part]));
|
||||
});
|
||||
}
|
||||
function visible() {
|
||||
return entries.filter(function (item) { return !item.isHidden && !item.isReserved && (!filter || item.name.toLowerCase().indexOf(filter) !== -1); }).sort(function (a, b) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue