fix: use settings as source of truth for hooks config state (#633)
This commit is contained in:
@@ -6,7 +6,6 @@ import { mkdirSync, rmSync, writeFileSync } from "node:fs";
|
||||
import { tmpdir } from "node:os";
|
||||
import { join } from "node:path";
|
||||
import {
|
||||
clearHooksCache,
|
||||
hasHooks,
|
||||
runNotificationHooks,
|
||||
runPermissionRequestHooks,
|
||||
@@ -20,6 +19,7 @@ import {
|
||||
runSubagentStopHooks,
|
||||
runUserPromptSubmitHooks,
|
||||
} from "../../hooks";
|
||||
import { settingsManager } from "../../settings-manager";
|
||||
|
||||
// Skip on Windows - test commands use bash syntax (&&, >&2, etc.)
|
||||
// The executor itself is cross-platform, but these test commands are bash-specific
|
||||
@@ -30,7 +30,10 @@ describe.skipIf(isWindows)("Hooks Integration Tests", () => {
|
||||
let fakeHome: string;
|
||||
let originalHome: string | undefined;
|
||||
|
||||
beforeEach(() => {
|
||||
beforeEach(async () => {
|
||||
// Reset settings manager FIRST before changing HOME
|
||||
await settingsManager.reset();
|
||||
|
||||
const baseDir = join(
|
||||
tmpdir(),
|
||||
`hooks-integration-${process.pid}-${Math.random().toString(36).slice(2)}`,
|
||||
@@ -43,10 +46,15 @@ describe.skipIf(isWindows)("Hooks Integration Tests", () => {
|
||||
// Override HOME to isolate from real global hooks
|
||||
originalHome = process.env.HOME;
|
||||
process.env.HOME = fakeHome;
|
||||
clearHooksCache();
|
||||
|
||||
// Initialize settings manager with new HOME
|
||||
await settingsManager.initialize();
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
afterEach(async () => {
|
||||
// Wait for pending writes and reset
|
||||
await settingsManager.reset();
|
||||
|
||||
// Restore HOME
|
||||
process.env.HOME = originalHome;
|
||||
try {
|
||||
@@ -56,7 +64,6 @@ describe.skipIf(isWindows)("Hooks Integration Tests", () => {
|
||||
} catch {
|
||||
// Ignore cleanup errors
|
||||
}
|
||||
clearHooksCache();
|
||||
});
|
||||
|
||||
// Helper to create hook config
|
||||
|
||||
Reference in New Issue
Block a user