Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
6f7d5bf
Fixes #33112: restore delete, hover affordance and expand in task com…
Vansh0310 Sep 11, 2026
df616de
Merge branch 'main' into fix/incident-comment-feed-33112
Vansh0310 Sep 11, 2026
76d6617
Make the comment delete action keyboard and screen-reader accessible
Vansh0310 Sep 11, 2026
ab1c83c
Merge remote-tracking branch 'myfork/fix/incident-comment-feed-33112'…
Vansh0310 Sep 11, 2026
08af180
Import the comment delete icon from the design-system layer
Vansh0310 Sep 11, 2026
78858a3
fix: address review feedback on task comment delete
Vansh0310 Sep 11, 2026
cda2de6
fix: address remaining review nits on task comment delete
Vansh0310 Sep 11, 2026
19f765c
fix: scope DeleteModal z-index bump and stop mounting/mutating unnece…
Vansh0310 Sep 11, 2026
ca3601d
style(ui): apply checkstyle formatting to task comment tests
Vansh0310 Sep 11, 2026
4fb9389
fix(playwright): sync suppressions baseline total in corpus.test.mjs
Vansh0310 Sep 15, 2026
7f0fb57
Merge branch 'main' into fix/incident-comment-feed-33112
Vansh0310 Sep 17, 2026
63c1de1
fix: correct comment-id lookup and de-mock TaskCommentCard tests
Vansh0310 Sep 17, 2026
c193da5
test(ui): restore focus-management coverage for comment delete
Vansh0310 Sep 17, 2026
18b8c9e
fix(ui): address review feedback on task comment delete
Vansh0310 Sep 17, 2026
91d8905
feat(ui): share task comment permissions/actions and add comment editing
Vansh0310 Sep 17, 2026
7212f04
test(playwright): make task comment assertions real and cover the inc…
Vansh0310 Sep 17, 2026
8a658d4
Merge remote-tracking branch 'origin/main' into fix/incident-comment-…
Vansh0310 Sep 17, 2026
4716c3c
test(playwright): assert the mention dropdown actually appears
Vansh0310 Sep 17, 2026
c406a00
test(playwright): drop positional locators and use the shared click h…
Vansh0310 Sep 17, 2026
77f30a7
refactor(ui): share one comment card between the activity feed and ta…
Vansh0310 Sep 17, 2026
4a85389
fix(ui): align task comment rows and inline the single-consumer comme…
Vansh0310 Sep 18, 2026
0606d8c
Merge remote-tracking branch 'origin/main' into fix/incident-comment-…
Vansh0310 Sep 18, 2026
3ba2691
fix(ui): surface task comment edit and delete failures
Vansh0310 Sep 18, 2026
0570292
test(ui): exercise the real comment card in the activity feed tests
Vansh0310 Sep 18, 2026
1fa5af0
fix(ui): guard task comment delete and edit against a double submit
Vansh0310 Sep 18, 2026
dfc407a
fix(ui): put the comment actions in the author row and simplify the c…
Vansh0310 Sep 18, 2026
fb83b95
refactor(ui): declare the feed action reveal once in CSS
Vansh0310 Sep 18, 2026
986e867
fix(ui): match the conversation card's action bar through antd's card…
Vansh0310 Sep 18, 2026
163620b
Merge remote-tracking branch 'origin/main' into fix/incident-comment-…
ShaileshParmar11 Sep 19, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -460,7 +460,7 @@
},
"playwright/e2e/Features/Tasks/TaskComments.spec.ts": {
"om-playwright/no-positional-locator": {
"count": 24
"count": 2
}
},
"playwright/e2e/Features/Tasks/TaskCreation.spec.ts": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@
import { sidebarClick } from '../../utils/sidebar';
import { waitForTaskResolveResponse } from '../../utils/task';
import { verifyTestCaseLastRunBanner } from '../../utils/testCases';
import { clickAndWaitFor } from '../../utils/waitHelpers';
import { test } from '../fixtures/pages';

