mirror of
https://github.com/getpaseo/paseo.git
synced 2026-08-14 12:23:16 +00:00
- Add download toast component with progress indicator and auto-dismiss - Add download store for managing file download state - Add e2e tests for permission prompts (allow/deny flows) - Add global setup for e2e tests with isolated daemon instance - Update favicon assets with new design - Refactor agent-stream-view to use shared tool-call-details component - Simplify file-explorer-pane component - Clean up unused screenshots and PRODUCTION.md 🤖 Generated with [Claude Code](https://claude.com/claude-code)
69 lines
2.0 KiB
TypeScript
69 lines
2.0 KiB
TypeScript
import { existsSync } from 'node:fs';
|
|
import path from 'node:path';
|
|
import { test, expect } from './fixtures';
|
|
import {
|
|
createAgentWithConfig,
|
|
waitForPermissionPrompt,
|
|
allowPermission,
|
|
denyPermission,
|
|
waitForAgentIdle,
|
|
} from './helpers/app';
|
|
import { createTempGitRepo } from './helpers/workspace';
|
|
|
|
const FILE_CONTENT = 'Hello from permission test';
|
|
|
|
test.describe('permission prompts', () => {
|
|
test('allow permission creates the file', async ({ page }) => {
|
|
const repo = await createTempGitRepo();
|
|
const uniqueFilename = `test-allow-${Date.now()}.txt`;
|
|
const filePath = path.join(repo.path, uniqueFilename);
|
|
const prompt = `Create a file named "${uniqueFilename}" with the content "${FILE_CONTENT}". Do not add any extra content.`;
|
|
|
|
try {
|
|
await createAgentWithConfig(page, {
|
|
directory: repo.path,
|
|
model: 'haiku',
|
|
mode: 'Always Ask',
|
|
prompt,
|
|
});
|
|
|
|
await waitForPermissionPrompt(page, 30000);
|
|
await allowPermission(page);
|
|
|
|
// Wait for file to be created
|
|
await expect
|
|
.poll(() => existsSync(filePath), {
|
|
message: `File ${filePath} should exist after allowing permission`,
|
|
timeout: 10000,
|
|
})
|
|
.toBe(true);
|
|
} finally {
|
|
await repo.cleanup();
|
|
}
|
|
});
|
|
|
|
test('deny permission does not create the file', async ({ page }) => {
|
|
const repo = await createTempGitRepo();
|
|
const uniqueFilename = `test-deny-${Date.now()}.txt`;
|
|
const filePath = path.join(repo.path, uniqueFilename);
|
|
const prompt = `Create a file named "${uniqueFilename}" with the content "${FILE_CONTENT}". Do not add any extra content.`;
|
|
|
|
try {
|
|
await createAgentWithConfig(page, {
|
|
directory: repo.path,
|
|
model: 'haiku',
|
|
mode: 'Always Ask',
|
|
prompt,
|
|
});
|
|
|
|
await waitForPermissionPrompt(page, 30000);
|
|
await denyPermission(page);
|
|
await waitForAgentIdle(page);
|
|
|
|
expect(existsSync(filePath)).toBe(false);
|
|
} finally {
|
|
await repo.cleanup();
|
|
}
|
|
});
|
|
});
|