test(design-floor): answer the seed-declared all-seven 0D focus menu while it is pending

The actor declares 'Design: review all seven dimensions', but its picker
reused designReviewSetupAUQ, which only matches already-answered calls
(and a narrower header/label set), so the pending D1 focus menu was never
answered and the case waited out its 609 s deadline. The skill's Step 0D
requires asking; the fixture now answers it.
This commit is contained in:
garrytan committed 2026-09-29 17:07:38 +00:00
1 parent 3a888896db
commit 41dca7609d
3 files changed
+61 -38

No files matched your search

@@ -57,6 +57,7 @@ import {
devexStep0Boundary,
type ClaudePtyOptions,
type AskUserQuestionFingerprint,
pickDesignFocusAll,
} from './claude-pty-runner';
describe('saved preference annotation', () => {
@@ -3523,3 +3524,21 @@ describe('explicit Step 0 complexity gate with size in native choices', () => {
}
});
});
describe('pickDesignFocusAll: the seed-declared all-seven answer for the pending 0D focus menu', () => {
const captured = require('../fixtures/design-floor-focus-36597762183.json');
const q = () => structuredClone(captured.question);
test('census 36597762183 pending menu selects the all-seven option', () => {
expect(pickDesignFocusAll(q())).toBe(1);
});
test.each([
['a different title', (x: any) => { x.question = x.question.replace('Review all 7 design dimensions, or focus?', 'Which fixes should I apply?'); }],
['a non-narrowing alternative', (x: any) => { x.options[1].label = 'Approve every fix now'; }],
['two all-seven options', (x: any) => { x.options[1].label = 'All seven dimensions'; }],
['a bundled product approval', (x: any) => { x.question = x.question.replace('Net:', 'Also approve the CTA redesign.\nNet:'); }],
['a foreign plan context', (x: any) => { x.question = x.question.replace('plan-design-review of PLAN.md', 'plan-design-review of OTHER.md'); }],
['multi select', (x: any) => { x.multiSelect = true; }],
])('%s is not answered', (_name, mutate) => {
const x = q(); mutate(x); expect(pickDesignFocusAll(x)).toBeNull();
});
});