| ... | ... | @@ -2281,7 +2281,7 @@ describe("session activity performance", () => { |
| 2281 | 2281 | expect(appendedEntries[1]).toBe(initialEntries[1]); |
| 2282 | 2282 | }); |
| 2283 | 2283 | |
| 2284 | | it("updates 20,000 ordered tool activities within 100 ms", () => { |
| 2284 | it("reuses entries when appending to 20,000 ordered tool activities", () => { |
| 2285 | 2285 | const activities = Array.from({ length: 20_000 }, (_, index) => |
| 2286 | 2286 | makeActivity({ |
| 2287 | 2287 | id: `benchmark-tool-${index}`, |
| ... | ... | @@ -2299,7 +2299,8 @@ describe("session activity performance", () => { |
| 2299 | 2299 | }, |
| 2300 | 2300 | }), |
| 2301 | 2301 | ); |
| 2302 | | deriveWorkLogEntries(activities); |
| 2302 | const initialEntries = deriveWorkLogEntries(activities); |
| 2303 | expect(initialEntries).toHaveLength(20_000); |
| 2303 | 2304 | const updatedActivities = [ |
| 2304 | 2305 | ...activities, |
| 2305 | 2306 | makeActivity({ |
| ... | ... | @@ -2316,8 +2317,13 @@ describe("session activity performance", () => { |
| 2316 | 2317 | }), |
| 2317 | 2318 | ]; |
| 2318 | 2319 | |
| 2319 | | const startedAt = performance.now(); |
| 2320 | | expect(deriveWorkLogEntries(updatedActivities)).toHaveLength(20_001); |
| 2321 | | expect(performance.now() - startedAt).toBeLessThan(100); |
| 2320 | const updatedEntries = deriveWorkLogEntries(updatedActivities); |
| 2321 | expect(updatedEntries).toHaveLength(20_001); |
| 2322 | expect(initialEntries.every((entry, index) => updatedEntries[index] === entry)).toBe(true); |
| 2323 | expect(updatedEntries.at(-1)).toMatchObject({ |
| 2324 | id: "benchmark-tool-appended", |
| 2325 | command: "git diff", |
| 2326 | toolLifecycleStatus: "completed", |
| 2327 | }); |
| 2322 | 2328 | }); |
| 2323 | 2329 | }); |