mirror of
https://github.com/larksuite/cli.git
synced 2026-09-14 18:42:53 +08:00
3558e5b548
Review found the selector deferral half-wired. The requirement is easy to satisfy in Execute and easy to miss in Validate, because the two read the selector from different places: Execute passes the RESOLVED pair into the input builder, Validate passes the raw flags. A builder calling requireSheetSelector therefore passes for one caller and fails for the other, with nothing tying them together. Sweeping every command whose Execute calls resolveSheetSelectorExec found nine still rejecting in pre-flight -- more than the review named: +cells-merge, +cells-unmerge, +rows-resize, +cols-resize, +range-copy, +range-move, +dim-delete (both --range and --ranges), +dim-hide / +dim-unhide, +dim-group / +dim-ungroup, and the float-image writes. For those the resolver their Execute calls was unreachable. TestSheetSelector_DeferralReachesEveryResolver is that missing tie, and its counterpart pins that --dry-run keeps the rejection: a preview sends nothing, so it cannot ask the workbook either, and printing a request whose sheet the CLI would have filled in would show a call that never existed. Also asserts the typed envelope in the sheet-prefix conflict E2E case rather than the message text alone. type / subtype / param are what a caller branches on; the prose is free to be reworded, and pinning only the prose is what made that test fail on a reworded message once already.