Imported as a linear vendor commit so forge rebases do not replay the upstream root tree. git-subtree-dir: third_party/pi git-subtree-split: d981de1229ef899957bbe968bc8dcda02a21f477
36 lines
860 B
TypeScript
36 lines
860 B
TypeScript
import { describe, expect, it } from "vitest";
|
|
import { InMemorySettingsStorage, SettingsManager } from "../../../src/core/settings-manager.ts";
|
|
|
|
describe("regression #7572: nested provider retry settings merge", () => {
|
|
it("preserves global provider settings not overridden by the project", () => {
|
|
const storage = new InMemorySettingsStorage();
|
|
storage.withLock("global", () =>
|
|
JSON.stringify({
|
|
retry: {
|
|
provider: {
|
|
timeoutMs: 30000,
|
|
maxRetryDelayMs: 45000,
|
|
},
|
|
},
|
|
}),
|
|
);
|
|
storage.withLock("project", () =>
|
|
JSON.stringify({
|
|
retry: {
|
|
provider: {
|
|
maxRetries: 2,
|
|
},
|
|
},
|
|
}),
|
|
);
|
|
|
|
const settingsManager = SettingsManager.fromStorage(storage);
|
|
|
|
expect(settingsManager.getProviderRetrySettings()).toEqual({
|
|
timeoutMs: 30000,
|
|
maxRetries: 2,
|
|
maxRetryDelayMs: 45000,
|
|
});
|
|
});
|
|
});
|