Skip to content

Commit 42cb73b

Browse files
committed
fix: update state sync logic
1 parent 41c5a12 commit 42cb73b

File tree

2 files changed

+20
-12
lines changed

2 files changed

+20
-12
lines changed

site/src/modules/resources/useAgentLogs.test.ts

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -180,17 +180,22 @@ describe("useAgentLogs", () => {
180180
act(() => publisherResult.current?.publishMessage(initialEvent));
181181
await waitFor(() => expect(hookResult.current).toEqual(initialLogs));
182182

183-
// Disable the hook
184-
rerender({ agentId: MockWorkspaceAgent.id, enabled: false });
185-
await waitFor(() => expect(hookResult.current).toHaveLength(0));
186-
187-
// Re-enable the hook and send new logs
188-
rerender({ agentId: MockWorkspaceAgent.id, enabled: true });
189-
const newLogs = generateMockLogs(3, new Date("october 3, 2005"));
190-
const newEvent = new MessageEvent<string>("message", {
191-
data: JSON.stringify(newLogs),
192-
});
193-
act(() => publisherResult.current?.publishMessage(newEvent));
194-
await waitFor(() => expect(hookResult.current).toEqual(newLogs));
183+
// Need to do the following steps multiple times to make sure that we
184+
// don't break anything after the first disable
185+
const mockDates: readonly string[] = ["october 3, 2005", "august 1, 2025"];
186+
for (const md of mockDates) {
187+
// Disable the hook to clear current logs
188+
rerender({ agentId: MockWorkspaceAgent.id, enabled: false });
189+
await waitFor(() => expect(hookResult.current).toHaveLength(0));
190+
191+
// Re-enable the hook and send new logs
192+
rerender({ agentId: MockWorkspaceAgent.id, enabled: true });
193+
const newLogs = generateMockLogs(3, new Date(md));
194+
const newEvent = new MessageEvent<string>("message", {
195+
data: JSON.stringify(newLogs),
196+
});
197+
act(() => publisherResult.current?.publishMessage(newEvent));
198+
await waitFor(() => expect(hookResult.current).toEqual(newLogs));
199+
}
195200
});
196201
});

site/src/modules/resources/useAgentLogs.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,9 @@ export function createUseAgentLogs(options: CreateUseAgentLogsOptions) {
3232
setLogs([]);
3333
setPrevEnabled(false);
3434
}
35+
if (enabled && !prevEnabled) {
36+
setPrevEnabled(true);
37+
}
3538

3639
useEffect(() => {
3740
if (!enabled) {

0 commit comments

Comments
 (0)