diff --git a/frontend/src/v2/__tests__/V2SettingsPage.test.tsx b/frontend/src/v2/__tests__/V2SettingsPage.test.tsx index edb01efad..9373db085 100644 --- a/frontend/src/v2/__tests__/V2SettingsPage.test.tsx +++ b/frontend/src/v2/__tests__/V2SettingsPage.test.tsx @@ -241,9 +241,10 @@ describe('V2SettingsPage', () => { }); renderSettings(); - expect(await screen.findByText(/shown once, when generated/i)).toBeInTheDocument(); - expect(screen.getByText(/ends in cret/i)).toBeInTheDocument(); - expect(screen.getByText(/^Created [45] Sep 2026$/)).toBeInTheDocument(); + expect(await screen.findByText(/active · ends in cret/i)).toBeInTheDocument(); + expect(screen.queryByText(/shown once/i)).not.toBeInTheDocument(); + expect(screen.queryByText('••••••••••••••••••••••••••••••••')).not.toBeInTheDocument(); + expect(document.querySelector('.v2-settings__token-detail')).toBeNull(); expect(screen.queryByRole('button', { name: 'Copy' })).not.toBeInTheDocument(); expect(screen.queryByRole('button', { name: 'Show' })).not.toBeInTheDocument(); expect(screen.queryByText('cm_user_secret')).not.toBeInTheDocument(); diff --git a/frontend/src/v2/components/V2SettingsPage.tsx b/frontend/src/v2/components/V2SettingsPage.tsx index b94755c0c..5fc244521 100644 --- a/frontend/src/v2/components/V2SettingsPage.tsx +++ b/frontend/src/v2/components/V2SettingsPage.tsx @@ -488,7 +488,7 @@ const V2ApiTokenSection: React.FC = () => { const maskedToken = '••••••••••••••••••••••••••••••••'; const createdLabel = createdAt ? formatTokenCreatedAt(createdAt) : null; - const statusLabel = hasToken ? 'Active' : 'None'; + const statusLabel = hasToken ? `Active${last4 ? ` · ends in ${last4}` : ''}` : 'None'; return (
{error}
} {notice &&{notice}
} - {hasToken && ( + {token && ( <>{token && showToken ? token : maskedToken}
- {token && (
- <>
-
-
- >
- )}
+
+
Shown once, when generated.{last4 ? ` Ends in ${last4}.` : ''}
} {createdLabel &&{createdLabel}
} > )} diff --git a/frontend/src/v2/v2.css b/frontend/src/v2/v2.css index 10103bd16..2d1c265a1 100644 --- a/frontend/src/v2/v2.css +++ b/frontend/src/v2/v2.css @@ -8418,7 +8418,8 @@ details[open] > .v2-settings__summary > .v2-settings__icon:last-child { transfor /* D215 Settings › Look: a label and a segment per row. Language moved here from the rail (TASK-691). */ .v2-settings__look { display: flex; flex-direction: column; } -.v2-settings__look .v2-settings__row { justify-content: space-between; } +.v2-settings__look .v2-settings__row { justify-content: flex-start; } +.v2-settings__look .v2-settings__row > :last-child { margin-left: auto; } .v2-settings__look .v2-settings__row + .v2-settings__row { border-top: 1px solid var(--v2-border-soft); }