Skip to content

Commit cd239e2

Browse files
committed
VersionList::Row: Only show the actions menu to the privileged user
1 parent 1dccf35 commit cd239e2

File tree

2 files changed

+21
-20
lines changed

2 files changed

+21
-20
lines changed

app/components/version-list/row.hbs

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -117,18 +117,20 @@
117117
{{/if}}
118118
</div>
119119

120-
<Dropdown local-class="dropdown" data-test-actions-menu as |dd|>
121-
<dd.Trigger @hideArrow={{true}} local-class="trigger" data-test-actions-toggle>
122-
{{svg-jar "ellipsis-circle" local-class="icon"}}
123-
<span class="sr-only">Actions</span>
124-
</dd.Trigger>
120+
<PrivilegedAction @userAuthorised={{this.isOwner}}>
121+
<Dropdown local-class="dropdown" data-test-actions-menu as |dd|>
122+
<dd.Trigger @hideArrow={{true}} local-class="trigger" data-test-actions-toggle>
123+
{{svg-jar "ellipsis-circle" local-class="icon"}}
124+
<span class="sr-only">Actions</span>
125+
</dd.Trigger>
125126

126-
<dd.Menu local-class="menu" as |menu|>
127-
<menu.Item>
128-
<PrivilegedAction @userAuthorised={{this.isOwner}}>
129-
<YankButton @version={{@version}} class="button-reset" local-class="menu-button" />
130-
</PrivilegedAction>
131-
</menu.Item>
132-
</dd.Menu>
133-
</Dropdown>
127+
<dd.Menu local-class="menu" as |menu|>
128+
<menu.Item>
129+
<PrivilegedAction @userAuthorised={{this.isOwner}}>
130+
<YankButton @version={{@version}} class="button-reset" local-class="menu-button" />
131+
</PrivilegedAction>
132+
</menu.Item>
133+
</dd.Menu>
134+
</Dropdown>
135+
</PrivilegedAction>
134136
</div>

e2e/acceptance/sudo.spec.ts

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@ test.describe('Acceptance | sudo', { tag: '@acceptance' }, () => {
3636
await expect(page.locator('[data-test-disable-admin-actions]')).toHaveCount(0);
3737
await expect(page.locator('[data-test-enable-admin-actions]')).toHaveCount(0);
3838

39+
// Assert that there's no dropdown menu toggle, disabled, enabled, or in any state.
40+
await expect(page.locator('[data-test-actions-toggle]')).toHaveCount(0);
3941
// Assert that there's no yank button, disabled, enabled, or in any state.
4042
await expect(page.locator('[data-test-version-yank-button="0.1.0"]')).toHaveCount(0);
4143
});
@@ -52,17 +54,14 @@ test.describe('Acceptance | sudo', { tag: '@acceptance' }, () => {
5254
await expect(page.locator('[data-test-disable-admin-actions]')).toHaveCount(0);
5355
await expect(page.locator('[data-test-enable-admin-actions]')).toBeVisible();
5456

55-
await page.locator('[data-test-actions-toggle]').click();
56-
5757
// Test that the fieldset is present and disabled.
58-
await expect(page.locator('[data-test-placeholder-fieldset]')).toBeVisible();
58+
await expect(page.locator('[data-test-placeholder-fieldset]').first()).toBeVisible();
5959
// NOTE: `toBeDisabled()` is not working as expected because the element is not a form control element.
6060
// Ref: https://github.com/microsoft/playwright/issues/13583#issuecomment-1101704985
61-
await expect(page.locator('[data-test-placeholder-fieldset]')).toHaveAttribute('disabled', 'disabled');
61+
await expect(page.locator('[data-test-placeholder-fieldset]').first()).toHaveAttribute('disabled', 'disabled');
6262

63-
// From the perspective of the actual button, it isn't disabled, even though
64-
// the fieldset effectively makes it unclickable.
65-
await expect(page.locator('[data-test-version-yank-button="0.1.0"]')).toBeVisible();
63+
await expect(page.locator('[data-test-actions-toggle]')).toBeDisabled();
64+
await expect(page.locator('[data-test-version-yank-button="0.1.0"]')).toBeHidden();
6665
});
6766

6867
test('admin user can enter sudo mode', async ({ page, msw }) => {

0 commit comments

Comments
 (0)