Files
claude-code/tests/mocks/state.ts
unraid 8945f08708 feat: integrate fork work onto upstream main (squashed)
Squash-merge of feat/autofix-pr-test (69 commits) onto upstream/main
with -X ours strategy (upstream as authoritative for content conflicts).

Key features brought in from fork:
- LocalMemoryRecall + VaultHttpFetch tools (end-to-end wired)
- /local-memory, /local-vault, /memory-stores, /skill-store interactive panels
- /agents-platform, /schedule, /vault command scaffolding
- /login: switch / replace / remove of workspace API key
- statusline refactor (built-in status row, /statusline as info command)
- autofix-pr command + workflow

Conflict resolutions (upstream-wins):
- 10 .js command stubs kept from upstream (alongside fork's .ts implementations)
- src/components/BuiltinStatusLine.tsx accepted upstream's deletion
  (fork's wire-up references in StatusLine.tsx will be cleaned up next)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-09 14:58:26 +08:00

92 lines
2.6 KiB
TypeScript

/**
* Shared partial mock for src/bootstrap/state.ts
*
* Covers the most commonly imported exports plus their transitive callers.
* Add exports here when new tests need them — never mock exports that don't exist.
*
* Usage:
* import { stateMock } from '../../../tests/mocks/state'
* mock.module('src/bootstrap/state.js', stateMock)
*/
export function stateMock() {
const noop = () => {}
return {
// Session identity
getSessionId: () => 'mock-session-id',
regenerateSessionId: noop,
getParentSessionId: () => undefined,
switchSession: noop,
onSessionSwitch: () => () => {},
// CWD / project
getOriginalCwd: () => '/mock/cwd',
getSessionProjectDir: () => null,
getProjectRoot: () => '/mock/project',
getCwdState: () => '/mock/cwd',
setCwdState: noop,
setOriginalCwd: noop,
setProjectRoot: noop,
// Direct-connect
getDirectConnectServerUrl: () => undefined,
setDirectConnectServerUrl: noop,
// Duration / cost accumulators
addToTotalDurationState: noop,
resetTotalDurationStateAndCost_FOR_TESTS_ONLY: noop,
addToTotalCostState: noop,
getTotalCostUSD: () => 0,
getTotalAPIDuration: () => 0,
getTotalDuration: () => 0,
getTotalAPIDurationWithoutRetries: () => 0,
getTotalToolDuration: () => 0,
addToToolDuration: noop,
// Turn stats
getTurnHookDurationMs: () => 0,
addToTurnHookDuration: noop,
resetTurnHookDuration: noop,
getTurnHookCount: () => 0,
getTurnToolDurationMs: () => 0,
resetTurnToolDuration: noop,
getTurnToolCount: () => 0,
getTurnClassifierDurationMs: () => 0,
addToTurnClassifierDuration: noop,
resetTurnClassifierDuration: noop,
getTurnClassifierCount: () => 0,
// Stats store
getStatsStore: () => ({}),
setStatsStore: noop,
// Interaction time
updateLastInteractionTime: noop,
flushInteractionTime: noop,
// Lines changed
addToTotalLinesChanged: noop,
getTotalLinesAdded: () => 0,
getTotalLinesRemoved: () => 0,
// Token counts
getTotalInputTokens: () => 0,
getTotalOutputTokens: () => 0,
getTotalCacheReadInputTokens: () => 0,
getTotalCacheCreationInputTokens: () => 0,
getTotalWebSearchRequests: () => 0,
getTurnOutputTokens: () => 0,
getCurrentTurnTokenBudget: () => null,
// API request state
setLastAPIRequest: noop,
getLastAPIRequest: () => null,
setLastAPIRequestMessages: noop,
getLastAPIRequestMessages: () => [],
// Various getters (add as needed)
getIsNonInteractiveSession: () => false,
getSdkAgentProgressSummariesEnabled: () => false,
addSlowOperation: noop,
}
}