Skip to content

Commit 77c46a2

Browse files
authored
Merge pull request #9122 from hi-rustin/rustin-patch-regenerate
Add support for regenerating the token
2 parents 4c2d88e + 3135cc7 commit 77c46a2

File tree

4 files changed

+42
-0
lines changed

4 files changed

+42
-0
lines changed

app/components/settings/api-tokens.hbs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,14 @@
113113

114114
<div local-class="actions">
115115
{{#unless token.isExpired}}
116+
<LinkTo
117+
@route="settings.tokens.new"
118+
@query={{hash from=token.id}}
119+
local-class="regenerate-button"
120+
data-test-regenerate-token-button
121+
>
122+
Regenerate
123+
</LinkTo>
116124
<button
117125
type="button"
118126
local-class="revoke-button"

app/components/settings/api-tokens.module.css

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,12 @@
8989
border-radius: var(--space-3xs);
9090
}
9191

92+
.regenerate-button {
93+
composes: yellow-button small from '../../styles/shared/buttons.module.css';
94+
flex-grow: 1;
95+
border-radius: var(--space-3xs);
96+
}
97+
9298
.new-token {
9399
margin-top: var(--space-s);
94100
}
@@ -190,11 +196,19 @@
190196
}
191197

192198
.actions {
199+
display: flex;
200+
flex-direction: column;
193201
grid-area: actions;
194202
align-self: start;
195203
margin: 0 0 0 var(--space-xs);
196204
}
197205

206+
.actions > * {
207+
flex-grow: 1;
208+
width: 100%;
209+
margin-top: var(--space-xs);
210+
}
211+
198212
.new-token {
199213
grid-area: details;
200214
margin-bottom: 0;

e2e/acceptance/api-token.spec.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,15 @@ test.describe('Acceptance | api-tokens', { tag: '@acceptance' }, () => {
8888
await expect(page.locator('[data-test-error]')).toHaveCount(0);
8989
});
9090

91+
test('API tokens can be regenerated', async ({ page }) => {
92+
await page.goto('/settings/tokens');
93+
await expect(page).toHaveURL('/settings/tokens');
94+
await expect(page.locator('[data-test-api-token]')).toHaveCount(3);
95+
96+
await page.click('[data-test-api-token="1"] [data-test-regenerate-token-button]');
97+
await expect(page).toHaveURL('/settings/tokens/new?from=1');
98+
});
99+
91100
test('failed API tokens revocation shows an error', async ({ page, mirage }) => {
92101
await mirage.addHook(server => {
93102
server.delete('/api/v1/me/tokens/:id', {}, 500);

tests/acceptance/api-token-test.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,17 @@ module('Acceptance | api-tokens', function (hooks) {
103103
assert.dom('[data-test-error]').doesNotExist();
104104
});
105105

106+
test('API tokens can be regenerated', async function (assert) {
107+
prepare(this);
108+
109+
await visit('/settings/tokens');
110+
assert.strictEqual(currentURL(), '/settings/tokens');
111+
assert.dom('[data-test-api-token]').exists({ count: 3 });
112+
113+
await click('[data-test-api-token="1"] [data-test-regenerate-token-button]');
114+
assert.strictEqual(currentURL(), '/settings/tokens/new?from=1');
115+
});
116+
106117
test('failed API tokens revocation shows an error', async function (assert) {
107118
prepare(this);
108119

0 commit comments

Comments
 (0)