refactor: remove manual refresh and search controls
This commit is contained in:
@@ -114,14 +114,14 @@ test('boolean habits complete in place while paused and unscheduled rows explain
|
||||
await expect(unscheduledRow.getByRole('button', { name: '今天未安排' })).toBeDisabled()
|
||||
})
|
||||
|
||||
test('approved polish keeps search state, dense rows, title-only memos, and unique detail titles', async ({ page, request, baseURL }, testInfo) => {
|
||||
test('approved polish keeps dense rows, title-only memos, and unique detail titles', async ({ page, request, baseURL }, testInfo) => {
|
||||
const suffix = `${testInfo.project.name}-${testInfo.workerIndex}-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`
|
||||
const bootstrapResponse = await request.get('/api/v1/bootstrap')
|
||||
expect(bootstrapResponse.ok()).toBeTruthy()
|
||||
const inbox = (await bootstrapResponse.json()).lists.find((item: { is_inbox: boolean }) => item.is_inbox)
|
||||
expect(inbox).toBeTruthy()
|
||||
|
||||
const taskTitle = `搜索保留-${suffix}-这是用于检查长标题和右侧控件不会裁切的任务标题`
|
||||
const taskTitle = `长标题任务-${suffix}-这是用于检查长标题和右侧控件不会裁切的任务标题`
|
||||
const taskResponse = await mutate(request, baseURL!, '/api/v1/tasks', {
|
||||
method: 'POST',
|
||||
data: { title: taskTitle, list_id: inbox.id },
|
||||
@@ -145,26 +145,7 @@ test('approved polish keeps search state, dense rows, title-only memos, and uniq
|
||||
|
||||
await page.goto('/')
|
||||
await openSidebarView(page, '收集箱')
|
||||
const mobileGeometry = await page.evaluate(() => {
|
||||
const main = document.querySelector('main.list-main')!.getBoundingClientRect()
|
||||
const header = document.querySelector('.list-page-context')!.getBoundingClientRect()
|
||||
const filter = document.querySelector('.list-inline-filter')!.getBoundingClientRect()
|
||||
const search = document.querySelector('.list-search-reveal')!.getBoundingClientRect()
|
||||
const toggle = document.querySelector('.list-search-reveal .task-search-toggle')!.getBoundingClientRect()
|
||||
return { main: { left: main.left, right: main.right }, header: { left: header.left, right: header.right, bottom: header.bottom }, filter: { left: filter.left, bottom: filter.bottom }, search: { left: search.left, right: search.right, top: search.top }, toggle: { left: toggle.left, top: toggle.top } }
|
||||
})
|
||||
expect(mobileGeometry.header.left - mobileGeometry.main.left).toBeCloseTo(29, 0)
|
||||
expect(mobileGeometry.main.right - mobileGeometry.header.right).toBeCloseTo(29, 0)
|
||||
expect(mobileGeometry.search.left).toBeGreaterThanOrEqual(mobileGeometry.header.left)
|
||||
expect(mobileGeometry.search.right).toBeLessThanOrEqual(mobileGeometry.header.right)
|
||||
expect(mobileGeometry.toggle.top).toBeGreaterThanOrEqual(mobileGeometry.header.bottom - 1)
|
||||
expect(mobileGeometry.toggle.left).toBeGreaterThanOrEqual(mobileGeometry.filter.left)
|
||||
const searchToggle = page.getByRole('button', { name: '展开搜索任务' })
|
||||
await expect(searchToggle).toHaveAttribute('aria-expanded', 'false')
|
||||
await searchToggle.click()
|
||||
const searchInput = page.getByRole('textbox', { name: '搜索任务' })
|
||||
await expect(searchInput).toBeFocused()
|
||||
await searchInput.fill(`搜索保留-${suffix}`)
|
||||
await expect(page.getByRole('button', { name: /刷新|搜索/ })).toHaveCount(0)
|
||||
const taskRow = page.locator('.task-row').filter({ hasText: taskTitle })
|
||||
await expect(taskRow).toHaveCount(1)
|
||||
await expectHeightInRange(taskRow, 57, 59)
|
||||
@@ -180,12 +161,6 @@ test('approved polish keeps search state, dense rows, title-only memos, and uniq
|
||||
await expect(taskDetail.getByRole('button', { name: '保存更改' })).toBeEnabled()
|
||||
await page.keyboard.press('Escape')
|
||||
await expect(taskDetail).toBeHidden()
|
||||
await searchInput.press('Escape')
|
||||
const collapsedToggle = page.getByRole('button', { name: '展开搜索任务' })
|
||||
await expect(collapsedToggle).toBeFocused()
|
||||
await expect(collapsedToggle).toHaveAttribute('aria-expanded', 'false')
|
||||
await collapsedToggle.click()
|
||||
await expect(searchInput).toHaveValue(`搜索保留-${suffix}`)
|
||||
|
||||
await bottomTab(page, '习惯').click()
|
||||
const mobileHabitGeometry = await page.evaluate(() => {
|
||||
@@ -261,22 +236,5 @@ test('approved polish keeps search state, dense rows, title-only memos, and uniq
|
||||
const desktopInbox = page.locator('.sidebar').getByRole('button', { name: '收集箱', exact: true })
|
||||
await expect(desktopInbox).toBeInViewport()
|
||||
await desktopInbox.click()
|
||||
await expect(page.getByRole('button', { name: /展开搜索任务|收起搜索任务/ })).toBeHidden()
|
||||
const desktopSearch = page.getByRole('textbox', { name: '搜索任务' })
|
||||
await expect(desktopSearch).toBeVisible()
|
||||
const desktopPanel = page.locator('.list-search-reveal')
|
||||
const desktopBox = await desktopPanel.boundingBox()
|
||||
expect(desktopBox).not.toBeNull()
|
||||
expect(desktopBox!.width).toBeGreaterThanOrEqual(320)
|
||||
const desktopHeader = page.locator('.list-page-context')
|
||||
const desktopList = page.locator('.task-list')
|
||||
const desktopGeometry = await Promise.all([desktopHeader, desktopPanel, desktopList].map(async locator => locator.boundingBox()))
|
||||
for (const box of desktopGeometry) expect(box).not.toBeNull()
|
||||
expect(Math.abs(desktopGeometry[0]!.x - desktopGeometry[1]!.x)).toBeLessThanOrEqual(1)
|
||||
expect(Math.abs(desktopGeometry[1]!.x - desktopGeometry[2]!.x)).toBeLessThanOrEqual(1)
|
||||
expect(desktopGeometry[0]!.width).toBeLessThanOrEqual(900)
|
||||
await desktopSearch.fill(`搜索保留-${suffix}`)
|
||||
const desktopTaskRow = page.locator('.task-row').filter({ hasText: taskTitle })
|
||||
await expect(desktopTaskRow).toHaveCount(1)
|
||||
await expectNotClipped(desktopTaskRow)
|
||||
await expect(page.getByRole('button', { name: /刷新|搜索/ })).toHaveCount(0)
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user