fix: rename Browser workspace tool
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
import { test, expect } from '@playwright/test';
|
||||
import { waitForAppReady, setupConsoleCollector, resetMockState } from './helpers.js';
|
||||
|
||||
test.describe('Browser Inbox workflow', () => {
|
||||
test.describe('Browser workflow', () => {
|
||||
let consoleCollector;
|
||||
|
||||
test.beforeEach(async ({ page }) => {
|
||||
@@ -16,14 +16,14 @@ test.describe('Browser Inbox workflow', () => {
|
||||
});
|
||||
|
||||
test('global inbox explains empty capture flow and exposes assignment filters', async ({ page }) => {
|
||||
await page.locator('.sidebar .plugin-item').filter({ hasText: 'Browser Inbox' }).click();
|
||||
await page.locator('.sidebar .plugin-item').filter({ hasText: 'Browser' }).click();
|
||||
|
||||
const inbox = page.locator('.browser-inbox-root');
|
||||
await expect(inbox).toBeVisible({ timeout: 10000 });
|
||||
await expect(inbox.locator('.browser-inbox-title')).toContainText('Browser Inbox');
|
||||
await expect(inbox.locator('.browser-inbox-title')).toHaveText('Browser');
|
||||
await expect(inbox.locator('.browser-inbox-count')).toHaveText('0 items');
|
||||
await expect(inbox.locator('.browser-inbox-empty')).toContainText('No browser captures yet');
|
||||
await expect(inbox.locator('.browser-inbox-empty')).toContainText('send a page, selection, link, or file from the browser extension');
|
||||
await expect(inbox.locator('.browser-inbox-empty')).toContainText('No browser materials yet');
|
||||
await expect(inbox.locator('.browser-inbox-empty')).toContainText('Send a page, selection, or link from the extension');
|
||||
await expect(inbox.locator('[data-browser-inbox-filter="status"]')).toBeVisible();
|
||||
await expect(inbox.locator('[data-browser-inbox-filter="workspace"]')).toBeVisible();
|
||||
await expect(inbox.locator('[data-browser-inbox-action="clear"]')).toBeDisabled();
|
||||
@@ -47,7 +47,7 @@ test.describe('Browser Inbox workflow', () => {
|
||||
}],
|
||||
});
|
||||
});
|
||||
await page.getByRole('tab', { name: 'Browser Inbox' }).click();
|
||||
await page.getByRole('tab', { name: 'Browser' }).click();
|
||||
|
||||
const inbox = page.locator('.browser-inbox-root');
|
||||
await expect(inbox.locator('.browser-inbox-count')).toHaveText('1 item');
|
||||
@@ -94,7 +94,7 @@ test.describe('Browser Inbox workflow', () => {
|
||||
],
|
||||
});
|
||||
});
|
||||
await page.locator('.sidebar .plugin-item').filter({ hasText: 'Browser Inbox' }).click();
|
||||
await page.locator('.sidebar .plugin-item').filter({ hasText: 'Browser' }).click();
|
||||
|
||||
const inbox = page.locator('.browser-inbox-root');
|
||||
await expect(inbox.locator('.browser-inbox-count')).toHaveText('3 items');
|
||||
|
||||
@@ -30,23 +30,23 @@ test.describe('B: Sidebar opens plugin view by item.view', () => {
|
||||
test('Sidebar item exists with correct label', async ({ page }) => {
|
||||
await expect(page.locator('.sidebar .nav-item').filter({ hasText: 'Plugin Manager' })).not.toBeVisible();
|
||||
await expect(page.locator('.sidebar .plugin-item').filter({ hasText: 'Activity' })).toBeVisible();
|
||||
await expect(page.locator('.sidebar .plugin-item').filter({ hasText: 'Browser Inbox' })).toBeVisible();
|
||||
await expect(page.locator('.sidebar .plugin-item').filter({ hasText: 'Browser' })).toBeVisible();
|
||||
|
||||
const sidebarItem = page.locator('.sidebar .plugin-item').filter({ hasText: 'Platform Test' });
|
||||
await expect(sidebarItem).toBeVisible();
|
||||
});
|
||||
|
||||
test('Global Activity and Browser Inbox sidebar items open plugin views', async ({ page }) => {
|
||||
test('Global Activity and Browser sidebar items open plugin views', async ({ page }) => {
|
||||
await page.locator('.sidebar .plugin-item').filter({ hasText: 'Activity' }).click();
|
||||
await expect(page.locator('.view-container .view-header h2')).toHaveText('Activity', { timeout: 10000 });
|
||||
|
||||
await page.locator('.sidebar .plugin-item').filter({ hasText: 'Browser Inbox' }).click();
|
||||
await expect(page.locator('.view-container .view-header h2')).toHaveText('Browser Inbox', { timeout: 10000 });
|
||||
await page.locator('.sidebar .plugin-item').filter({ hasText: 'Browser' }).click();
|
||||
await expect(page.locator('.view-container .view-header h2')).toHaveText('Browser', { timeout: 10000 });
|
||||
});
|
||||
|
||||
test('selected global tool remains visibly active through navigation and sidebar reloads', async ({ page }) => {
|
||||
const activity = page.locator('.sidebar .plugin-item').filter({ hasText: 'Activity' });
|
||||
const browserInbox = page.locator('.sidebar .plugin-item').filter({ hasText: 'Browser Inbox' });
|
||||
const browserInbox = page.locator('.sidebar .plugin-item').filter({ hasText: 'Browser' });
|
||||
|
||||
await activity.click();
|
||||
await expect(activity).toHaveAttribute('aria-current', 'page');
|
||||
@@ -62,7 +62,7 @@ test.describe('B: Sidebar opens plugin view by item.view', () => {
|
||||
detail: { viewId: 'verstak.browser-inbox.view', pluginId: 'verstak.browser-inbox' },
|
||||
}));
|
||||
});
|
||||
await expect(page.locator('.view-container .view-header h2')).toHaveText('Browser Inbox', { timeout: 10000 });
|
||||
await expect(page.locator('.view-container .view-header h2')).toHaveText('Browser', { timeout: 10000 });
|
||||
await expect(browserInbox).toHaveAttribute('aria-current', 'page');
|
||||
await expect(browserInbox).toHaveClass(/is-active/);
|
||||
await expect(activity).not.toHaveAttribute('aria-current', 'page');
|
||||
|
||||
@@ -18,7 +18,7 @@ test.describe('UX follow-up fixes', () => {
|
||||
await expect(search).toBeVisible();
|
||||
await expect(page.locator('.sidebar [data-global-search-input]')).toBeVisible();
|
||||
|
||||
await page.locator('.sidebar .nav-item').filter({ hasText: 'Browser Inbox' }).click();
|
||||
await page.locator('.sidebar .nav-item').filter({ hasText: 'Browser' }).click();
|
||||
await expect(page.locator('.browser-inbox-root')).toBeVisible({ timeout: 10000 });
|
||||
await expect(search).toBeVisible();
|
||||
});
|
||||
@@ -67,7 +67,7 @@ test.describe('UX follow-up fixes', () => {
|
||||
|
||||
const search = page.locator('[data-global-search-input]');
|
||||
await search.fill('Research Search Result');
|
||||
const result = page.locator('[data-global-search-result-type="Browser Inbox"]').filter({ hasText: 'Research Search Result' });
|
||||
const result = page.locator('[data-global-search-result-type="Browser"]').filter({ hasText: 'Research Search Result' });
|
||||
await expect(result).toBeVisible({ timeout: 10000 });
|
||||
await result.click();
|
||||
|
||||
|
||||
@@ -56,7 +56,7 @@ test.describe('UX Overview workspace flow', () => {
|
||||
await page.getByRole('tab', { name: 'Overview' }).click();
|
||||
await overview.locator('[data-overview-summary="captures"]').click();
|
||||
|
||||
await expect(page.getByRole('tab', { name: 'Browser Inbox' })).toHaveAttribute('aria-selected', 'true');
|
||||
await expect(page.getByRole('tab', { name: 'Browser' })).toHaveAttribute('aria-selected', 'true');
|
||||
await expect(page.locator('.browser-inbox-root')).toBeVisible({ timeout: 10000 });
|
||||
|
||||
await page.getByRole('tab', { name: 'Overview' }).click();
|
||||
@@ -70,7 +70,7 @@ test.describe('UX Overview workspace flow', () => {
|
||||
|
||||
await page.getByRole('tab', { name: 'Overview' }).click();
|
||||
await overview.locator('[data-overview-summary="attention"]').click();
|
||||
await expect(page.getByRole('tab', { name: 'Browser Inbox' })).toHaveAttribute('aria-selected', 'true');
|
||||
await expect(page.getByRole('tab', { name: 'Browser' })).toHaveAttribute('aria-selected', 'true');
|
||||
});
|
||||
|
||||
test('Overview keeps the Notes total factual when the Files plugin is unavailable', async ({ page }) => {
|
||||
@@ -80,13 +80,13 @@ test.describe('UX Overview workspace flow', () => {
|
||||
await expect(page.locator('[data-overview-summary="notes"]')).toContainText('1 total');
|
||||
});
|
||||
|
||||
test('Overview hides Browser Inbox cards and actions when the current Deal does not include it', async ({ page }) => {
|
||||
await page.locator('button[title="New workspace"]').click();
|
||||
test('Overview hides Browser cards and actions when the current Deal does not include it', async ({ page }) => {
|
||||
await page.locator('button[title="New Deal"]').click();
|
||||
const modal = page.locator('[data-workspace-create-modal]');
|
||||
await modal.locator('[data-workspace-name]').fill('MinimalOverview');
|
||||
await modal.locator('[data-workspace-template]').selectOption('minimal');
|
||||
await modal.getByRole('button', { name: 'Create workspace' }).click();
|
||||
await expect(page.getByRole('tab', { name: 'Browser Inbox' })).toHaveCount(0);
|
||||
await modal.getByRole('button', { name: 'Create Deal' }).click();
|
||||
await expect(page.getByRole('tab', { name: 'Browser' })).toHaveCount(0);
|
||||
|
||||
await page.evaluate(async () => {
|
||||
await window.go.api.App.WritePluginSettings('verstak.browser-inbox', {
|
||||
@@ -107,7 +107,7 @@ test.describe('UX Overview workspace flow', () => {
|
||||
await expect(overview).not.toContainText('Inbox material must stay hidden');
|
||||
});
|
||||
|
||||
test('Overview refreshes when Browser Inbox is disabled through plugin state changes', async ({ page }) => {
|
||||
test('Overview refreshes when Browser is disabled through plugin state changes', async ({ page }) => {
|
||||
await page.evaluate(async () => {
|
||||
await window.go.api.App.WritePluginSettings('verstak.browser-inbox', {
|
||||
'captures:global': [{
|
||||
@@ -123,7 +123,7 @@ test.describe('UX Overview workspace flow', () => {
|
||||
});
|
||||
|
||||
const overview = page.locator('[data-overview-root]');
|
||||
await expect(page.getByRole('tab', { name: 'Browser Inbox' })).toHaveCount(0);
|
||||
await expect(page.getByRole('tab', { name: 'Browser' })).toHaveCount(0);
|
||||
await expect(overview.locator('[data-overview-summary="captures"]')).toHaveCount(0);
|
||||
await expect(overview.locator('[data-overview-action="browser-inbox"]')).toHaveCount(0);
|
||||
});
|
||||
@@ -264,7 +264,7 @@ test.describe('UX Overview workspace flow', () => {
|
||||
await expect(candidates.nth(3)).toContainText('Changed file "draft.md"');
|
||||
await candidates.nth(0).click();
|
||||
|
||||
await expect(page.getByRole('tab', { name: 'Browser Inbox' })).toHaveAttribute('aria-selected', 'true');
|
||||
await expect(page.getByRole('tab', { name: 'Browser' })).toHaveAttribute('aria-selected', 'true');
|
||||
await expect(page.locator('.browser-inbox-root')).toBeVisible({ timeout: 10000 });
|
||||
|
||||
await page.getByRole('tab', { name: 'Overview' }).click();
|
||||
|
||||
@@ -28,7 +28,7 @@ test.describe('Workspace templates', () => {
|
||||
await expect(templateSelect).toHaveValue('default');
|
||||
await expect(templateSelect).toHaveCSS('appearance', 'none');
|
||||
await expect(modal.locator('[data-workspace-template-tools]')).toContainText('Notes');
|
||||
await expect(modal.locator('[data-workspace-template-tools]')).toContainText('Browser Inbox');
|
||||
await expect(modal.locator('[data-workspace-template-tools]')).toContainText('Browser');
|
||||
|
||||
await modal.getByRole('button', { name: 'Create Deal' }).click();
|
||||
await expect(modal.locator('[data-workspace-create-error]')).toContainText('Name is required');
|
||||
@@ -74,7 +74,7 @@ test.describe('Workspace templates', () => {
|
||||
await expect(page.getByRole('tab', { name: 'Journal' })).toHaveCount(0);
|
||||
await expect(page.getByRole('tab', { name: 'Secrets' })).toHaveCount(0);
|
||||
await expect(page.locator('.sidebar .plugin-item').filter({ hasText: 'Todos' })).toBeVisible();
|
||||
await expect(page.locator('.sidebar .plugin-item').filter({ hasText: 'Browser Inbox' })).toBeVisible();
|
||||
await expect(page.locator('.sidebar .plugin-item').filter({ hasText: 'Browser' })).toBeVisible();
|
||||
});
|
||||
|
||||
test('template explains an unavailable plugin and warns after incomplete creation', async ({ page }) => {
|
||||
|
||||
Reference in New Issue
Block a user