Files
orca/tests/e2e/file-open.spec.ts
T

62 lines
2.2 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import { test, expect } from './helpers/orca-app'
import {
waitForSessionReady,
waitForActiveWorktree,
getActiveWorktreeId,
getActiveTabType,
getOpenFiles,
ensureTerminalVisible
} from './helpers/store'
import { clickFileInExplorer, openFileExplorer } from './helpers/file-explorer'
test.describe('File Open & Markdown Preview', () => {
test.beforeEach(async ({ orcaPage }) => {
await waitForSessionReady(orcaPage)
await waitForActiveWorktree(orcaPage)
await ensureTerminalVisible(orcaPage)
})
test('clicking a file in the file explorer opens it in an editor tab', async ({ orcaPage }) => {
const worktreeId = (await getActiveWorktreeId(orcaPage))!
await openFileExplorer(orcaPage)
const filesBefore = await getOpenFiles(orcaPage, worktreeId)
const clickedFile = await clickFileInExplorer(orcaPage, [
'package.json',
'tsconfig.json',
'.gitignore',
'README.md'
])
expect(clickedFile).not.toBeNull()
await expect.poll(async () => getActiveTabType(orcaPage), { timeout: 5_000 }).toBe('editor')
await expect
.poll(async () => (await getOpenFiles(orcaPage, worktreeId)).length, { timeout: 5_000 })
.toBeGreaterThan(filesBefore.length)
// Assert the rendered path; allow first-open lazy EditorPanel/Monaco/Markdown chunks to mount.
await expect(orcaPage.locator('.editor-header-path').first()).toContainText(clickedFile!, {
timeout: 20_000
})
})
test('opening a .md file shows markdown content', async ({ orcaPage }) => {
await openFileExplorer(orcaPage)
const clickedFile = await clickFileInExplorer(orcaPage, ['README.md', 'CLAUDE.md'])
expect(clickedFile).not.toBeNull()
await expect.poll(async () => getActiveTabType(orcaPage), { timeout: 5_000 }).toBe('editor')
// Assert the file’s real heading so a blank editor cannot pass via store state.
const expectedHeading = clickedFile?.endsWith('README.md')
? /Orca E2E Test Repo/i
: /CLAUDE\.md/i
// Allow cold EditorPanel → Markdown chunk loading and ProseMirror boot before the heading paints.
await expect(orcaPage.getByRole('heading', { name: expectedHeading, level: 1 })).toBeVisible({
timeout: 25_000
})
})
})