diff --git a/apps/app/src/hooks/useThreadCreationOptions.test.tsx b/apps/app/src/hooks/useThreadCreationOptions.test.tsx index d59aae512..90dbcf952 100644 --- a/apps/app/src/hooks/useThreadCreationOptions.test.tsx +++ b/apps/app/src/hooks/useThreadCreationOptions.test.tsx @@ -294,6 +294,25 @@ afterEach(() => { }); describe("useThreadCreationOptions", () => { + it("applies arriving project defaults ahead of remembered tab choices", async () => { + window.localStorage.setItem("bb.promptbox.provider", GLOBAL_PROVIDER_ID); + const { result, rerender } = renderHook( + ({ loaded }: { loaded: boolean }) => useThreadCreationOptions({ + scope: "new-thread", + resetKey: PROJECT_ID, + initialProviderId: loaded ? PROJECT_PROVIDER_ID : undefined, + initialModel: loaded ? "project-model" : undefined, + }), + { initialProps: { loaded: false }, wrapper: createQueryClientTestHarness().wrapper }, + ); + await waitFor(() => expect(result.current.selectedProviderId).toBe(GLOBAL_PROVIDER_ID)); + rerender({ loaded: true }); + await waitFor(() => { + expect(result.current.selectedProviderId).toBe(PROJECT_PROVIDER_ID); + expect(result.current.selectedModel).toBe("project-model"); + }); + }); + it("keeps the selected remembered provider branded while models load", () => { window.localStorage.setItem("bb.promptbox.provider", "codex"); writeCachedProviderList(