The GitHub Actions job "CI" on 
rocketmq-dashboard.git/fix/dingtalk-secret-affordance has failed.
Run started by GitHub user unbridled-41 (triggered by unbridled-41).

Head commit for run:
1589355369b2aa0c15a4d4253cd554f14e1fe04d / unbridled-41 
<[email protected]>
fix(settings): reveal the clear action after a signing secret has been saved

The notification form saves the DingTalk signing secret, but the page then
reconciles its state from a settings read taken *before* the write:

    const base = await loadFreshSettings();
    await saveGeneralSettings(buildPayload({ ...base, ...patch }));
    setSettings({ ...base, ...statePatch });

`dingtalkSigningSecretConfigured` is a server-derived marker that buildPayload
strips, so it stays false after the save - and it is the only thing that renders
the 清除钉钉签名密钥 button:

    {settings?.dingtalkSigningSecretConfigured && (<Button danger 
onClick={clearDingtalkSigningSecret}>...}

The operator who pasted a wrong secret therefore cannot remove it: the clear
action never appears until a full page reload, and emptying the field reports
"保存成功" while SettingsService keeps the stored secret (an empty value means
"keep the current one"), so DingTalk signing keeps failing with a secret the UI
claims to have cleared. The AI tab's key field in the same page already marks
itself configured after a successful save; this form had no equivalent.

Mark the secret configured from the submission itself and empty the field so the
next save does not resubmit the same value.

Tests (web/): npx vitest run 
src/pages/settings/__tests__/GeneralSettingsTab.test.tsx
- new case "reveals the clear action once a signing secret has been saved" fails
  before this change (the button stays absent) and passes after it; it also
  asserts the field is emptied.
- 9 tests pass; npx eslint reports no errors; npx tsc -b passes.

Report URL: 
https://github.com/apache/rocketmq-dashboard/actions/runs/37979542197

With regards,
GitHub Actions via GitBox

Reply via email to