mirror of
https://github.com/larksuite/cli.git
synced 2026-09-14 18:42:53 +08:00
59f6ad4900
* fix: preserve non-data payload keys in SuccessEnvelopeData
When an API response uses a non-"data" key (e.g., /bot/v3/info returns
payload under "bot"), the previous implementation discarded the payload
and returned an empty object. Fall back to the envelope minus transport
fields (code, msg, data) so the business payload is preserved.
Fixes #2428
(cherry picked from commit a82585718c)
* fix(output): pass non-object bodies through and pin api envelope at command level
Follow-up to the cherry-picked fix for #2428: return nil bodies as {} and
non-object bodies untouched instead of collapsing them, align the new test
with its neighbours, and add cmd/api regression tests through the httpmock
path so the user-visible envelope is pinned where the bug was reported.
* test(output): pin null data with sibling payload, drop SDK-pinned array test
TestApiCmd_NonObjectBody_FailsLoudly asserted the SDK's pre-decode rejection
of non-object bodies, not the output-layer branch this PR added; reverting
that branch left it green. The unit test already covers the branch, so the
command-level copy is removed. Add a unit case for {"data": null, "bot": {..}},
which the previous code collapsed to {} and now returns as {"bot": {..}}.
* fix(output): normalize legacy bot payloads
---------
Co-authored-by: Wu Shuwen <108231307+dajiaohuang@users.noreply.github.com>
Co-authored-by: sang-neo03 <266690410+sang-neo03@users.noreply.github.com>