authorgravatar for me@t3.ggTheo Browne <me@t3.gg> 2026-07-27 03:44:29-07:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2026-07-27 03:44:29-07:00
log23ea08daf27a2f56b85e605dd3d36f66bd1a132d
tree38e59cdda216ac005ac4d06751554df0e265adda
parentb4680cbfd064d59fdd2386a5ac6fc75e26e8c96b
signature Signed by PGP key B5690EEEBB952194

test: account for lazy thread feed details (#4628)


1 files changed, 23 insertions(+), 4 deletions(-)

apps/server/test/ActivityPayloadProjection.test.ts+23-4
......@@ -10,7 +10,7 @@ import {
1010} from "@t3tools/contracts";
1111import { describe, expect, it } from "vite-plus/test";
1212
13import { buildThreadFeed } from "../../mobile/src/lib/threadActivity.ts";
13import { buildThreadFeed, type ThreadFeedActivity } from "../../mobile/src/lib/threadActivity.ts";
1414import { deriveWorkLogEntries } from "../../web/src/session-logic.ts";
1515import {
1616 projectActivityEvent,
......@@ -134,6 +134,27 @@ const fixtures = [
134134] satisfies ReadonlyArray<OrchestrationThreadActivity>;
135135
136136describe("projectActivityPayload", () => {
137 function comparableActivity(activity: ThreadFeedActivity) {
138 return {
139 ...activity,
140 fullDetail: activity.getFullDetail(),
141 copyText: activity.getCopyText(),
142 getFullDetail: undefined,
143 getCopyText: undefined,
144 };
145 }
146
147 function comparableThreadFeed(activities: ReadonlyArray<OrchestrationThreadActivity>) {
148 return buildThreadFeed(makeThread(activities)).map((entry) =>
149 entry.type === "activity-group"
150 ? {
151 ...entry,
152 activities: entry.activities.map(comparableActivity),
153 }
154 : entry,
155 );
156 }
157
137158 it("drops unread bulk while retaining command, file, tool, and summary inputs", () => {
138159 const projected = projectActivityPayload(fixtures[0]!);
139160 expect(projected.payload).toEqual({
......@@ -170,9 +191,7 @@ describe("projectActivityPayload", () => {
170191 for (const activity of fixtures) {
171192 const projected = projectActivityPayload(activity);
172193 expect(deriveWorkLogEntries([projected])).toEqual(deriveWorkLogEntries([activity]));
173 expect(buildThreadFeed(makeThread([projected]))).toEqual(
174 buildThreadFeed(makeThread([activity])),
175 );
194 expect(comparableThreadFeed([projected])).toEqual(comparableThreadFeed([activity]));
176195 }
177196 });
178197