From e98ee001397cda5918d50790cbd963d4ea2d9af2 Mon Sep 17 00:00:00 2001 From: Logan Johnson Date: Tue, 18 Aug 2026 17:44:32 +0000 Subject: [PATCH] test(desktop): cover workstream reviewer wait boundaries Signed-off-by: loganj --- .../lib/workstreamWaits.test.mjs | 72 +++++++++++++++++++ 1 file changed, 72 insertions(+) diff --git a/desktop/src/features/workstream-board/lib/workstreamWaits.test.mjs b/desktop/src/features/workstream-board/lib/workstreamWaits.test.mjs index 04ec471e50..4c1732fc19 100644 --- a/desktop/src/features/workstream-board/lib/workstreamWaits.test.mjs +++ b/desktop/src/features/workstream-board/lib/workstreamWaits.test.mjs @@ -130,3 +130,75 @@ test("sorting authenticates the current owner by pubkey and remains stable acros ordered, ); }); + +test("derived reviewer waits cover all unapproved open review states and exclude approved or terminal states", () => { + const reference = { + kind: "github", + identity: "github:block/buzz#2", + rawUrl: "https://github.com/block/buzz/pull/2", + href: "https://github.com/block/buzz/pull/2", + owner: "block", + repository: "buzz", + number: 2, + }; + for (const reviewState of [ + "no-reviews", + "review-requested", + "changes-requested", + ]) { + const states = new Map([ + [ + reference.identity, + { + status: "live", + provider: "github", + href: reference.href, + repository: "block/buzz", + number: 2, + title: "Two", + lifecycle: "open", + reviewState, + }, + ], + ]); + assert.equal( + deriveReviewerWaits([reference], states).length, + 1, + reviewState, + ); + } + for (const lifecycle of ["draft", "merged", "closed"]) { + const states = new Map([ + [ + reference.identity, + { + status: "live", + provider: "github", + href: reference.href, + repository: "block/buzz", + number: 2, + title: "Two", + lifecycle, + reviewState: "review-requested", + }, + ], + ]); + assert.equal(deriveReviewerWaits([reference], states).length, 0, lifecycle); + } + const approved = new Map([ + [ + reference.identity, + { + status: "live", + provider: "github", + href: reference.href, + repository: "block/buzz", + number: 2, + title: "Two", + lifecycle: "open", + reviewState: "approved", + }, + ], + ]); + assert.equal(deriveReviewerWaits([reference], approved).length, 0); +});