Skip to content

Commit 727227f

Browse files
test(settings): Add tests for button disable and permissions preview
Add test verifying the Create Token button is disabled after a successful mutation, and a test confirming the permissions preview displays selected scopes. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 594354d commit 727227f

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed

static/app/views/settings/account/apiNewToken.spec.tsx

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,49 @@ describe('ApiNewToken', () => {
173173
);
174174
});
175175

176+
it('disables create button after successful creation', async () => {
177+
MockApiClient.clearMockResponses();
178+
MockApiClient.addMockResponse({
179+
method: 'POST',
180+
url: '/api-tokens/',
181+
body: ApiTokenFixture({token: 'sntrys_test_token_123'}),
182+
});
183+
184+
render(<ApiNewToken />);
185+
renderGlobalModal();
186+
187+
const selectByValue = (name: string, value: string) =>
188+
selectEvent.select(screen.getByRole('textbox', {name}), value);
189+
190+
await selectByValue('Project', 'Read');
191+
192+
const createButton = screen.getByRole('button', {name: 'Create Token'});
193+
expect(createButton).toBeEnabled();
194+
195+
await userEvent.click(createButton);
196+
197+
// Wait for the modal to appear (confirms mutation succeeded)
198+
expect(await screen.findByLabelText('Generated token')).toBeInTheDocument();
199+
200+
// Button should be disabled after successful creation
201+
expect(createButton).toBeDisabled();
202+
});
203+
204+
it('displays permissions preview when scopes are selected', async () => {
205+
render(<ApiNewToken />);
206+
207+
const selectByValue = (name: string, value: string) =>
208+
selectEvent.select(screen.getByRole('textbox', {name}), value);
209+
210+
await selectByValue('Project', 'Read');
211+
212+
expect(screen.getByText(/project:read/)).toBeInTheDocument();
213+
214+
await selectByValue('Team', 'Admin');
215+
216+
expect(screen.getByText(/team:admin/)).toBeInTheDocument();
217+
});
218+
176219
it('shows error message when token creation fails', async () => {
177220
jest.spyOn(indicators, 'addErrorMessage');
178221

0 commit comments

Comments
 (0)