test: assert note focus before opening creation form
Cross-platform packages / Validate source (push) Canceled after 0s
Cross-platform packages / Authorize desktop packaging (push) Canceled after 0s
Cross-platform packages / linux arm64 (push) Canceled after 0s
Cross-platform packages / macos arm64 (push) Canceled after 0s
Cross-platform packages / windows arm64 (push) Canceled after 0s
Cross-platform packages / linux x64 (push) Canceled after 0s
Cross-platform packages / macos x64 (push) Canceled after 0s
Cross-platform packages / windows x64 (push) Canceled after 0s
Cross-platform packages / Publish GitHub and OSS release (push) Canceled after 0s
Cross-platform packages / Validate source (push) Canceled after 0s
Cross-platform packages / Authorize desktop packaging (push) Canceled after 0s
Cross-platform packages / linux arm64 (push) Canceled after 0s
Cross-platform packages / macos arm64 (push) Canceled after 0s
Cross-platform packages / windows arm64 (push) Canceled after 0s
Cross-platform packages / linux x64 (push) Canceled after 0s
Cross-platform packages / macos x64 (push) Canceled after 0s
Cross-platform packages / windows x64 (push) Canceled after 0s
Cross-platform packages / Publish GitHub and OSS release (push) Canceled after 0s
Check detail navigation focus before the auto-focused creation input takes over. Preserve return-to-list and reading-position assertions, and include the reviewed sharing first-read test and independent validation record. Validation runs in CI per user request.
This commit is contained in:
@@ -50,11 +50,14 @@ async function setup(timeout = 1000) {
|
||||
}
|
||||
|
||||
it('persists one identity across concurrent first reads, saves and restarts without accepting renderer identity', async () => {
|
||||
const { service, file, url } = await setup()
|
||||
const setupResult = await setup()
|
||||
const file = `${setupResult.file}.first-read`
|
||||
const url = setupResult.url
|
||||
const service = new DeviceSharingService(file, 'test-version')
|
||||
const [first, second] = await Promise.all([service.getSettings(), service.getSettings()])
|
||||
expect(first.deviceId).toBe(second.deviceId)
|
||||
await service.saveSettings({ name: 'Renamed', serverUrl: `${url}/` })
|
||||
expect(await new DeviceSharingService(file, 'v2').getSettings()).toEqual({ ...first, name: 'Renamed' })
|
||||
expect(await new DeviceSharingService(file, 'v2').getSettings()).toEqual({ ...first, name: 'Renamed', serverUrl: url })
|
||||
await expect(service.saveSettings({ name: 'Bad', serverUrl: url, deviceId: 'forged' })).rejects.toThrow()
|
||||
expect(JSON.parse(await readFile(file, 'utf8')).deviceId).toBe(first.deviceId)
|
||||
await writeFile(file, '{broken')
|
||||
|
||||
@@ -560,8 +560,10 @@ describe('MagicNotesWorkspace overview navigation', () => {
|
||||
// Back to overview lives in the page header's top-right actions while a note is open.
|
||||
expect(screen.getByRole('button', { name: '返回总览' }).closest('.page-header__actions')).not.toBeNull()
|
||||
expect(screen.getByRole('button', { name: '返回总览' }).nextElementSibling).toBe(screen.getByRole('button', { name: '新建笔记' }))
|
||||
await waitFor(() => expect(screen.getByRole('button', { name: '返回总览' })).toHaveFocus())
|
||||
fireEvent.click(screen.getByRole('button', { name: '新建笔记' }))
|
||||
expect(within(overview).getByLabelText('笔记标题')).toBeVisible()
|
||||
expect(within(overview).getByLabelText('笔记标题')).toHaveFocus()
|
||||
fireEvent.click(within(overview).getByRole('button', { name: '取消' }))
|
||||
expect(screen.queryByRole('button', { name: '切换到待办' })).not.toBeInTheDocument()
|
||||
expect(screen.getByRole('searchbox')).toBeVisible()
|
||||
@@ -571,7 +573,6 @@ describe('MagicNotesWorkspace overview navigation', () => {
|
||||
const css = readFileSync('src/renderer/src/styles.css', 'utf8')
|
||||
expect(css).toMatch(/\.magic-notes-layout--detail\s*\{\s*border: 0;\s*border-radius: 0;/)
|
||||
expect(css).toMatch(/\.magic-notes-stream-pane\s*\{[^}]*padding: 0 var\(--magic-note-stream-gutter\)/)
|
||||
await waitFor(() => expect(screen.getByRole('button', { name: '返回总览' })).toHaveFocus())
|
||||
back()
|
||||
expect(overview).toBeVisible()
|
||||
expect(screen.getByRole('heading', { level: 1, name: '魔法笔记' })).toBeVisible()
|
||||
|
||||
Reference in New Issue
Block a user