refactor: remove manual refresh and search controls
This commit is contained in:
@@ -200,56 +200,3 @@ test('Habits and Countdowns use reduced headers, compact rows, and continuous ar
|
||||
expect(archiveMetrics.buttons.every(item => item.width >= 44 && item.height >= 44)).toBeTruthy()
|
||||
await expectNoHorizontalOverflow(page, 'countdowns', testInfo)
|
||||
})
|
||||
|
||||
test('Memo mobile search is one-row, focus-safe, persistent when collapsed, and desktop-wide', async ({ page }, testInfo) => {
|
||||
await page.goto('/')
|
||||
await openSidebarView(page, '备忘录')
|
||||
const toolbar = page.locator('.memo-toolbar')
|
||||
const scope = page.locator('.memo-scope')
|
||||
const toggle = page.getByRole('button', { name: '展开搜索备忘录' })
|
||||
const collapsedGeometry = { toolbar: await box(toolbar), scope: await box(scope), toggle: await box(toggle) }
|
||||
console.log(`[qa-metrics][${testInfo.project.name}][memo-mobile-collapsed] ${JSON.stringify(collapsedGeometry)}`)
|
||||
expect(collapsedGeometry.toggle.width).toBeGreaterThanOrEqual(44)
|
||||
expect(collapsedGeometry.toggle.height).toBeGreaterThanOrEqual(44)
|
||||
expect(Math.abs(collapsedGeometry.scope.y - collapsedGeometry.toggle.y)).toBeLessThanOrEqual(4)
|
||||
expect(collapsedGeometry.toolbar.height).toBeLessThanOrEqual(52)
|
||||
await expect(toggle).toHaveAttribute('aria-expanded', 'false')
|
||||
|
||||
await toggle.click()
|
||||
const closeToggle = page.getByRole('button', { name: '收起搜索备忘录' })
|
||||
const input = page.getByRole('textbox', { name: '搜索备忘录' })
|
||||
await expect(closeToggle).toHaveAttribute('aria-expanded', 'true')
|
||||
await expect(input).toBeFocused()
|
||||
await input.fill(`保留查询-${testInfo.project.name}`)
|
||||
const openPanel = page.locator('#memo-search-panel')
|
||||
const openMetrics = await openPanel.evaluate(element => {
|
||||
const rect = element.getBoundingClientRect()
|
||||
return { x: rect.x, right: rect.right, width: rect.width, scrollWidth: (element as HTMLElement).scrollWidth, clientWidth: (element as HTMLElement).clientWidth }
|
||||
})
|
||||
console.log(`[qa-metrics][${testInfo.project.name}][memo-mobile-open] ${JSON.stringify(openMetrics)}`)
|
||||
expect(openMetrics.x).toBeGreaterThanOrEqual(0)
|
||||
expect(openMetrics.right).toBeLessThanOrEqual(page.viewportSize()!.width + 1)
|
||||
expect(openMetrics.scrollWidth).toBeLessThanOrEqual(openMetrics.clientWidth)
|
||||
|
||||
await closeToggle.click()
|
||||
await expect(openPanel).toBeHidden()
|
||||
await expect(toggle).toBeFocused()
|
||||
await expect(toggle).toHaveAttribute('aria-expanded', 'false')
|
||||
await toggle.click()
|
||||
await expect(input).toHaveValue(`保留查询-${testInfo.project.name}`)
|
||||
await expect(input).toBeFocused()
|
||||
await expectNoHorizontalOverflow(page, 'memo-mobile', testInfo)
|
||||
|
||||
await page.setViewportSize({ width: 1440, height: 900 })
|
||||
await expect(openPanel).toBeVisible()
|
||||
const desktopMetrics = await openPanel.evaluate(element => {
|
||||
const rect = element.getBoundingClientRect()
|
||||
const style = getComputedStyle(element)
|
||||
return { viewport: { width: innerWidth, height: innerHeight }, x: rect.x, y: rect.y, width: rect.width, display: style.display, hidden: (element as HTMLElement).hidden, documentOverflow: document.documentElement.scrollWidth - document.documentElement.clientWidth }
|
||||
})
|
||||
console.log(`[qa-metrics][${testInfo.project.name}][memo-desktop] ${JSON.stringify(desktopMetrics)}`)
|
||||
expect(desktopMetrics.hidden).toBeFalsy()
|
||||
expect(desktopMetrics.width).toBeGreaterThanOrEqual(320)
|
||||
expect(desktopMetrics.documentOverflow).toBe(0)
|
||||
await expect(toggle).toBeHidden()
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user