let user1: UserClass;
Expand Down Expand Up @@ -611,7 +612,7 @@
const testCasePageUrl = `/test-case/${encodeURIComponent(
testCase.fullyQualifiedName
)}/test-case-results`;
actorPage = await browser.newPage();

Check warning on line 615 in openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/IncidentManager.spec.ts

View workflow job for this annotation

GitHub Actions / checkstyle

Prefer the `page` fixture (test.use({ storageState })) over browser.newPage() + manual login for single-user admin tests. For multi-user tests that need a second non-admin page, this warning is expected — no action needed
await user1.login(actorPage);
const testCaseResponse = actorPage.waitForResponse(
'/api/v1/dataQuality/testCases/name/*?fields=*'
Expand Down Expand Up @@ -741,7 +742,7 @@
*/
await test.step('Resolve incident', async () => {
const currentUrl = actorPage.url();
actorPage = await browser.newPage();

Check warning on line 745 in openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/IncidentManager.spec.ts

View workflow job for this annotation

GitHub Actions / checkstyle

Prefer the `page` fixture (test.use({ storageState })) over browser.newPage() + manual login for single-user admin tests. For multi-user tests that need a second non-admin page, this warning is expected — no action needed
await user3.login(actorPage);
const testCaseResponse = actorPage.waitForResponse(
'/api/v1/dataQuality/testCases/name/*?fields=*'
Expand Down Expand Up @@ -1021,6 +1022,74 @@
).toBeVisible();
});

/**
* Delete a comment from an incident's task tab
* @description #33112 was reported on the Incident Manager page, but the rest of
* the task-comment coverage exercises the activity-feed drawer only. This runs
* the same post-then-delete flow through TestCaseIncidentTab, which renders the
* task tab (and so CommentCard) rather than the drawer.
*/
test('Delete a task comment from the incident task tab', async ({ page }) => {
const testCase = table1.testCasesResponseData[0];
const testCaseName = testCase?.['name'] as string;

await visitProfilerTab(page, table1);
await waitForAllLoadersToDisappear(page);

await page.getByTestId(testCaseName).getByText(testCaseName).click();
await expect(page.getByTestId('entity-page-header')).toBeVisible();

await openIncidentTaskTab(page, true);

const taskTab = page.getByTestId('task-tab');
await expect(taskTab).toBeVisible();

// Post a comment to delete. Unique per run so the card can be matched by
// text rather than by position.
const message = `Incident tab comment ${Date.now()}`;
// The input is a trigger that opens the editor - it cannot be filled.
const commentInput = taskTab.getByTestId('comments-input-field');
await expect(commentInput).toBeVisible();
await commentInput.click();

const editor = taskTab.locator('[data-testid="editor-wrapper"] .ql-editor');
await expect(editor).toBeVisible({ timeout: 15_000 });
await editor.click();
await editor.type(message);

// Anchored so it cannot match the tab's own GET of the task with its comments.
const postResponse = await clickAndWaitFor(
page,
taskTab.getByTestId('send-button'),
/\/api\/v1\/tasks\/[^/]+\/comments$/
);
const postedTask = await postResponse.json();
const comments = postedTask.comments ?? [];
const commentId = comments[comments.length - 1]?.id as string;

const card = taskTab
.locator('[data-testid="feed-reply-card"]')
.filter({ hasText: message });
await expect(card).toBeVisible();

// The affordance is revealed on hover but stays mounted, so it is present
// for the keyboard too - hovering here mirrors what a mouse user does.
await card.hover();

await card.getByTestId('delete-message').click();
await clickAndWaitFor(
page,
page.getByTestId('save-button'),
new RegExp(`/comments/${commentId}$`)
);

await expect(
taskTab
.locator('[data-testid="feed-reply-card"]')
.filter({ hasText: message })
).toHaveCount(0);
});

/**
* Verify filters in Incident Manager page
* @description Tests Assignee, Status, Test Case, and Date filters and confirms list updates accordingly.
Expand Down
Loading
Loading