diff --git a/desktop/src/features/workstream-board/ui/WorkstreamBoardScreen.tsx b/desktop/src/features/workstream-board/ui/WorkstreamBoardScreen.tsx index a207204102..d434138fa2 100644 --- a/desktop/src/features/workstream-board/ui/WorkstreamBoardScreen.tsx +++ b/desktop/src/features/workstream-board/ui/WorkstreamBoardScreen.tsx @@ -340,10 +340,15 @@ export function WorkstreamBoardScreen() {

{(discussionMessages.data ?? []) .filter( - (event) => parseBoardReferences(event.tags).length > 0, + (event) => + parseBoardReferences(event.tags, discussionChannel.id) + .length > 0, ) .map((event) => { - const refs = parseBoardReferences(event.tags); + const refs = parseBoardReferences( + event.tags, + discussionChannel.id, + ); return ( + {workstreamIsCurrent ? ( + + Current reference + + ) : null} {discussionMode ? (
{ + const pageErrors: Error[] = []; + page.on("pageerror", (error) => pageErrors.push(error)); + await installMockBridge(page, { + canvasReadError: "Canvas unavailable", + workstreamBoardFixture: { + channelId: CHANNEL_ID, + channelName: "loganj-ws-board-context", + canvas: CANVAS, + rootEventId: ROOT_EVENT_ID, + targetEventId: TARGET_EVENT_ID, + }, + }); + await page.goto("/", { waitUntil: "domcontentloaded" }); + await page.getByTestId("open-workstream-board-view").click(); + const board = page.getByTestId("workstream-board-view"); + await expect(board).toBeVisible(); + const card = page.getByTestId(`workstream-card-${CHANNEL_ID}`); + await expect(card).toContainText("Card details unavailable"); + await board.getByRole("button", { name: "Discuss Board" }).click(); + + await card + .getByRole("button", { name: /Open #loganj-ws-board-context/ }) + .click(); + + await expect(page.getByText("Reference tray (0)")).toBeVisible(); + const unavailableOptions = page.getByTestId( + `board-reference-options-${CHANNEL_ID}`, + ); + await expect(unavailableOptions.getByRole("button")).toHaveCount(1); + await expect( + unavailableOptions.getByRole("button", { name: "Open", exact: true }), + ).toBeVisible(); + expect(pageErrors).toEqual([]); +});