Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
78e3e5c
feat(#22399): add persona customization for service details page
RajdeepKushwaha5 Apr 15, 2026
d2f7a7f
fix: address review comments - add metadataServices permission, resto…
RajdeepKushwaha5 Apr 15, 2026
f1cb640
fix: sort Service enum alphabetically in generated types, remove unus…
RajdeepKushwaha5 Apr 15, 2026
4871f29
fix: address review feedback - replace antd components, add bulk edit…
RajdeepKushwaha5 Apr 15, 2026
b06f5f9
style: fix Prettier formatting for lint-playwright CI check
RajdeepKushwaha5 Apr 15, 2026
3e49bf2
fix: eliminate Playwright test coupling - merge test 3 into test 2, r…
RajdeepKushwaha5 Apr 15, 2026
6caeb83
fix: remove unused getOtherDetails initial-load effect, add missing t…
RajdeepKushwaha5 Apr 15, 2026
4a65c23
fix: clamp widget width, sync tab count with search, export class, ad…
RajdeepKushwaha5 Apr 15, 2026
9242ddf
fix: use toString() instead of unsafe as-cast for qs-parsed searchValue
RajdeepKushwaha5 Apr 15, 2026
9b976c2
fix: organize imports in Playwright test for lint-playwright CI
RajdeepKushwaha5 Apr 15, 2026
ec2b792
fix: update PersonaUtils test for new Service category
RajdeepKushwaha5 Apr 15, 2026
8a842ab
fix: remove dead getOtherDetails useEffect, add persona tab customiza…
RajdeepKushwaha5 Apr 16, 2026
2a7c427
fix: remove dead legacy fetch functions and unused imports from Servi…
RajdeepKushwaha5 Apr 16, 2026
0140b3d
fix: remove dead isServiceLoading state, fix import organization and …
RajdeepKushwaha5 Apr 16, 2026
2a63803
fix: resolve Playwright strict mode violations and pagination test fa…
RajdeepKushwaha5 Apr 16, 2026
efb51d0
Merge branch 'main' into feature/22399-service-persona-customization
RajdeepKushwaha5 Apr 16, 2026
d4fc4e4
fix(test): avoid module-load access of customizeMyDataPageClassBase i…
RajdeepKushwaha5 Apr 16, 2026
f813980
fix(ui): address review feedback on service persona customization
RajdeepKushwaha5 Apr 17, 2026
563a708
Merge remote-tracking branch 'upstream/main' into feature/22399-servi…
RajdeepKushwaha5 Apr 17, 2026
dd99e76
Merge branch 'main' into feature/22399-service-persona-customization
RajdeepKushwaha5 Apr 19, 2026
75f990a
Merge branch 'main' into feature/22399-service-persona-customization
RajdeepKushwaha5 Apr 19, 2026
a95ddc2
Merge branch 'main' into feature/22399-service-persona-customization
RajdeepKushwaha5 Apr 20, 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 @@ -37,7 +37,8 @@
"Directory",
"File",
"Spreadsheet",
"Worksheet"
"Worksheet",
"Service"
]
}
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,8 @@ export enum EntityTabs {
SUBDOMAINS = 'subdomains',
CONTRACT = 'contract',
ER_DIAGRAM = 'erDiagram',
FILES = 'files',
SPREADSHEETS = 'spreadsheets',
}

