diff --git a/apps/next/src/app/(app)/spoons/[spoonId]/agent/[jobId]/page.tsx b/apps/next/src/app/(app)/spoons/[spoonId]/agent/[jobId]/page.tsx index 06a8883..93fdbfe 100644 --- a/apps/next/src/app/(app)/spoons/[spoonId]/agent/[jobId]/page.tsx +++ b/apps/next/src/app/(app)/spoons/[spoonId]/agent/[jobId]/page.tsx @@ -37,7 +37,7 @@ const AgentWorkspacePage = () => { Back to Spoon - + ); }; diff --git a/apps/next/src/app/(app)/threads/[threadId]/page.tsx b/apps/next/src/app/(app)/threads/[threadId]/page.tsx index f471c58..add0be8 100644 --- a/apps/next/src/app/(app)/threads/[threadId]/page.tsx +++ b/apps/next/src/app/(app)/threads/[threadId]/page.tsx @@ -53,7 +53,7 @@ const ThreadDetailPage = () => { Back to Spoon - + ); } diff --git a/apps/next/tests/component/agent-workspace-shell-key.test.tsx b/apps/next/tests/component/agent-workspace-shell-key.test.tsx new file mode 100644 index 0000000..b6e1178 --- /dev/null +++ b/apps/next/tests/component/agent-workspace-shell-key.test.tsx @@ -0,0 +1,28 @@ +import { useEffect } from 'react'; +import { render } from '@testing-library/react'; +import { describe, expect, test } from 'vitest'; + +let mounts = 0; + +const Child = ({ jobId }: { jobId: string }) => { + useEffect(() => { + mounts += 1; + }, []); + + return {jobId}; +}; + +const Shell = ({ jobId }: { jobId: string }) => ( + +); + +describe('workspace shell keyed by job', () => { + test('remounts when jobId changes', () => { + mounts = 0; + const { rerender } = render(); + expect(mounts).toBe(1); + + rerender(); + expect(mounts).toBe(2); + }); +});