mirror of
https://github.com/AutoMaker-Org/automaker.git
synced 2026-01-31 06:42:03 +00:00
- Deleted the AI profile management feature, including all associated views, hooks, and types. - Updated settings and navigation components to remove references to AI profiles. - Adjusted local storage and settings synchronization logic to reflect the removal of AI profiles. - Cleaned up tests and utility functions that were dependent on the AI profile feature. These changes streamline the application by eliminating unused functionality, improving maintainability and reducing complexity.
174 lines
5.2 KiB
TypeScript
174 lines
5.2 KiB
TypeScript
/**
|
|
* Centralized constants for test utilities
|
|
* This file contains all shared constants like URLs, timeouts, and selectors
|
|
*/
|
|
|
|
// ============================================================================
|
|
// API Configuration
|
|
// ============================================================================
|
|
|
|
/**
|
|
* Base URL for the API server
|
|
*/
|
|
export const API_BASE_URL = 'http://localhost:3008';
|
|
|
|
/**
|
|
* API endpoints for worktree operations
|
|
*/
|
|
export const API_ENDPOINTS = {
|
|
worktree: {
|
|
create: `${API_BASE_URL}/api/worktree/create`,
|
|
delete: `${API_BASE_URL}/api/worktree/delete`,
|
|
list: `${API_BASE_URL}/api/worktree/list`,
|
|
commit: `${API_BASE_URL}/api/worktree/commit`,
|
|
switchBranch: `${API_BASE_URL}/api/worktree/switch-branch`,
|
|
listBranches: `${API_BASE_URL}/api/worktree/list-branches`,
|
|
status: `${API_BASE_URL}/api/worktree/status`,
|
|
info: `${API_BASE_URL}/api/worktree/info`,
|
|
},
|
|
fs: {
|
|
browse: `${API_BASE_URL}/api/fs/browse`,
|
|
read: `${API_BASE_URL}/api/fs/read`,
|
|
write: `${API_BASE_URL}/api/fs/write`,
|
|
},
|
|
features: {
|
|
list: `${API_BASE_URL}/api/features/list`,
|
|
create: `${API_BASE_URL}/api/features/create`,
|
|
update: `${API_BASE_URL}/api/features/update`,
|
|
delete: `${API_BASE_URL}/api/features/delete`,
|
|
},
|
|
} as const;
|
|
|
|
// ============================================================================
|
|
// Timeout Configuration
|
|
// ============================================================================
|
|
|
|
/**
|
|
* Default timeouts in milliseconds
|
|
*/
|
|
export const TIMEOUTS = {
|
|
/** Default timeout for element visibility checks */
|
|
default: 5000,
|
|
/** Short timeout for quick checks */
|
|
short: 2000,
|
|
/** Medium timeout for standard operations */
|
|
medium: 10000,
|
|
/** Long timeout for slow operations */
|
|
long: 30000,
|
|
/** Extra long timeout for very slow operations */
|
|
extraLong: 60000,
|
|
/** Timeout for animations to complete */
|
|
animation: 300,
|
|
/** Small delay for UI to settle */
|
|
settle: 500,
|
|
/** Delay for network operations */
|
|
network: 1000,
|
|
} as const;
|
|
|
|
// ============================================================================
|
|
// Test ID Selectors
|
|
// ============================================================================
|
|
|
|
/**
|
|
* Common data-testid selectors organized by component/view
|
|
*/
|
|
export const TEST_IDS = {
|
|
// Sidebar & Navigation
|
|
sidebar: 'sidebar',
|
|
navBoard: 'nav-board',
|
|
navSpec: 'nav-spec',
|
|
navContext: 'nav-context',
|
|
navAgent: 'nav-agent',
|
|
settingsButton: 'settings-button',
|
|
openProjectButton: 'open-project-button',
|
|
|
|
// Views
|
|
boardView: 'board-view',
|
|
specView: 'spec-view',
|
|
contextView: 'context-view',
|
|
agentView: 'agent-view',
|
|
settingsView: 'settings-view',
|
|
welcomeView: 'welcome-view',
|
|
setupView: 'setup-view',
|
|
|
|
// Board View Components
|
|
addFeatureButton: 'add-feature-button',
|
|
addFeatureDialog: 'add-feature-dialog',
|
|
confirmAddFeature: 'confirm-add-feature',
|
|
featureBranchInput: 'feature-input',
|
|
featureCategoryInput: 'feature-category-input',
|
|
worktreeSelector: 'worktree-selector',
|
|
|
|
// Spec Editor
|
|
specEditor: 'spec-editor',
|
|
|
|
// File Browser Dialog
|
|
pathInput: 'path-input',
|
|
goToPathButton: 'go-to-path-button',
|
|
|
|
// Context View
|
|
contextFileList: 'context-file-list',
|
|
addContextButton: 'add-context-button',
|
|
} as const;
|
|
|
|
// ============================================================================
|
|
// CSS Selectors
|
|
// ============================================================================
|
|
|
|
/**
|
|
* Common CSS selectors for elements that don't have data-testid
|
|
*/
|
|
export const CSS_SELECTORS = {
|
|
/** CodeMirror editor content area */
|
|
codeMirrorContent: '.cm-content',
|
|
/** Dialog elements */
|
|
dialog: '[role="dialog"]',
|
|
/** Sonner toast notifications */
|
|
toast: '[data-sonner-toast]',
|
|
toastError: '[data-sonner-toast][data-type="error"]',
|
|
toastSuccess: '[data-sonner-toast][data-type="success"]',
|
|
/** Command/combobox input (shadcn-ui cmdk) */
|
|
commandInput: '[cmdk-input]',
|
|
/** Radix dialog overlay */
|
|
dialogOverlay: '[data-radix-dialog-overlay]',
|
|
} as const;
|
|
|
|
// ============================================================================
|
|
// Storage Keys
|
|
// ============================================================================
|
|
|
|
/**
|
|
* localStorage keys used by the application
|
|
*/
|
|
export const STORAGE_KEYS = {
|
|
appStorage: 'automaker-storage',
|
|
setupStorage: 'automaker-setup',
|
|
} as const;
|
|
|
|
// ============================================================================
|
|
// Branch Name Utilities
|
|
// ============================================================================
|
|
|
|
/**
|
|
* Sanitize a branch name to create a valid worktree directory name
|
|
* @param branchName - The branch name to sanitize
|
|
* @returns Sanitized name suitable for directory paths
|
|
*/
|
|
export function sanitizeBranchName(branchName: string): string {
|
|
return branchName.replace(/[^a-zA-Z0-9_-]/g, '-');
|
|
}
|
|
|
|
// ============================================================================
|
|
// Default Values
|
|
// ============================================================================
|
|
|
|
/**
|
|
* Default values used in test setup
|
|
*/
|
|
export const DEFAULTS = {
|
|
projectName: 'Test Project',
|
|
projectPath: '/mock/test-project',
|
|
theme: 'dark' as const,
|
|
maxConcurrency: 3,
|
|
} as const;
|