feat(e2e): add test mode infrastructure with BTERMINAL_TEST env isolation
Rust: watcher.rs/fs_watcher.rs skip watchers in test mode, is_test_mode Tauri command. Frontend: wake-scheduler disable, App.svelte test mode detection. AppConfig centralization in bterminal-core (OnceLock pattern for path overrides).
This commit is contained in:
parent
d1a4d9f220
commit
4097253921
18 changed files with 346 additions and 29 deletions
|
|
@ -12,6 +12,8 @@
|
|||
import { registerMemoryAdapter } from './lib/adapters/memory-adapter';
|
||||
import { MemoraAdapter } from './lib/adapters/memora-bridge';
|
||||
import { loadWorkspace, getActiveTab, setActiveTab, setActiveProject, getEnabledProjects } from './lib/stores/workspace.svelte';
|
||||
import { disableWakeScheduler } from './lib/stores/wake-scheduler.svelte';
|
||||
import { invoke } from '@tauri-apps/api/core';
|
||||
|
||||
// Workspace components
|
||||
import GlobalTabBar from './lib/components/Workspace/GlobalTabBar.svelte';
|
||||
|
|
@ -82,6 +84,11 @@
|
|||
startAgentDispatcher();
|
||||
startHealthTick();
|
||||
|
||||
// Disable wake scheduler in test mode to prevent timer interference
|
||||
invoke<boolean>('is_test_mode').then(isTest => {
|
||||
if (isTest) disableWakeScheduler();
|
||||
});
|
||||
|
||||
if (!detached) {
|
||||
loadWorkspace().then(() => { loaded = true; });
|
||||
}
|
||||
|
|
|
|||
|
|
@ -36,9 +36,17 @@ export interface WakeEvent {
|
|||
|
||||
let registrations = $state<Map<string, ManagerRegistration>>(new Map());
|
||||
let pendingWakes = $state<Map<string, WakeEvent>>(new Map());
|
||||
/** When true, registerManager() becomes a no-op (set in test mode) */
|
||||
let schedulerDisabled = false;
|
||||
|
||||
// --- Public API ---
|
||||
|
||||
/** Disable the wake scheduler (call during app init in test mode) */
|
||||
export function disableWakeScheduler(): void {
|
||||
schedulerDisabled = true;
|
||||
clearWakeScheduler();
|
||||
}
|
||||
|
||||
/** Register a Manager agent for wake scheduling */
|
||||
export function registerManager(
|
||||
agentId: AgentId,
|
||||
|
|
@ -48,6 +56,8 @@ export function registerManager(
|
|||
intervalMin: number,
|
||||
threshold: number,
|
||||
): void {
|
||||
if (schedulerDisabled) return;
|
||||
|
||||
// Unregister first to clear any existing timer
|
||||
unregisterManager(agentId);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue