diff --git a/apps/studio/components/interfaces/Database/Indexes/Indexes.tsx b/apps/studio/components/interfaces/Database/Indexes/Indexes.tsx
index 7c9dc433c26..86958d4846c 100644
--- a/apps/studio/components/interfaces/Database/Indexes/Indexes.tsx
+++ b/apps/studio/components/interfaces/Database/Indexes/Indexes.tsx
@@ -14,6 +14,9 @@ import {
TableHead,
TableHeader,
TableRow,
+ Tooltip,
+ TooltipContent,
+ TooltipTrigger,
} from 'ui'
import { Input } from 'ui-patterns/DataInputs/Input'
import { ConfirmationModal } from 'ui-patterns/Dialogs/ConfirmationModal'
@@ -264,13 +267,18 @@ export const Indexes = () => {
View definition
{!isSchemaLocked && (
- }
- onClick={() => setDeleteIndexId(index.name)}
- />
+
+
+ }
+ onClick={() => setDeleteIndexId(index.name)}
+ />
+
+ Delete index
+
)}
diff --git a/apps/studio/components/interfaces/Database/Policies/PolicyTableRow/PolicyRow.tsx b/apps/studio/components/interfaces/Database/Policies/PolicyTableRow/PolicyRow.tsx
index 6a2a3a40da3..f9b6338a511 100644
--- a/apps/studio/components/interfaces/Database/Policies/PolicyTableRow/PolicyRow.tsx
+++ b/apps/studio/components/interfaces/Database/Policies/PolicyTableRow/PolicyRow.tsx
@@ -121,14 +121,20 @@ export const PolicyRow = ({
{!isLocked && (
-
- }
- data-testid={`policy-${policy.name}-actions-button`}
- />
-
+
+
+
+ }
+ data-testid={`policy-${policy.name}-actions-button`}
+ aria-label={`${policy.name} actions`}
+ />
+
+
+ More options
+
onSelectEditPolicy(policy)}>
diff --git a/apps/studio/components/interfaces/Database/Roles/RoleRow.tsx b/apps/studio/components/interfaces/Database/Roles/RoleRow.tsx
index c1ce8ba4ebc..68f082b276c 100644
--- a/apps/studio/components/interfaces/Database/Roles/RoleRow.tsx
+++ b/apps/studio/components/interfaces/Database/Roles/RoleRow.tsx
@@ -17,6 +17,9 @@ import {
FormControl,
FormField,
Switch,
+ Tooltip,
+ TooltipContent,
+ TooltipTrigger,
} from 'ui'
import { FormItemLayout } from 'ui-patterns/form/FormItemLayout/FormItemLayout'
import * as z from 'zod'
@@ -154,14 +157,19 @@ export const RoleRow = ({ role, disabled = false, onSelectDelete }: RoleRowProps
{!disabled && (
-
- }
- aria-label={`${role.name} actions`}
- />
-
+
+
+
+ }
+ aria-label={`${role.name} actions`}
+ />
+
+
+ More options
+
-
- }
- aria-label={`Table ${x.name} actions`}
- />
-
+
+
+
+ }
+ aria-label={`Table ${x.name} actions`}
+ />
+
+
+ More options
+
{
).toBeVisible({ timeout: 50000 })
// Verify policy appears in the list
- await expect(page.getByRole('button', { name: policySelectName })).toBeVisible()
+ await expect(page.getByRole('button', { name: policySelectName, exact: true })).toBeVisible()
// Verify policy details
const policyRow = page.locator(`tr:has-text("${policySelectName}")`)
@@ -288,7 +288,7 @@ test.describe('RLS Policies', () => {
})
// Verify policy appears with correct details
- await expect(page.getByRole('button', { name: policyInsertName })).toBeVisible()
+ await expect(page.getByRole('button', { name: policyInsertName, exact: true })).toBeVisible()
const policyRow = page.locator(`tr:has-text("${policyInsertName}")`)
await expect(policyRow.locator('code').filter({ hasText: /^INSERT$/ })).toBeVisible()
await expect(policyRow.locator('code').filter({ hasText: /^authenticated$/ })).toBeVisible()
@@ -349,7 +349,7 @@ test.describe('RLS Policies', () => {
})
// Verify policy appears
- await expect(page.getByRole('button', { name: policyUpdateName })).toBeVisible()
+ await expect(page.getByRole('button', { name: policyUpdateName, exact: true })).toBeVisible()
const policyRow = page.locator(`tr:has-text("${policyUpdateName}")`)
await expect(policyRow.locator('code').filter({ hasText: /^UPDATE$/ })).toBeVisible()
})
@@ -401,7 +401,7 @@ test.describe('RLS Policies', () => {
})
// Verify policy appears
- await expect(page.getByRole('button', { name: policyDeleteName })).toBeVisible()
+ await expect(page.getByRole('button', { name: policyDeleteName, exact: true })).toBeVisible()
const policyRow = page.locator(`tr:has-text("${policyDeleteName}")`)
await expect(policyRow.locator('code').filter({ hasText: /^DELETE$/ })).toBeVisible()
})