Skip to content

Commit d088325

Browse files
authored
crate/settings: Fix notification when adding team owner (#9801)
1 parent d50f6a8 commit d088325

File tree

3 files changed

+41
-2
lines changed

3 files changed

+41
-2
lines changed

app/controllers/crate/settings.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,12 @@ export default class CrateSettingsController extends Controller {
1414

1515
try {
1616
await this.crate.inviteOwner(username);
17-
this.notifications.success(`An invite has been sent to ${username}`);
17+
if (username.includes(':')) {
18+
this.notifications.success(`Team ${username} was added as a crate owner`);
19+
this.crate.owner_team.reload();
20+
} else {
21+
this.notifications.success(`An invite has been sent to ${username}`);
22+
}
1823
} catch (error) {
1924
let detail = error.errors?.[0]?.detail;
2025
if (detail && !detail.startsWith('{')) {

e2e/acceptance/settings/add-owner.spec.ts

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { test, expect } from '@/e2e/helper';
1+
import { expect, test } from '@/e2e/helper';
22

33
test.describe('Acceptance | Settings | Add Owner', { tag: '@acceptance' }, () => {
44
test.beforeEach(async ({ mirage }) => {
@@ -52,4 +52,21 @@ test.describe('Acceptance | Settings | Add Owner', { tag: '@acceptance' }, () =>
5252
await expect(page.locator('[data-test-owners] [data-test-owner-team]')).toHaveCount(2);
5353
await expect(page.locator('[data-test-owners] [data-test-owner-user]')).toHaveCount(2);
5454
});
55+
56+
test('add a team owner', async ({ page, mirage }) => {
57+
await mirage.addHook(server => {
58+
server.create('user', { name: 'iain8' });
59+
server.create('team', { org: 'rust-lang', name: 'crates-io' });
60+
});
61+
62+
await page.goto('/crates/nanomsg/settings');
63+
await page.fill('input[name="username"]', 'github:rust-lang:crates-io');
64+
await page.click('[data-test-save-button]');
65+
66+
await expect(page.locator('[data-test-notification-message="success"]')).toHaveText(
67+
'Team github:rust-lang:crates-io was added as a crate owner',
68+
);
69+
await expect(page.locator('[data-test-owners] [data-test-owner-team]')).toHaveCount(3);
70+
await expect(page.locator('[data-test-owners] [data-test-owner-user]')).toHaveCount(2);
71+
});
5572
});

tests/acceptance/settings/add-owner-test.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,4 +61,21 @@ module('Acceptance | Settings | Add Owner', function (hooks) {
6161
assert.dom('[data-test-owners] [data-test-owner-team]').exists({ count: 2 });
6262
assert.dom('[data-test-owners] [data-test-owner-user]').exists({ count: 2 });
6363
});
64+
65+
test('add a team owner', async function (assert) {
66+
prepare(this);
67+
68+
this.server.create('user', { name: 'iain8' });
69+
this.server.create('team', { org: 'rust-lang', name: 'crates-io' });
70+
71+
await visit('/crates/nanomsg/settings');
72+
await fillIn('input[name="username"]', 'github:rust-lang:crates-io');
73+
await click('[data-test-save-button]');
74+
75+
assert
76+
.dom('[data-test-notification-message="success"]')
77+
.hasText('Team github:rust-lang:crates-io was added as a crate owner');
78+
assert.dom('[data-test-owners] [data-test-owner-team]').exists({ count: 3 });
79+
assert.dom('[data-test-owners] [data-test-owner-user]').exists({ count: 2 });
80+
});
6481
});

0 commit comments

Comments
 (0)