From 5868c6cb0455735e7aae4c9b0b5d3f517f0d5e31 Mon Sep 17 00:00:00 2001 From: KCM Date: Sat, 2 May 2026 08:59:45 -0500 Subject: [PATCH 1/4] refactor: remove collapsible editors. --- playwright/helpers/app-test-helpers.ts | 8 +- playwright/layout-panels.spec.ts | 57 +++++------- playwright/workspace-tabs.spec.ts | 2 - src/index.html | 34 -------- .../app-core/layout-diagnostics-setup.js | 86 ++----------------- src/styles/layout-shell.css | 11 +-- src/styles/panels-editor.css | 56 ------------ 7 files changed, 31 insertions(+), 223 deletions(-) diff --git a/playwright/helpers/app-test-helpers.ts b/playwright/helpers/app-test-helpers.ts index 20c2f08..4447f47 100644 --- a/playwright/helpers/app-test-helpers.ts +++ b/playwright/helpers/app-test-helpers.ts @@ -305,10 +305,8 @@ export const getActiveStylesEditorLineNumber = async (page: Page) => { .then(text => text.trim()) } -export const getCollapseButton = ( - page: Page, - panelName: 'component' | 'styles' | 'preview', -) => page.locator(`#collapse-${panelName}`) +export const getCollapseButton = (page: Page, panelName: 'preview') => + page.locator(`#collapse-${panelName}`) export const getToolsButton = (page: Page, panelName: 'component' | 'styles') => page.locator(`#tools-${panelName}`) @@ -564,7 +562,7 @@ export const connectByotWithSingleRepo = async ( export const expectCollapseButtonState = async ( page: Page, - panelName: 'component' | 'styles' | 'preview', + panelName: 'preview', { axis, direction, diff --git a/playwright/layout-panels.spec.ts b/playwright/layout-panels.spec.ts index 5647894..51048a2 100644 --- a/playwright/layout-panels.spec.ts +++ b/playwright/layout-panels.spec.ts @@ -162,17 +162,9 @@ test('expanded component and styles can shrink consistently in fixed layout', as test('panel collapse axis and direction match fixed layout', async ({ page }) => { await waitForInitialRender(page) await expect(page.getByRole('main')).toHaveClass(/app-grid--preview-right/) + await expect(page.locator('#collapse-component')).toHaveCount(0) + await expect(page.locator('#collapse-styles')).toHaveCount(0) - await expectCollapseButtonState(page, 'component', { - axis: 'vertical', - direction: 'none', - collapsed: false, - }) - await expectCollapseButtonState(page, 'styles', { - axis: 'vertical', - direction: 'none', - collapsed: false, - }) await expectCollapseButtonState(page, 'preview', { axis: 'horizontal', direction: 'right', @@ -180,31 +172,22 @@ test('panel collapse axis and direction match fixed layout', async ({ page }) => }) }) -test('prevents collapsing all three panels at once', async ({ page }) => { +test('preview panel can collapse and expand', async ({ page }) => { await waitForInitialRender(page) - const componentPanel = page.locator('#editor-panel-component') - const stylesPanel = page.locator('#editor-panel-styles') - - await getCollapseButton(page, 'component').click() - await page.getByRole('button', { name: 'Open tab app.css' }).click() - await getCollapseButton(page, 'styles').click() + const previewPanel = page.locator('#preview-panel') - await expect(componentPanel).toHaveClass(/panel--collapsed-vertical/) - await expect(stylesPanel).toHaveClass(/panel--collapsed-vertical/) + await getCollapseButton(page, 'preview').click() + await expect(previewPanel).toHaveClass(/panel--collapsed-horizontal/) await expectCollapseButtonState(page, 'preview', { axis: 'horizontal', direction: 'right', - collapsed: false, - disabled: true, + collapsed: true, + disabled: false, }) - await expect(getCollapseButton(page, 'preview')).toHaveAttribute( - 'title', - 'At least one panel must remain expanded.', - ) - await page.getByRole('button', { name: 'Open tab App.tsx' }).click() - await getCollapseButton(page, 'component').click() + await getCollapseButton(page, 'preview').click() + await expect(previewPanel).not.toHaveClass(/panel--collapsed-horizontal/) await expectCollapseButtonState(page, 'preview', { axis: 'horizontal', direction: 'right', @@ -215,25 +198,25 @@ test('prevents collapsing all three panels at once', async ({ page }) => { test('does not persist panel collapse state across reload', async ({ page }) => { await waitForInitialRender(page) - const componentPanel = page.locator('#editor-panel-component') + const previewPanel = page.locator('#preview-panel') - await getCollapseButton(page, 'component').click() - await expect(componentPanel).toHaveClass(/panel--collapsed-vertical/) - await expectCollapseButtonState(page, 'component', { - axis: 'vertical', - direction: 'none', + await getCollapseButton(page, 'preview').click() + await expect(previewPanel).toHaveClass(/panel--collapsed-horizontal/) + await expectCollapseButtonState(page, 'preview', { + axis: 'horizontal', + direction: 'right', collapsed: true, }) await page.reload() await waitForInitialRender(page) - await expect(componentPanel).not.toHaveClass( + await expect(previewPanel).not.toHaveClass( /panel--collapsed-horizontal|panel--collapsed-vertical/, ) - await expectCollapseButtonState(page, 'component', { - axis: 'vertical', - direction: 'none', + await expectCollapseButtonState(page, 'preview', { + axis: 'horizontal', + direction: 'right', collapsed: false, }) }) diff --git a/playwright/workspace-tabs.spec.ts b/playwright/workspace-tabs.spec.ts index 4b73e3a..577f558 100644 --- a/playwright/workspace-tabs.spec.ts +++ b/playwright/workspace-tabs.spec.ts @@ -414,8 +414,6 @@ test('active tab remains source of truth for visible editor panel', async ({ pag ).toHaveAttribute('aria-current', 'true') await expect(componentPanel).not.toHaveAttribute('hidden', '') await expect(stylesPanel).toHaveAttribute('hidden', '') - - await page.locator('#collapse-component').click() await page.getByRole('button', { name: 'Open tab app.css' }).click() await expect(page.getByRole('button', { name: 'Open tab app.css' })).toHaveAttribute( diff --git a/src/index.html b/src/index.html index 5d33306..3f95a62 100644 --- a/src/index.html +++ b/src/index.html @@ -383,23 +383,6 @@

-