export const TABLE_DEFAULT_TABS = [
Expand Down Expand Up @@ -246,3 +248,13 @@ export const GLOSSARY_TERM_DEFAULT_TABS = [
EntityTabs.ACTIVITY_FEED,
EntityTabs.CUSTOM_PROPERTIES,
];

export const SERVICE_DEFAULT_TABS = [
EntityTabs.INSIGHTS,
EntityTabs.DETAILS,
EntityTabs.DATA_Model,
EntityTabs.FILES,
EntityTabs.SPREADSHEETS,
EntityTabs.AGENTS,
EntityTabs.CONNECTION,
];
Original file line number Diff line number Diff line change
Expand Up @@ -241,12 +241,34 @@ test.describe('Pagination Tests', PLAYWRIGHT_BASIC_TEST_TAG_OBJ, () => {
test('should test pagination on Service Databases page', async ({
page,
}) => {
await page.goto(`/service/databaseServices/${databaseFqn}/databases`);
await testPaginationNavigation(
page,
'/api/v1/databases',
'[data-testid="service-children-table"]'
);
const searchApiMatcher = (response: { url: () => string }) =>
response.url().includes('/api/v1/search/query');

const page1ResponsePromise = page.waitForResponse(searchApiMatcher);
await page.goto(`/service/databaseServices/${databaseFqn}/details`);
await page.locator('[data-testid="service-children-table"]').waitFor({
state: 'visible',
});
const page1Response = await page1ResponsePromise;
expect(page1Response.status()).toBe(200);
await waitForAllLoadersToDisappear(page);

await expect(page.getByTestId('previous')).toBeDisabled();
const nextButton = page.getByTestId('next');
await expect(nextButton).toBeEnabled();

const [page2Response] = await Promise.all([
page.waitForResponse(searchApiMatcher),
nextButton.click(),
]);
expect(page2Response.status()).toBe(200);
await waitForAllLoadersToDisappear(page);

await expect(page.getByTestId('previous')).toBeEnabled();
const paginationText = page.locator('[data-testid="page-indicator"]');
await expect(paginationText).toBeVisible();
const page2Content = await paginationText.textContent();
expect(page2Content).toMatch(/2\s*of\s*\d+/);

const responsePromise = page.waitForResponse((response) =>
response
Expand All @@ -262,21 +284,22 @@ test.describe('Pagination Tests', PLAYWRIGHT_BASIC_TEST_TAG_OBJ, () => {
state: 'detached',
});

const databaseResponsePromise = page.waitForResponse((response) =>
response.url().includes('/api/v1/databases')
);
await page.getByTestId('databases').click();
const databaseResponsePromise = page.waitForResponse(searchApiMatcher);
await page.getByTestId('details').click();
const response2 = await databaseResponsePromise;
expect(response2.status()).toBe(200);
await waitForAllLoadersToDisappear(page);
await page.getByTestId('table-container').waitFor({
state: 'visible',
});

const paginationText = page.locator('[data-testid="page-indicator"]');
await expect(paginationText).toBeVisible();
const paginationTextAfterSwitch = page.locator(
'[data-testid="page-indicator"]'
);
await expect(paginationTextAfterSwitch).toBeVisible();

const paginationTextContent = await paginationText.textContent();
const paginationTextContent =
await paginationTextAfterSwitch.textContent();
expect(paginationTextContent).toMatch(/1\s*of\s*\d+/);
});
test('should test Service Database Tables complete flow with search', async ({
Expand All @@ -286,8 +309,8 @@ test.describe('Pagination Tests', PLAYWRIGHT_BASIC_TEST_TAG_OBJ, () => {

await testCompletePaginationWithSearch({
page,
baseUrl: `/service/databaseServices/${databaseFqn}/databases`,
normalApiPattern: '/api/v1/databases',
baseUrl: `/service/databaseServices/${databaseFqn}/details`,
normalApiPattern: '/api/v1/search/query',
searchApiPattern: '/api/v1/search/query',
searchTestTerm: 'pw',
searchParamName: 'schema',
Expand Down Expand Up @@ -673,9 +696,9 @@ test.describe('Pagination Tests', PLAYWRIGHT_BASIC_TEST_TAG_OBJ, () => {
'[data-testid="data-models-table"]'
);
const responsePromise = page.waitForResponse((response) =>
response.url().includes('/api/v1/dashboard/datamodels')
response.url().includes('/api/v1/search/query')
);
await page.getByTestId('dashboards').click();
await page.getByTestId('details').click();
const response = await responsePromise;
expect(response.status()).toBe(200);
await waitForAllLoadersToDisappear(page);
Expand Down Expand Up @@ -736,14 +759,36 @@ test.describe('Pagination Tests', PLAYWRIGHT_BASIC_TEST_TAG_OBJ, () => {
});

test('should test Directories normal pagination', async ({ page }) => {
const searchApiMatcher = (response: { url: () => string }) =>
response.url().includes('/api/v1/search/query');

const page1ResponsePromise = page.waitForResponse(searchApiMatcher);
await page.goto(
`/service/driveServices/${serviceFqn}/directories?pageSize=15`
);
await testPaginationNavigation(
page,
'/api/v1/drives/directories',
'[data-testid="service-children-table"]'
`/service/driveServices/${serviceFqn}/details?pageSize=15`
);
await page.locator('[data-testid="service-children-table"]').waitFor({
state: 'visible',
});
const page1Response = await page1ResponsePromise;
expect(page1Response.status()).toBe(200);
await waitForAllLoadersToDisappear(page);

await expect(page.getByTestId('previous')).toBeDisabled();
const nextButton = page.getByTestId('next');
await expect(nextButton).toBeEnabled();

const [page2Response] = await Promise.all([
page.waitForResponse(searchApiMatcher),
nextButton.click(),
]);
expect(page2Response.status()).toBe(200);
await waitForAllLoadersToDisappear(page);

await expect(page.getByTestId('previous')).toBeEnabled();
const paginationText = page.locator('[data-testid="page-indicator"]');
await expect(paginationText).toBeVisible();
const page2Content = await paginationText.textContent();
expect(page2Content).toMatch(/2\s*of\s*\d+/);
});

test('should test Directories complete flow with search', async ({
Expand All @@ -753,8 +798,8 @@ test.describe('Pagination Tests', PLAYWRIGHT_BASIC_TEST_TAG_OBJ, () => {

await testCompletePaginationWithSearch({
page,
baseUrl: `/service/driveServices/${serviceFqn}/directories?showDeletedTables=false`,
normalApiPattern: '/api/v1/drives/directories',
baseUrl: `/service/driveServices/${serviceFqn}/details?showDeletedTables=false`,
normalApiPattern: '/api/v1/search/query',
searchApiPattern: '/api/v1/search/query',
searchTestTerm: 'pw',
searchParamName: 'schema',
Expand Down
Loading
Loading