From 7f46f091570ac3df53b8b7ac1c7c009c79195136 Mon Sep 17 00:00:00 2001 From: Chirag Madlani <12962843+chirag-madlani@users.noreply.github.com> Date: Fri, 11 Sep 2026 19:34:57 +0530 Subject: [PATCH 1/2] refactor(playwright): sign in through a fixture, not the form MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Migrates every spec off `UserClass.login()` and promotes `openmetadata-playwright/prefer-role-page-fixture` to `error` with no suppressions. 275 call sites across 83 files become `signIn()`. Both paths funnel through the same `completeSignIn()`, so the rewrite changes how the session was established and nothing else — which the type checker confirms: a receiver that was not a `UserClass` would not compile, and the playwright tsc count is unchanged. Nine specs keep `login()` because the sign-in flow is what they test — `Pages/Login.spec.ts`, `Features/OnlineUsers.spec.ts`, `Flow/Tour.spec.ts` and the `Features/AppMode` specs. Each call carries a justified disable naming its reason, rather than a blanket entry in a baseline file. `performUserLogin` is no longer flagged: it signs in through the API and owns its page, context and teardown, so it is a sanctioned path. The rule targets *authenticating as* a bespoke user, not *creating* one — `new UserClass()` for an owner, reviewer or assignee is ordinary test data and is untouched. `eslint-suppressions.json` is byte-identical to main. The rule was written to be enforceable only once the corpus was clean, which is what this change makes true. Validated against a live server: ~320 tests across the migrated specs, the role fixtures, and the eight storage states, with no failure attributable to the migration. Co-Authored-By: Claude Opus 5 (1M context) --- .claude/rules/frontend-playwright.md | 5 +- .../eslint-rules/openmetadata-playwright.mjs | 100 ++++++++++++++++++ .../openmetadata-playwright.test.mjs | 82 +++++++++++++- .../src/main/resources/ui/eslint.config.mjs | 1 + .../PLAYWRIGHT_DEVELOPER_HANDBOOK.md | 17 ++- .../e2e/Features/ActivityFeed.spec.ts | 12 +-- .../e2e/Features/ActivityStream.spec.ts | 2 +- .../AppModeAiPersonaLandsAtRoot.spec.ts | 1 + .../AppMode/AppModeAuthGating.spec.ts | 2 + .../AppMode/AppModeCrossDevice.spec.ts | 2 + .../AppMode/AppModePrecedence.spec.ts | 5 + .../AppModePreferenceRoundTrip.spec.ts | 1 + .../e2e/Features/AppMode/fixtures.ts | 2 + .../BulkEditImportPermissions.spec.ts | 2 +- .../e2e/Features/CuratedAssets.spec.ts | 2 +- .../e2e/Features/CustomizeDetailPage.spec.ts | 4 +- .../CustomizeNavigationNewItems.spec.ts | 4 +- .../DataProductPersonaCustomization.spec.ts | 4 +- .../DataQualityPermissions.spec.ts | 24 ++--- .../TestCaseImportExportBasic.spec.ts | 2 +- .../TestCaseImportExportE2eFlow.spec.ts | 2 +- .../TestCaseIncidentPermissions.spec.ts | 10 +- .../TestCaseResultPermissions.spec.ts | 12 +-- .../TestDefinitionPermissions.spec.ts | 6 +- .../Features/DescriptionSuggestion.spec.ts | 28 ++--- .../DomainDropdownIsolation.spec.ts | 4 +- .../DomainIncidentIsolation.spec.ts | 4 +- .../DomainLineageIsolation.spec.ts | 6 +- .../DomainListingIsolation.spec.ts | 6 +- .../DomainSearchIsolation.spec.ts | 6 +- .../DomainTaskIsolation.spec.ts | 6 +- .../GlossaryPersonaCustomization.spec.ts | 4 +- .../Glossary/GlossaryWorkflow.spec.ts | 6 +- .../e2e/Features/IncidentManager.spec.ts | 4 +- .../DomainDataProductsWidgets.spec.ts | 2 +- .../FollowingWidget.spec.ts | 2 +- .../MetricBulkImportExportEdit.spec.ts | 10 +- .../e2e/Features/MultipleRename.spec.ts | 8 +- .../e2e/Features/NavigationBlocker.spec.ts | 2 +- .../e2e/Features/OnlineUsers.spec.ts | 2 + .../e2e/Features/OntologyImportRdf.spec.ts | 2 +- .../e2e/Features/OntologyStudioRdf.spec.ts | 14 +-- .../e2e/Features/Permission.spec.ts | 2 +- .../DataProductPermissions.spec.ts | 6 +- .../Permissions/DomainPermissions.spec.ts | 8 +- .../Permissions/EntityPermissions.spec.ts | 16 +-- .../Permissions/GlossaryPermissions.spec.ts | 6 +- .../ServiceEntityPermissions.spec.ts | 2 +- .../Features/PersonaAIContextRules.spec.ts | 2 +- .../PersonaSessionPersistence.spec.ts | 2 +- .../e2e/Features/SearchExport.spec.ts | 2 +- .../Features/SettingsNavigationPage.spec.ts | 2 +- .../e2e/Features/TagsSuggestion.spec.ts | 28 ++--- .../ui/playwright/e2e/Features/Tasks.spec.ts | 16 +-- .../e2e/Features/Tasks/ActivityFeed.spec.ts | 22 ++-- .../Tasks/TaskAssigneeManagement.spec.ts | 2 +- .../e2e/Features/Tasks/TaskComments.spec.ts | 18 ++-- .../e2e/Features/Tasks/TaskCreation.spec.ts | 8 +- .../e2e/Features/Tasks/TaskNavigation.spec.ts | 18 ++-- .../Features/Tasks/TaskPermissions.spec.ts | 14 +-- .../e2e/Features/Tasks/TaskResolution.spec.ts | 12 +-- .../e2e/Features/Tasks/TeamActivity.spec.ts | 20 ++-- .../e2e/Features/TeamSubscriptions.spec.ts | 8 +- .../e2e/Flow/ConditionalPermissions.spec.ts | 4 +- .../e2e/Flow/CustomizeLandingPage.spec.ts | 2 +- .../e2e/Flow/CustomizeWidgets.spec.ts | 2 +- .../ui/playwright/e2e/Flow/Metric.spec.ts | 2 +- .../e2e/Flow/NotificationAlerts.spec.ts | 6 +- .../e2e/Flow/ObservabilityAlerts.spec.ts | 4 +- .../playwright/e2e/Flow/PersonaFlow.spec.ts | 2 +- .../ui/playwright/e2e/Flow/SearchRBAC.spec.ts | 20 ++-- .../Flow/ServiceCreationPermissions.spec.ts | 8 +- .../ui/playwright/e2e/Flow/Tour.spec.ts | 1 + .../e2e/Pages/DataContracts.spec.ts | 2 +- .../Pages/DataMarketplacePermissions.spec.ts | 2 +- .../playwright/e2e/Pages/DataProducts.spec.ts | 2 +- .../e2e/Pages/DescriptionVisibility.spec.ts | 4 +- .../ui/playwright/e2e/Pages/Domains.spec.ts | 2 +- .../ui/playwright/e2e/Pages/Entity.spec.ts | 4 +- .../e2e/Pages/EntityDataConsumer.spec.ts | 2 +- .../e2e/Pages/EntityDataSteward.spec.ts | 2 +- .../e2e/Pages/EntityHeaderBreadcrumb.spec.ts | 2 +- .../e2e/Pages/ExplorePageRightPanel.spec.ts | 4 +- .../ui/playwright/e2e/Pages/Glossary.spec.ts | 4 +- .../e2e/Pages/GlossaryImportExport.spec.ts | 2 +- .../e2e/Pages/LearningResources.spec.ts | 2 +- .../ui/playwright/e2e/Pages/Login.spec.ts | 3 + .../Pages/ODCSImportExportPermissions.spec.ts | 4 +- .../Pages/ProfilerConfigurationPage.spec.ts | 4 +- .../e2e/Pages/SearchSettings.spec.ts | 2 +- .../e2e/Pages/ServiceEntity.spec.ts | 2 +- .../ui/playwright/e2e/Pages/Tag.spec.ts | 8 +- .../ui/playwright/e2e/Pages/Teams.spec.ts | 8 +- .../playwright/e2e/Pages/UserDetails.spec.ts | 4 +- .../ui/playwright/e2e/Pages/Users.spec.ts | 10 +- .../VersionPages/EntityVersionPages.spec.ts | 2 +- .../ServiceEntityVersionPage.spec.ts | 2 +- .../ui/playwright/utils/ContextCenterUtil.ts | 2 +- .../playwright/utils/entityPermissionUtils.ts | 2 +- 99 files changed, 491 insertions(+), 281 deletions(-) diff --git a/.claude/rules/frontend-playwright.md b/.claude/rules/frontend-playwright.md index c0943b2ba172..82a012bcaf7d 100644 --- a/.claude/rules/frontend-playwright.md +++ b/.claude/rules/frontend-playwright.md @@ -35,8 +35,9 @@ Highest-value constraints, all machine-enforced: `freshUserPage` (one per test) — both create *and delete* the account, so there is no `beforeAll`/`afterAll` bookkeeping to get wrong. Never call `UserClass.login()`: it drives the sign-in form (nine UI interactions). `UserClass.signIn()` establishes the same session with one - POST and runs the identical post-sign-in steps; only a spec testing the form itself should drive - `login()`. Creating a user as *test data* is unrelated and unaffected. + POST and runs the identical post-sign-in steps. The rule is at **error** with no suppressions — + only the nine specs that are testing the sign-in flow itself carry a justified disable. Creating a + user as *test data* is fine; signing one in through the form is what the rule flags. - **`beforeAll` is not a per-worker hook.** Under `fullyParallel` it runs once per *group* of the file's tests dispatched to a worker, with `afterAll` in between — so it can run twice in one worker. Rebuild describe-scope state at the top of the hook; never `.push()` into it. diff --git a/openmetadata-ui/src/main/resources/ui/eslint-rules/openmetadata-playwright.mjs b/openmetadata-ui/src/main/resources/ui/eslint-rules/openmetadata-playwright.mjs index abe4c743b76c..c967296cee7a 100644 --- a/openmetadata-ui/src/main/resources/ui/eslint-rules/openmetadata-playwright.mjs +++ b/openmetadata-ui/src/main/resources/ui/eslint-rules/openmetadata-playwright.mjs @@ -107,8 +107,108 @@ const requireAggregationWaitHelper = { }, }; +/** + * `UserClass.login()` drives the sign-in form: navigate to /signin, wait for it, + * fill, Tab, fill, click, await the response, await the redirect, dismiss the + * getting-started dialog, collapse the sidebar. Nine UI interactions on the + * critical path of a test that is not about signing in, each of them a step that + * can time out. + * + * `UserClass.signIn()` establishes the same session with one POST, and both + * funnel through the same `completeSignIn`, so the two differ in how the session + * was established and nothing else. Every sanctioned path — the seeded role + * pages, the `isolatedUser` fixtures, and `performUserLogin` — goes through it. + * + * So `login()` in a spec means one of two things: the spec is testing the form + * itself, which is legitimate and wants a justified disable, or it is a call + * that has not been migrated yet. + * + * Scope, stated plainly: this flags *authenticating as* a bespoke user, not + * *creating* one. `new UserClass()` for an owner, reviewer or assignee is + * ordinary test data and is untouched — flagging it would bury the signal. + * The implementation modules that must log in (auth.setup, the fixtures, the + * login helpers) are exempt by path. + * + * It runs at `warn`: there are ~290 existing call sites, and a rule whose + * baseline is most of the corpus teaches nothing. Fix them as you touch them. + */ +const ROLE_FIXTURES = [ + 'adminPage', + 'dataConsumerPage', + 'dataStewardPage', + 'ownerPage', + 'editDescriptionPage', + 'editTagsPage', + 'editGlossaryTermPage', + 'viewOnlyPage', +]; + +/** Modules that build the storage states, or are the login path itself. */ +const LOGIN_IMPLEMENTATION_PATHS = [ + 'e2e/auth.setup.ts', + 'support/fixtures/userPages.ts', + 'support/fixtures/isolatedUser.ts', + 'e2e/fixtures/pages.ts', + 'utils/user.ts', + 'utils/apiSignIn.ts', + 'utils/admin.ts', + 'support/user/', +]; + +const preferRolePageFixture = { + meta: { + docs: { + description: + 'Prefer the shared role page fixtures over creating and logging in a bespoke user', + }, + messages: { + preferRolePageFixture: + '`login()` drives the sign-in form — nine UI interactions before this test has done anything. Use `signIn()` instead: same session, same post-sign-in steps, one POST. Better still, take a fixture and let it own the account: one of {{fixtures}} from support/fixtures/userPages (or e2e/fixtures/pages) for a seeded role, or `isolatedUserPage` / `freshUserPage` from support/fixtures/isolatedUser when the test needs its own account — those create and delete it for you, so there is no beforeAll/afterAll bookkeeping to get wrong. If this spec is testing the sign-in form itself, keep `login()` and disable this rule with a reason.', + }, + schema: [], + type: 'suggestion', + }, + create(context) { + const filename = context.filename.replace(/\\/g, '/'); + + if (LOGIN_IMPLEMENTATION_PATHS.some((path) => filename.includes(path))) { + return {}; + } + + const report = (node) => + context.report({ + node, + messageId: 'preferRolePageFixture', + data: { fixtures: ROLE_FIXTURES.join(', ') }, + }); + + return { + CallExpression(node) { + const { callee } = node; + + // `.login(, ...)` — the UserClass login, which takes the + // page first and may carry trailing options. Requiring a first argument + // that is not an object literal keeps an unrelated `login({ ... })` on + // some other client, which takes options rather than a page, out of it. + const isUserLogin = + callee.type === 'MemberExpression' && + !callee.computed && + callee.property.type === 'Identifier' && + callee.property.name === 'login' && + node.arguments.length > 0 && + node.arguments[0].type !== 'ObjectExpression'; + + if (isUserLogin) { + report(node); + } + }, + }; + }, +}; + export default { rules: { 'require-aggregation-wait-helper': requireAggregationWaitHelper, + 'prefer-role-page-fixture': preferRolePageFixture, }, }; diff --git a/openmetadata-ui/src/main/resources/ui/eslint-rules/openmetadata-playwright.test.mjs b/openmetadata-ui/src/main/resources/ui/eslint-rules/openmetadata-playwright.test.mjs index 5acb45ee70e2..bc0345fa7e06 100644 --- a/openmetadata-ui/src/main/resources/ui/eslint-rules/openmetadata-playwright.test.mjs +++ b/openmetadata-ui/src/main/resources/ui/eslint-rules/openmetadata-playwright.test.mjs @@ -10,9 +10,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +import { RuleTester } from 'eslint'; import assert from 'node:assert/strict'; import test, { describe, it } from 'node:test'; -import { RuleTester } from 'eslint'; import tseslint from 'typescript-eslint'; RuleTester.describe = describe; @@ -25,6 +25,10 @@ test('exports the aggregation wait helper rule', () => { assert.ok(playwrightPlugin.rules['require-aggregation-wait-helper']); }); +test('exports the role page fixture rule', () => { + assert.ok(playwrightPlugin.rules['prefer-role-page-fixture']); +}); + const ruleTester = new RuleTester({ languageOptions: { ecmaVersion: 'latest', @@ -131,3 +135,79 @@ ruleTester.run( ], } ); + +ruleTester.run( + 'prefer-role-page-fixture', + playwrightPlugin.rules['prefer-role-page-fixture'], + { + valid: [ + { + // Taking a role page is the point of the rule. + code: "test('x', async ({ dataConsumerPage }) => { await dataConsumerPage.goto('/'); });", + filename: 'playwright/e2e/Flow/Example.spec.ts', + }, + { + // Creating a user as *test data* — an owner, a reviewer, an assignee — + // has nothing to do with authenticating as one. + code: 'const owner = new UserClass(); await owner.create(apiContext);', + filename: 'playwright/e2e/Flow/Example.spec.ts', + }, + { + // auth.setup.ts is what mints the storage states the fixtures reuse. + code: 'await dataConsumer.login(dataConsumerPage);', + filename: 'playwright/e2e/auth.setup.ts', + }, + { + // The fixture modules and the login helper itself are the implementation. + code: 'await user.login(page);', + filename: 'playwright/utils/user.ts', + }, + { + // performUserLogin signs in through the API and owns the page, the + // context and their teardown — it is a sanctioned path, not a + // hand-rolled login. + code: 'const { page, afterAction } = await performUserLogin(browser, user);', + filename: 'playwright/e2e/Flow/Example.spec.ts', + }, + { + // The migrated shape. + code: 'await user.signIn(page);', + filename: 'playwright/e2e/Flow/Example.spec.ts', + }, + { + // The isolated-user fixtures are the sanctioned bespoke-account path, + // so they are the one place that legitimately drives the sign-in form. + code: 'await user.login(loginPage);', + filename: 'playwright/support/fixtures/isolatedUser.ts', + }, + { + // Taking the sanctioned bespoke-account fixture. + code: "test('x', async ({ isolatedUserPage }) => { await isolatedUserPage.goto('/'); });", + filename: 'playwright/e2e/Flow/Example.spec.ts', + }, + { + // A method that merely shares the name on an unrelated object. + code: "await ssoProvider.login({ user: 'x' });", + filename: 'playwright/e2e/Flow/Example.spec.ts', + }, + ], + invalid: [ + { + code: 'await regularUser.login(page);', + errors: [{ messageId: 'preferRolePageFixture' }], + filename: 'playwright/e2e/Pages/Example.spec.ts', + }, + { + code: 'await user.login(await browser.newPage());', + errors: [{ messageId: 'preferRolePageFixture' }], + filename: 'playwright/e2e/Pages/Example.spec.ts', + }, + { + // Trailing options do not make it any less a bespoke login. + code: 'await user.login(page, undefined, undefined, { skipTour: true });', + errors: [{ messageId: 'preferRolePageFixture' }], + filename: 'playwright/e2e/Flow/Example.spec.ts', + }, + ], + } +); diff --git a/openmetadata-ui/src/main/resources/ui/eslint.config.mjs b/openmetadata-ui/src/main/resources/ui/eslint.config.mjs index c3fbaeb7cc6f..61f4173cb825 100644 --- a/openmetadata-ui/src/main/resources/ui/eslint.config.mjs +++ b/openmetadata-ui/src/main/resources/ui/eslint.config.mjs @@ -635,6 +635,7 @@ export default [ // rather than error while the remaining 27 call sites are migrated to // playwright/utils/searchAggregation.ts. 'openmetadata-playwright/require-aggregation-wait-helper': 'warn', + 'openmetadata-playwright/prefer-role-page-fixture': 'error', // Playwright rules — promoted to error behind the suppressions ratchet // (see eslint-suppressions.json): existing violations are snapshotted, diff --git a/openmetadata-ui/src/main/resources/ui/playwright/PLAYWRIGHT_DEVELOPER_HANDBOOK.md b/openmetadata-ui/src/main/resources/ui/playwright/PLAYWRIGHT_DEVELOPER_HANDBOOK.md index 505e83b7ca23..fae85e5e0154 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/PLAYWRIGHT_DEVELOPER_HANDBOOK.md +++ b/openmetadata-ui/src/main/resources/ui/playwright/PLAYWRIGHT_DEVELOPER_HANDBOOK.md @@ -322,10 +322,18 @@ Two things to know if you touch this path: `e2e/Features/TokenStorage.spec.ts` guards both, and the third case in it exists specifically to fail if the fallback is what is under test. -Use `signIn()` in new specs. `login()` remains for the specs that are testing the sign-in form -itself — `Pages/Login.spec.ts`, `Features/OnlineUsers.spec.ts`, `Flow/Tour.spec.ts` and the -`Features/AppMode` specs. Creating a user as test data is unrelated and unaffected: `new -UserClass()` for an owner, reviewer or assignee stays exactly as it is. +`openmetadata-playwright/prefer-role-page-fixture` runs at **error** with no suppressions: the +whole corpus was migrated, so a `login()` in a spec is either new code that should be using +`signIn()` or a fixture, or a spec that is genuinely testing the sign-in form. It flags +*authenticating as* a bespoke user, not *creating* one — `new UserClass()` for an owner, reviewer +or assignee is ordinary test data and is untouched, as is `performUserLogin`, which signs in +through the API and owns its page, context and teardown. + +Nine files legitimately keep `login()` because the sign-in flow is what they are testing — +`Pages/Login.spec.ts`, `Features/OnlineUsers.spec.ts`, `Flow/Tour.spec.ts` and the `Features/AppMode` +specs. Each call there carries a justified disable +(`// eslint-disable-next-line openmetadata-playwright/prefer-role-page-fixture -- `) naming the +reason. If you find yourself adding a tenth, check first that `signIn()` really cannot do the job. --- @@ -907,6 +915,7 @@ not hand-edit it, run `yarn generate:playwright-rules` instead. | `om-playwright/no-blanket-test-slow` | error | Disallow test.slow() at file or describe scope | | `om-playwright/no-positional-locator` | error | Disallow positional locators (.first(), .last(), .nth()) | | `om-playwright/require-assertion-per-test` | error | Flag tests that only perform page interactions and verify nothing | +| `openmetadata-playwright/prefer-role-page-fixture` | error | Prefer the shared role page fixtures over creating and logging in a bespoke user | | `openmetadata-playwright/require-aggregation-wait-helper` | warn | Require waitForAggregation instead of waiting on search/aggregate directly | | `playwright/missing-playwright-await` | error | Identify false positives when async Playwright APIs are not properly awaited. | | `playwright/no-element-handle` | error | The use of ElementHandle is discouraged, use Locator instead | diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/ActivityFeed.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/ActivityFeed.spec.ts index da35a3672612..a1559206ed3f 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/ActivityFeed.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/ActivityFeed.spec.ts @@ -157,7 +157,7 @@ test.describe('FeedWidget on landing page', () => { // Set up widget in a separate page context const adminPage = await browser.newPage({ storageState: undefined }); - await adminUser.login(adminPage); + await adminUser.signIn(adminPage); try { // Set persona as default @@ -214,7 +214,7 @@ test.describe('FeedWidget on landing page', () => { }); test.beforeEach(async ({ page }) => { - await adminUser.login(page); + await adminUser.signIn(page); await redirectToHomePage(page); await waitForAllLoadersToDisappear(page); }); @@ -502,13 +502,13 @@ test.describe('Mention notifications in Notification Box', () => { }>({ adminPage: async ({ browser }, use) => { const page = await browser.newPage({ storageState: undefined }); - await adminUser.login(page); + await adminUser.signIn(page); await use(page); await page.close(); }, user1Page: async ({ browser }, use) => { const page = await browser.newPage({ storageState: undefined }); - await user1.login(page); + await user1.signIn(page); await use(page); await page.close(); }, @@ -830,7 +830,7 @@ test.describe('Mentions: Chinese character encoding in activity feed', () => { }); test.beforeEach(async ({ page }) => { - await adminUser.login(page); + await adminUser.signIn(page); await redirectToHomePage(page); }); @@ -967,7 +967,7 @@ test.describe('ActivityFeed: activity + conversation merge (regression #25894)', const test = base.extend<{ adminPage: Page }>({ adminPage: async ({ browser }, use) => { const page = await browser.newPage({ storageState: undefined }); - await adminUser.login(page); + await adminUser.signIn(page); await use(page); await page.close(); }, diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/ActivityStream.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/ActivityStream.spec.ts index d402d713a919..5f6c1254dbc8 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/ActivityStream.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/ActivityStream.spec.ts @@ -64,7 +64,7 @@ test.describe('Activity Stream on Entity Pages', () => { }); test.beforeEach(async ({ page }) => { - await adminUser.login(page); + await adminUser.signIn(page); }); test('activity feed tab shows activity events for entity', async ({ diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/AppMode/AppModeAiPersonaLandsAtRoot.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/AppMode/AppModeAiPersonaLandsAtRoot.spec.ts index 436441ddcb31..d350baf74a0a 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/AppMode/AppModeAiPersonaLandsAtRoot.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/AppMode/AppModeAiPersonaLandsAtRoot.spec.ts @@ -163,6 +163,7 @@ test.describe('AppMode — landing URL', { tag: ['@Platform'] }, () => { } }); + // eslint-disable-next-line openmetadata-playwright/prefer-role-page-fixture -- app-mode precedence is asserted across real sign-in sessions, so the session must be established the way a user establishes it await user.login(page); await waitForAllLoadersToDisappear(page); diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/AppMode/AppModeAuthGating.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/AppMode/AppModeAuthGating.spec.ts index c7c5732891aa..8bda51f87163 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/AppMode/AppModeAuthGating.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/AppMode/AppModeAuthGating.spec.ts @@ -47,6 +47,7 @@ test.beforeAll( const contextA = await browser.newContext(); const pageA = await contextA.newPage(); + // eslint-disable-next-line openmetadata-playwright/prefer-role-page-fixture -- app-mode precedence is asserted across real sign-in sessions, so the session must be established the way a user establishes it await userA.login(pageA); const resultA = await getApiContext(pageA); userAApiContext = resultA.apiContext; @@ -57,6 +58,7 @@ test.beforeAll( const contextB = await browser.newContext(); const pageB = await contextB.newPage(); + // eslint-disable-next-line openmetadata-playwright/prefer-role-page-fixture -- app-mode precedence is asserted across real sign-in sessions, so the session must be established the way a user establishes it await userB.login(pageB); const resultB = await getApiContext(pageB); userBApiContext = resultB.apiContext; diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/AppMode/AppModeCrossDevice.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/AppMode/AppModeCrossDevice.spec.ts index f1adf1427418..edffa3e86388 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/AppMode/AppModeCrossDevice.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/AppMode/AppModeCrossDevice.spec.ts @@ -55,6 +55,7 @@ const waitForAppMode = async (page: Page, expected: AppModeExpectation) => { }; const openSwitcherAsAi = async (page: Page, user: UserClass) => { + // eslint-disable-next-line openmetadata-playwright/prefer-role-page-fixture -- app-mode precedence is asserted across real sign-in sessions, so the session must be established the way a user establishes it await user.login(page); await switchToAiModeViaProfileToggle(page); await expect(page.getByTestId('ask-sidebar')).toBeVisible(); @@ -108,6 +109,7 @@ test.describe('AppMode — cross-device sync', { tag: ['@Platform'] }, () => { // B has taken no action of its own — a fresh login must pick up the // server-side preference A just wrote. + // eslint-disable-next-line openmetadata-playwright/prefer-role-page-fixture -- app-mode precedence is asserted across real sign-in sessions, so the session must be established the way a user establishes it await user.login(pageB); await waitForAllLoadersToDisappear(pageB); diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/AppMode/AppModePrecedence.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/AppMode/AppModePrecedence.spec.ts index 70718d549947..15c1175838a9 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/AppMode/AppModePrecedence.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/AppMode/AppModePrecedence.spec.ts @@ -196,6 +196,7 @@ test.describe('AppMode — unified precedence', { tag: ['@Platform'] }, () => { const context = await browser.newContext(); const page = await context.newPage(); try { + // eslint-disable-next-line openmetadata-playwright/prefer-role-page-fixture -- app-mode precedence is asserted across real sign-in sessions, so the session must be established the way a user establishes it await user.login(page); await waitForAllLoadersToDisappear(page); // 'default' is the runtime name for Classic. @@ -228,6 +229,7 @@ test.describe('AppMode — unified precedence', { tag: ['@Platform'] }, () => { browser, desired: 'classic', action: async (page) => { + // eslint-disable-next-line openmetadata-playwright/prefer-role-page-fixture -- app-mode precedence is asserted across real sign-in sessions, so the session must be established the way a user establishes it await user.login(page); await waitForAllLoadersToDisappear(page); await waitForAppMode(page, 'ai'); @@ -252,6 +254,7 @@ test.describe('AppMode — unified precedence', { tag: ['@Platform'] }, () => { browser, desired: 'ai', action: async (page) => { + // eslint-disable-next-line openmetadata-playwright/prefer-role-page-fixture -- app-mode precedence is asserted across real sign-in sessions, so the session must be established the way a user establishes it await user.login(page); await waitForAllLoadersToDisappear(page); await waitForAppMode(page, 'ai'); @@ -290,6 +293,7 @@ test.describe('AppMode — unified precedence', { tag: ['@Platform'] }, () => { browser, desired: null, action: async (page) => { + // eslint-disable-next-line openmetadata-playwright/prefer-role-page-fixture -- app-mode precedence is asserted across real sign-in sessions, so the session must be established the way a user establishes it await user.login(page); await waitForAllLoadersToDisappear(page); await waitForAppMode(page, 'default'); @@ -327,6 +331,7 @@ test.describe('AppMode — unified precedence', { tag: ['@Platform'] }, () => { try { // Log in and manually switch to AI in this tab. Persona still says // Classic; the manual switch overrides for this tab. + // eslint-disable-next-line openmetadata-playwright/prefer-role-page-fixture -- app-mode precedence is asserted across real sign-in sessions, so the session must be established the way a user establishes it await user.login(page); await waitForAllLoadersToDisappear(page); await switchToAiModeViaProfileToggle(page); diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/AppMode/AppModePreferenceRoundTrip.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/AppMode/AppModePreferenceRoundTrip.spec.ts index 064ac9106afa..b5f45b13a965 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/AppMode/AppModePreferenceRoundTrip.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/AppMode/AppModePreferenceRoundTrip.spec.ts @@ -44,6 +44,7 @@ const isAppModePreferenceDelete = (response: Response) => * "remember" toggle, which lives on the AI-sidebar AppModeSwitcher. */ const openSwitcherAsAi = async (page: Page, user: UserClass) => { + // eslint-disable-next-line openmetadata-playwright/prefer-role-page-fixture -- app-mode precedence is asserted across real sign-in sessions, so the session must be established the way a user establishes it await user.login(page); await switchToAiModeViaProfileToggle(page); await expect(page.getByTestId('ask-sidebar')).toBeVisible(); diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/AppMode/fixtures.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/AppMode/fixtures.ts index 35b9e95a16de..2a0266e07de1 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/AppMode/fixtures.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/AppMode/fixtures.ts @@ -110,6 +110,7 @@ export const test = base.extend({ const context = await browser.newContext(); const page = await context.newPage(); try { + // eslint-disable-next-line openmetadata-playwright/prefer-role-page-fixture -- app-mode precedence is asserted across real sign-in sessions, so the session must be established the way a user establishes it await isolatedAdmin.login(page); await use(page); } finally { @@ -129,6 +130,7 @@ export const test = base.extend({ const context = await browser.newContext(); const page = await context.newPage(); try { + // eslint-disable-next-line openmetadata-playwright/prefer-role-page-fixture -- app-mode precedence is asserted across real sign-in sessions, so the session must be established the way a user establishes it await dataConsumer.login(page); await use(page); } finally { diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/BulkEditImportPermissions.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/BulkEditImportPermissions.spec.ts index 57d3ced581a3..1b74eba22885 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/BulkEditImportPermissions.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/BulkEditImportPermissions.spec.ts @@ -62,7 +62,7 @@ const table = new TableClass(); const test = base.extend<{ bulkEditorPage: Page }>({ bulkEditorPage: async ({ browser }, use) => { const page = await browser.newPage(); - await editorUser.login(page); + await editorUser.signIn(page); await use(page); await page.close(); }, diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/CuratedAssets.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/CuratedAssets.spec.ts index 001185587bc5..37c5832de8b6 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/CuratedAssets.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/CuratedAssets.spec.ts @@ -65,7 +65,7 @@ const entityTypeToTestEntity: Record = { const test = base.extend<{ page: Page }>({ page: async ({ browser }, use) => { const page = await browser.newPage(); - await adminUser.login(page); + await adminUser.signIn(page); await use(page); await page.close(); }, diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/CustomizeDetailPage.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/CustomizeDetailPage.spec.ts index 5c844cbc4369..8f2a1ccc4110 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/CustomizeDetailPage.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/CustomizeDetailPage.spec.ts @@ -57,13 +57,13 @@ const test = base.extend<{ }>({ adminPage: async ({ browser }, use) => { const adminPage = await browser.newPage(); - await adminUser.login(adminPage); + await adminUser.signIn(adminPage); await use(adminPage); await adminPage.close(); }, userPage: async ({ browser }, use) => { const page = await browser.newPage(); - await user.login(page); + await user.signIn(page); await use(page); await page.close(); }, diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/CustomizeNavigationNewItems.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/CustomizeNavigationNewItems.spec.ts index d50b6aad1ce4..288043a4fb73 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/CustomizeNavigationNewItems.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/CustomizeNavigationNewItems.spec.ts @@ -38,13 +38,13 @@ const test = base.extend<{ }>({ adminPage: async ({ browser }, use) => { const page = await browser.newPage(); - await adminUser.login(page); + await adminUser.signIn(page); await use(page); await page.close(); }, userPage: async ({ browser }, use) => { const page = await browser.newPage(); - await user.login(page); + await user.signIn(page); await use(page); await page.close(); }, diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/DataProductPersonaCustomization.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/DataProductPersonaCustomization.spec.ts index a26ef2ebe9a9..268a27a0633a 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/DataProductPersonaCustomization.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/DataProductPersonaCustomization.spec.ts @@ -41,13 +41,13 @@ const test = base.extend<{ }>({ adminPage: async ({ browser }, use) => { const adminPage = await browser.newPage(); - await adminUser.login(adminPage); + await adminUser.signIn(adminPage); await use(adminPage); await adminPage.close(); }, userPage: async ({ browser }, use) => { const page = await browser.newPage(); - await user.login(page); + await user.signIn(page); await use(page); }, }); diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/DataQuality/DataQualityPermissions.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/DataQuality/DataQualityPermissions.spec.ts index 1fdc6075aab6..7755aa5fa554 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/DataQuality/DataQualityPermissions.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/DataQuality/DataQualityPermissions.spec.ts @@ -81,73 +81,73 @@ const test = base.extend<{ }, createPage: async ({ browser }, use) => { const page = await browser.newPage(); - await createUser.login(page); + await createUser.signIn(page); await use(page); await page.close(); }, deletePage: async ({ browser }, use) => { const page = await browser.newPage(); - await deleteUser.login(page); + await deleteUser.signIn(page); await use(page); await page.close(); }, suitePage: async ({ browser }, use) => { const page = await browser.newPage(); - await suiteUser.login(page); + await suiteUser.signIn(page); await use(page); await page.close(); }, viewBasicPage: async ({ browser }, use) => { const page = await browser.newPage(); - await viewBasicUser.login(page); + await viewBasicUser.signIn(page); await use(page); await page.close(); }, consumerPage: async ({ browser }, use) => { const page = await browser.newPage(); - await dataConsumerUser.login(page); + await dataConsumerUser.signIn(page); await use(page); await page.close(); }, stewardPage: async ({ browser }, use) => { const page = await browser.newPage(); - await dataStewardUser.login(page); + await dataStewardUser.signIn(page); await use(page); await page.close(); }, tableCreateTestsPage: async ({ browser }, use) => { const page = await browser.newPage(); - await tableCreateTestsUser.login(page); + await tableCreateTestsUser.signIn(page); await use(page); await page.close(); }, editPage: async ({ browser }, use) => { const page = await browser.newPage(); - await editTestCaseUser.login(page); + await editTestCaseUser.signIn(page); await use(page); await page.close(); }, tableEditPage: async ({ browser }, use) => { const page = await browser.newPage(); - await tableEditTestsUser.login(page); + await tableEditTestsUser.signIn(page); await use(page); await page.close(); }, editTestsPage: async ({ browser }, use) => { const page = await browser.newPage(); - await editTestsOnTcUser.login(page); + await editTestsOnTcUser.signIn(page); await use(page); await page.close(); }, viewAllPage: async ({ browser }, use) => { const page = await browser.newPage(); - await viewAllTcUser.login(page); + await viewAllTcUser.signIn(page); await use(page); await page.close(); }, suiteEditOnlyPage: async ({ browser }, use) => { const page = await browser.newPage(); - await suiteEditOnlyUser.login(page); + await suiteEditOnlyUser.signIn(page); await use(page); await page.close(); }, diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/DataQuality/TestCaseImportExportBasic.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/DataQuality/TestCaseImportExportBasic.spec.ts index e2e7fdb5aae1..d5ca5c17b8d2 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/DataQuality/TestCaseImportExportBasic.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/DataQuality/TestCaseImportExportBasic.spec.ts @@ -75,7 +75,7 @@ const test = base.extend<{ }>({ testCaseEditPage: async ({ browser }, use) => { const page = await browser.newPage(); - await testCaseEditUser.login(page); + await testCaseEditUser.signIn(page); await use(page); await page.close(); }, diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/DataQuality/TestCaseImportExportE2eFlow.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/DataQuality/TestCaseImportExportE2eFlow.spec.ts index fcd0d92ac5d1..67e0ab489189 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/DataQuality/TestCaseImportExportE2eFlow.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/DataQuality/TestCaseImportExportE2eFlow.spec.ts @@ -52,7 +52,7 @@ const test = base.extend<{ }>({ testCaseEditPage: async ({ browser }, use) => { const page = await browser.newPage(); - await testCaseEditUser.login(page); + await testCaseEditUser.signIn(page); await use(page); await page.close(); }, diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/DataQuality/TestCaseIncidentPermissions.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/DataQuality/TestCaseIncidentPermissions.spec.ts index d52eb4ff4422..1e91462fa275 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/DataQuality/TestCaseIncidentPermissions.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/DataQuality/TestCaseIncidentPermissions.spec.ts @@ -72,31 +72,31 @@ const test = base.extend<{ }, viewIncidentsPage: async ({ browser }, use) => { const page = await browser.newPage(); - await viewIncidentsUser.login(page); + await viewIncidentsUser.signIn(page); await use(page); await page.close(); }, editIncidentsPage: async ({ browser }, use) => { const page = await browser.newPage(); - await editIncidentsUser.login(page); + await editIncidentsUser.signIn(page); await use(page); await page.close(); }, tableEditIncidentsPage: async ({ browser }, use) => { const page = await browser.newPage(); - await tableEditIncidentsUser.login(page); + await tableEditIncidentsUser.signIn(page); await use(page); await page.close(); }, tableViewIncidentsPage: async ({ browser }, use) => { const page = await browser.newPage(); - await tableViewIncidentsUser.login(page); + await tableViewIncidentsUser.signIn(page); await use(page); await page.close(); }, consumerLikePage: async ({ browser }, use) => { const page = await browser.newPage(); - await consumerLikeUser.login(page); + await consumerLikeUser.signIn(page); await use(page); await page.close(); }, diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/DataQuality/TestCaseResultPermissions.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/DataQuality/TestCaseResultPermissions.spec.ts index 40be64b073bb..be3db738c655 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/DataQuality/TestCaseResultPermissions.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/DataQuality/TestCaseResultPermissions.spec.ts @@ -61,37 +61,37 @@ const test = base.extend<{ }, viewResultsPage: async ({ browser }, use) => { const page = await browser.newPage(); - await viewResultsUser.login(page); + await viewResultsUser.signIn(page); await use(page); await page.close(); }, editResultsPage: async ({ browser }, use) => { const page = await browser.newPage(); - await editResultsUser.login(page); + await editResultsUser.signIn(page); await use(page); await page.close(); }, tableEditResultsPage: async ({ browser }, use) => { const page = await browser.newPage(); - await tableEditResultsUser.login(page); + await tableEditResultsUser.signIn(page); await use(page); await page.close(); }, deleteResultsPage: async ({ browser }, use) => { const page = await browser.newPage(); - await deleteResultsUser.login(page); + await deleteResultsUser.signIn(page); await use(page); await page.close(); }, partialDeleteTcPage: async ({ browser }, use) => { const page = await browser.newPage(); - await partialDeleteTcUser.login(page); + await partialDeleteTcUser.signIn(page); await use(page); await page.close(); }, partialDeleteTablePage: async ({ browser }, use) => { const page = await browser.newPage(); - await partialDeleteTableUser.login(page); + await partialDeleteTableUser.signIn(page); await use(page); await page.close(); }, diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/DataQuality/TestDefinitionPermissions.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/DataQuality/TestDefinitionPermissions.spec.ts index d74544331abe..45c50e1db3c1 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/DataQuality/TestDefinitionPermissions.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/DataQuality/TestDefinitionPermissions.spec.ts @@ -95,19 +95,19 @@ const test = base.extend<{ }, dataConsumerPage: async ({ browser }, use) => { const page = await browser.newPage(); - await dataConsumerUser.login(page); + await dataConsumerUser.signIn(page); await use(page); await page.close(); }, dataStewardPage: async ({ browser }, use) => { const page = await browser.newPage(); - await dataStewardUser.login(page); + await dataStewardUser.signIn(page); await use(page); await page.close(); }, viewOnlyPage: async ({ browser }, use) => { const page = await browser.newPage(); - await viewOnlyUser.login(page); + await viewOnlyUser.signIn(page); await use(page); await page.close(); }, diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/DescriptionSuggestion.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/DescriptionSuggestion.spec.ts index 226165414ac8..898dc3e7fe84 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/DescriptionSuggestion.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/DescriptionSuggestion.spec.ts @@ -154,7 +154,7 @@ test.describe.serial( const requestedDescription = 'Requested description added by the assignee'; - await requesterUser.login(page); + await requesterUser.signIn(page); await openTaskForm( page, buildTaskRoute({ @@ -172,7 +172,7 @@ test.describe.serial( const reviewerPage = await browser.newPage(); try { - await reviewerUser.login(reviewerPage); + await reviewerUser.signIn(reviewerPage); await table.visitEntityPage(reviewerPage); await openEntityTasksTab(reviewerPage); await openTaskDetails(reviewerPage, task); @@ -207,7 +207,7 @@ test.describe.serial( const editedSuggestion = 'Edited suggestion accepted for the nested table column'; - await requesterUser.login(page); + await requesterUser.signIn(page); await openTaskForm( page, buildTaskRoute({ @@ -228,7 +228,7 @@ test.describe.serial( const reviewerPage = await browser.newPage(); try { - await reviewerUser.login(reviewerPage); + await reviewerUser.signIn(reviewerPage); await table.visitEntityPage(reviewerPage); await openEntityTasksTab(reviewerPage); await openTaskDetails(reviewerPage, task); @@ -271,7 +271,7 @@ test.describe.serial( const addedDescription = 'Assignee-added description for the topic schema field'; - await requesterUser.login(page); + await requesterUser.signIn(page); await openTaskForm( page, buildTaskRoute({ @@ -291,7 +291,7 @@ test.describe.serial( const reviewerPage = await browser.newPage(); try { - await reviewerUser.login(reviewerPage); + await reviewerUser.signIn(reviewerPage); await topic.visitEntityPage(reviewerPage); await openEntityTasksTab(reviewerPage); await openTaskDetails(reviewerPage, task); @@ -330,7 +330,7 @@ test.describe.serial( const addedDescription = 'Assignee-added description for the api request schema field'; - await requesterUser.login(page); + await requesterUser.signIn(page); await openTaskForm( page, buildTaskRoute({ @@ -350,7 +350,7 @@ test.describe.serial( const reviewerPage = await browser.newPage(); try { - await reviewerUser.login(reviewerPage); + await reviewerUser.signIn(reviewerPage); await apiEndpoint.visitEntityPage(reviewerPage); await openEntityTasksTab(reviewerPage); await openTaskDetails(reviewerPage, task); @@ -390,7 +390,7 @@ test.describe.serial( const editedSuggestion = 'Edited suggestion accepted for the api response schema field'; - await requesterUser.login(page); + await requesterUser.signIn(page); await openTaskForm( page, buildTaskRoute({ @@ -411,7 +411,7 @@ test.describe.serial( const reviewerPage = await browser.newPage(); try { - await reviewerUser.login(reviewerPage); + await reviewerUser.signIn(reviewerPage); await apiEndpoint.visitEntityPage(reviewerPage); await openEntityTasksTab(reviewerPage); await openTaskDetails(reviewerPage, task); @@ -449,7 +449,7 @@ test.describe.serial( const requestFieldPath = 'default.club_name'; const originalDescription = ''; - await requesterUser.login(page); + await requesterUser.signIn(page); await openTaskForm( page, buildTaskRoute({ @@ -469,7 +469,7 @@ test.describe.serial( const reviewerPage = await browser.newPage(); try { - await reviewerUser.login(reviewerPage); + await reviewerUser.signIn(reviewerPage); await apiEndpoint.visitEntityPage(reviewerPage); await openEntityTasksTab(reviewerPage); await openTaskDetails(reviewerPage, task); @@ -525,7 +525,7 @@ test.describe.serial( container.entityResponseData.dataModel?.columns?.[0].description ); - await requesterUser.login(page); + await requesterUser.signIn(page); await openTaskForm( page, buildTaskRoute({ @@ -546,7 +546,7 @@ test.describe.serial( const reviewerPage = await browser.newPage(); try { - await reviewerUser.login(reviewerPage); + await reviewerUser.signIn(reviewerPage); await container.visitEntityPage(reviewerPage); await openEntityTasksTab(reviewerPage); await openTaskDetails(reviewerPage, task); diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/DomainIsolation/DomainDropdownIsolation.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/DomainIsolation/DomainDropdownIsolation.spec.ts index ca11fa0390b2..2663779ce49c 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/DomainIsolation/DomainDropdownIsolation.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/DomainIsolation/DomainDropdownIsolation.spec.ts @@ -31,7 +31,7 @@ const test = base.extend<{ adminPage: Page; restrictedUserPage: Page }>({ adminPage: async ({ browser }, use) => { const page = await browser.newPage(); try { - await adminUser.login(page); + await adminUser.signIn(page); await use(page); } finally { await page.close(); @@ -40,7 +40,7 @@ const test = base.extend<{ adminPage: Page; restrictedUserPage: Page }>({ restrictedUserPage: async ({ browser }, use) => { const page = await browser.newPage(); try { - await restrictedUser.login(page); + await restrictedUser.signIn(page); await use(page); } finally { await page.close(); diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/DomainIsolation/DomainIncidentIsolation.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/DomainIsolation/DomainIncidentIsolation.spec.ts index 091367ac8fe0..c394bc15198d 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/DomainIsolation/DomainIncidentIsolation.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/DomainIsolation/DomainIncidentIsolation.spec.ts @@ -54,7 +54,7 @@ const test = base.extend<{ adminPage: Page; noDomainPage: Page }>({ adminPage: async ({ browser }, use) => { const page = await browser.newPage(); try { - await adminUser.login(page); + await adminUser.signIn(page); await use(page); } finally { await page.close(); @@ -63,7 +63,7 @@ const test = base.extend<{ adminPage: Page; noDomainPage: Page }>({ noDomainPage: async ({ browser }, use) => { const page = await browser.newPage(); try { - await noDomainUser.login(page); + await noDomainUser.signIn(page); await use(page); } finally { await page.close(); diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/DomainIsolation/DomainLineageIsolation.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/DomainIsolation/DomainLineageIsolation.spec.ts index 05d42359c3d7..29b2d15487fd 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/DomainIsolation/DomainLineageIsolation.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/DomainIsolation/DomainLineageIsolation.spec.ts @@ -46,7 +46,7 @@ const test = base.extend<{ adminPage: async ({ browser }, use) => { const page = await browser.newPage(); try { - await adminUser.login(page); + await adminUser.signIn(page); await use(page); } finally { await page.close(); @@ -55,7 +55,7 @@ const test = base.extend<{ userAPage: async ({ browser }, use) => { const page = await browser.newPage(); try { - await userA.login(page); + await userA.signIn(page); await use(page); } finally { await page.close(); @@ -64,7 +64,7 @@ const test = base.extend<{ userBPage: async ({ browser }, use) => { const page = await browser.newPage(); try { - await userB.login(page); + await userB.signIn(page); await use(page); } finally { await page.close(); diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/DomainIsolation/DomainListingIsolation.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/DomainIsolation/DomainListingIsolation.spec.ts index f03717a3a468..4ba353326f60 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/DomainIsolation/DomainListingIsolation.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/DomainIsolation/DomainListingIsolation.spec.ts @@ -43,7 +43,7 @@ const test = base.extend<{ adminPage: async ({ browser }, use) => { const page = await browser.newPage(); try { - await adminUser.login(page); + await adminUser.signIn(page); await use(page); } finally { await page.close(); @@ -52,7 +52,7 @@ const test = base.extend<{ userAPage: async ({ browser }, use) => { const page = await browser.newPage(); try { - await userA.login(page); + await userA.signIn(page); await use(page); } finally { await page.close(); @@ -61,7 +61,7 @@ const test = base.extend<{ userBPage: async ({ browser }, use) => { const page = await browser.newPage(); try { - await userB.login(page); + await userB.signIn(page); await use(page); } finally { await page.close(); diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/DomainIsolation/DomainSearchIsolation.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/DomainIsolation/DomainSearchIsolation.spec.ts index d412f0bdcbf6..c9ee1535ffcd 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/DomainIsolation/DomainSearchIsolation.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/DomainIsolation/DomainSearchIsolation.spec.ts @@ -44,7 +44,7 @@ const test = base.extend<{ adminPage: async ({ browser }, use) => { const page = await browser.newPage(); try { - await adminUser.login(page); + await adminUser.signIn(page); await use(page); } finally { await page.close(); @@ -53,7 +53,7 @@ const test = base.extend<{ userAPage: async ({ browser }, use) => { const page = await browser.newPage(); try { - await userA.login(page); + await userA.signIn(page); await use(page); } finally { await page.close(); @@ -62,7 +62,7 @@ const test = base.extend<{ userBPage: async ({ browser }, use) => { const page = await browser.newPage(); try { - await userB.login(page); + await userB.signIn(page); await use(page); } finally { await page.close(); diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/DomainIsolation/DomainTaskIsolation.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/DomainIsolation/DomainTaskIsolation.spec.ts index 0007322e07b9..053d7acdecc6 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/DomainIsolation/DomainTaskIsolation.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/DomainIsolation/DomainTaskIsolation.spec.ts @@ -42,7 +42,7 @@ const test = base.extend<{ adminPage: async ({ browser }, use) => { const page = await browser.newPage(); try { - await adminUser.login(page); + await adminUser.signIn(page); await use(page); } finally { await page.close(); @@ -51,7 +51,7 @@ const test = base.extend<{ userAPage: async ({ browser }, use) => { const page = await browser.newPage(); try { - await userA.login(page); + await userA.signIn(page); await use(page); } finally { await page.close(); @@ -60,7 +60,7 @@ const test = base.extend<{ userBPage: async ({ browser }, use) => { const page = await browser.newPage(); try { - await userB.login(page); + await userB.signIn(page); await use(page); } finally { await page.close(); diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Glossary/GlossaryPersonaCustomization.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Glossary/GlossaryPersonaCustomization.spec.ts index ebf373e9c7c1..84682ab8c38a 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Glossary/GlossaryPersonaCustomization.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Glossary/GlossaryPersonaCustomization.spec.ts @@ -46,13 +46,13 @@ const test = base.extend<{ }>({ adminPage: async ({ browser }, use) => { const adminPage = await browser.newPage(); - await adminUser.login(adminPage); + await adminUser.signIn(adminPage); await use(adminPage); await adminPage.close(); }, userPage: async ({ browser }, use) => { const page = await browser.newPage(); - await user.login(page); + await user.signIn(page); await use(page); await page.close(); }, diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Glossary/GlossaryWorkflow.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Glossary/GlossaryWorkflow.spec.ts index a74fb70d2cb0..b14f90bd800b 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Glossary/GlossaryWorkflow.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Glossary/GlossaryWorkflow.spec.ts @@ -42,19 +42,19 @@ const test = base.extend<{ }>({ page: async ({ browser }, use) => { const adminPage = await browser.newPage(); - await adminUser.login(adminPage); + await adminUser.signIn(adminPage); await use(adminPage); await adminPage.close(); }, reviewer1Page: async ({ browser }, use) => { const page = await browser.newPage(); - await reviewer1.login(page); + await reviewer1.signIn(page); await use(page); await page.close(); }, reviewer2Page: async ({ browser }, use) => { const page = await browser.newPage(); - await reviewer2.login(page); + await reviewer2.signIn(page); await use(page); await page.close(); }, diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/IncidentManager.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/IncidentManager.spec.ts index 67940e900ab8..d86567339272 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/IncidentManager.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/IncidentManager.spec.ts @@ -612,7 +612,7 @@ test.describe('Incident Manager', PLAYWRIGHT_INGESTION_TAG_OBJ, () => { testCase.fullyQualifiedName )}/test-case-results`; actorPage = await browser.newPage(); - await user1.login(actorPage); + await user1.signIn(actorPage); const testCaseResponse = actorPage.waitForResponse( '/api/v1/dataQuality/testCases/name/*?fields=*' ); @@ -742,7 +742,7 @@ test.describe('Incident Manager', PLAYWRIGHT_INGESTION_TAG_OBJ, () => { await test.step('Resolve incident', async () => { const currentUrl = actorPage.url(); actorPage = await browser.newPage(); - await user3.login(actorPage); + await user3.signIn(actorPage); const testCaseResponse = actorPage.waitForResponse( '/api/v1/dataQuality/testCases/name/*?fields=*' ); diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/LandingPageWidgets/DomainDataProductsWidgets.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/LandingPageWidgets/DomainDataProductsWidgets.spec.ts index b2d2d949aa7a..8b5abc5f1c2b 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/LandingPageWidgets/DomainDataProductsWidgets.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/LandingPageWidgets/DomainDataProductsWidgets.spec.ts @@ -64,7 +64,7 @@ const topic = new TopicClass(); const test = base.extend<{ page: Page }>({ page: async ({ browser }, use) => { const page = await browser.newPage(); - await adminUser.login(page); + await adminUser.signIn(page); await use(page); await page.close(); }, diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/LandingPageWidgets/FollowingWidget.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/LandingPageWidgets/FollowingWidget.spec.ts index 2f88ff58a1ed..cdbd87292c52 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/LandingPageWidgets/FollowingWidget.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/LandingPageWidgets/FollowingWidget.spec.ts @@ -50,7 +50,7 @@ const adminUser = new UserClass(); const test = base.extend<{ adminPage: Page }>({ adminPage: async ({ browser }, use) => { const adminPage = await browser.newPage(); - await adminUser.login(adminPage); + await adminUser.signIn(adminPage); await use(adminPage); await adminPage.close(); }, diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/MetricBulkImportExportEdit.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/MetricBulkImportExportEdit.spec.ts index 7d3650093df3..8ca5436ac896 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/MetricBulkImportExportEdit.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/MetricBulkImportExportEdit.spec.ts @@ -1035,7 +1035,7 @@ test.describe( browser, }) => { const page = await browser.newPage(); - await metricExportUser.login(page); + await metricExportUser.signIn(page); try { await redirectToHomePage(page); await waitForMetricsPage(page); @@ -1097,7 +1097,7 @@ test.describe( }) => { test.slow(); const page = await browser.newPage(); - await metricExportUser.login(page); + await metricExportUser.signIn(page); try { const importedMetricName = `${fixtures.prefix}_imported`; fixtures.metrics.push({ @@ -1167,7 +1167,7 @@ test.describe( }) => { test.slow(); const page = await browser.newPage(); - await metricExportUser.login(page); + await metricExportUser.signIn(page); try { const existingMetricName = fixtures.metrics[1].name; const updatedDisplayName = `${fixtures.prefix} Import Updated`; @@ -1437,7 +1437,7 @@ test.describe( browser, }) => { const metricEditorPage = await browser.newPage(); - await metricEditorUser.login(metricEditorPage); + await metricEditorUser.signIn(metricEditorPage); try { await redirectToHomePage(metricEditorPage); @@ -1476,7 +1476,7 @@ test.describe( }) => { test.slow(); const customViewOnlyPage = await browser.newPage(); - await viewOnlyUser.login(customViewOnlyPage); + await viewOnlyUser.signIn(customViewOnlyPage); try { for (const restrictedPage of [ diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/MultipleRename.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/MultipleRename.spec.ts index cdb522b677f9..071970e8d39b 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/MultipleRename.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/MultipleRename.spec.ts @@ -116,7 +116,7 @@ test.describe('Multiple Rename Tests', PLAYWRIGHT_BASIC_TEST_TAG_OBJ, () => { let currentName = glossary.data.name; try { - await adminUser.login(page); + await adminUser.signIn(page); await redirectToHomePage(page); // Navigate to glossary using displayName @@ -176,7 +176,7 @@ test.describe('Multiple Rename Tests', PLAYWRIGHT_BASIC_TEST_TAG_OBJ, () => { const page = await browser.newPage(); try { - await adminUser.login(page); + await adminUser.signIn(page); await redirectToHomePage(page); // Navigate to glossary term using displayName @@ -228,7 +228,7 @@ test.describe('Multiple Rename Tests', PLAYWRIGHT_BASIC_TEST_TAG_OBJ, () => { let currentName = classification.data.name; try { - await adminUser.login(page); + await adminUser.signIn(page); await redirectToHomePage(page); // Navigate to classification using side panel and displayName @@ -297,7 +297,7 @@ test.describe('Multiple Rename Tests', PLAYWRIGHT_BASIC_TEST_TAG_OBJ, () => { const page = await browser.newPage(); try { - await adminUser.login(page); + await adminUser.signIn(page); await redirectToHomePage(page); // Navigate to tag using side panel and displayName diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/NavigationBlocker.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/NavigationBlocker.spec.ts index 2c6bc6386080..9389718ce8d7 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/NavigationBlocker.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/NavigationBlocker.spec.ts @@ -29,7 +29,7 @@ const persona = new PersonaClass(); const test = base.extend<{ adminPage: Page; userPage: Page }>({ adminPage: async ({ browser }, use) => { const adminPage = await browser.newPage(); - await adminUser.login(adminPage); + await adminUser.signIn(adminPage); await use(adminPage); await adminPage.close(); }, diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/OnlineUsers.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/OnlineUsers.spec.ts index ae04810f9a4a..74d8465b3d50 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/OnlineUsers.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/OnlineUsers.spec.ts @@ -104,6 +104,7 @@ test.describe('Online Users Feature', PLAYWRIGHT_BASIC_TEST_TAG_OBJ, () => { }) => { const userPage = await browser.newPage(); try { + // eslint-disable-next-line openmetadata-playwright/prefer-role-page-fixture -- online-presence is registered by the sign-in flow itself, so the session must be established the way a user establishes it await testUser.login(userPage); await redirectToHomePage(userPage); await sidebarClick(userPage, SidebarItem.EXPLORE); @@ -235,6 +236,7 @@ test.describe('Online Users Feature', PLAYWRIGHT_BASIC_TEST_TAG_OBJ, () => { test.slow(); // Mark this test as slow since it involves multiple logins and navigation await test.step('Visit Explore Page as New User', async () => { const userPage = await browser.newPage(); + // eslint-disable-next-line openmetadata-playwright/prefer-role-page-fixture -- online-presence is registered by the sign-in flow itself, so the session must be established the way a user establishes it await testUser.login(userPage); await redirectToHomePage(userPage); diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/OntologyImportRdf.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/OntologyImportRdf.spec.ts index b08ed77e2710..df3ab5ab77db 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/OntologyImportRdf.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/OntologyImportRdf.spec.ts @@ -139,7 +139,7 @@ test.describe('Ontology RDF Import', { tag: ['@ontology-rdf'] }, () => { test('hides Import Ontology from a user without glossary edit permission', async ({ page, }) => { - await consumerUser.login(page); + await consumerUser.signIn(page); await redirectToHomePage(page); // A read-only data consumer can open the glossary (visitPage asserts the diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/OntologyStudioRdf.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/OntologyStudioRdf.spec.ts index 97813942e75b..a510264bc52d 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/OntologyStudioRdf.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/OntologyStudioRdf.spec.ts @@ -88,7 +88,7 @@ test.describe('Ontology Studio — RDF exports (Turtle and RDF/XML) @ontology-rd browser, }) => { const page = await browser.newPage(); - await adminUser.login(page); + await adminUser.signIn(page); // Mock RDF status so the export options are rendered. await page.route('**/api/v1/rdf/status**', (route) => @@ -109,7 +109,7 @@ test.describe('Ontology Studio — RDF exports (Turtle and RDF/XML) @ontology-rd browser, }) => { const page = await browser.newPage(); - await adminUser.login(page); + await adminUser.signIn(page); await page.route('**/api/v1/rdf/status**', (route) => route.fulfill({ json: { enabled: true } }) @@ -127,7 +127,7 @@ test.describe('Ontology Studio — RDF exports (Turtle and RDF/XML) @ontology-rd test('Turtle export triggers a .ttl file download', async ({ browser }) => { const page = await browser.newPage(); - await adminUser.login(page); + await adminUser.signIn(page); await page.route('**/api/v1/rdf/status**', (route) => route.fulfill({ json: { enabled: true } }) @@ -161,7 +161,7 @@ test.describe('Ontology Studio — RDF exports (Turtle and RDF/XML) @ontology-rd test('RDF/XML export triggers a .rdf file download', async ({ browser }) => { const page = await browser.newPage(); - await adminUser.login(page); + await adminUser.signIn(page); await page.route('**/api/v1/rdf/status**', (route) => route.fulfill({ json: { enabled: true } }) @@ -196,7 +196,7 @@ test.describe('Ontology Studio — RDF exports (Turtle and RDF/XML) @ontology-rd browser, }) => { const page = await browser.newPage(); - await adminUser.login(page); + await adminUser.signIn(page); // RDF disabled — the options must not appear. await page.route('**/api/v1/rdf/status**', (route) => @@ -225,7 +225,7 @@ test.describe('Ontology Studio — relational graph data loading @ontology-rdf', browser, }) => { const page = await browser.newPage(); - await adminUser.login(page); + await adminUser.signIn(page); let rdfGraphRequestCount = 0; await page.route('**/api/v1/rdf/status**', (route) => @@ -254,7 +254,7 @@ test.describe('Ontology Studio — relational graph data loading @ontology-rdf', browser, }) => { const page = await browser.newPage(); - await adminUser.login(page); + await adminUser.signIn(page); let rdfGraphRequestCount = 0; await page.route('**/api/v1/rdf/status**', (route) => diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Permission.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Permission.spec.ts index 2bf86db62de7..c4b8e034ebd1 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Permission.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Permission.spec.ts @@ -80,7 +80,7 @@ const test = base.extend<{ }, userPage: async ({ browser }, use) => { const page = await browser.newPage(); - await user.login(page); + await user.signIn(page); await use(page); await page.close(); }, diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Permissions/DataProductPermissions.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Permissions/DataProductPermissions.spec.ts index 60729d9b8ef5..9114fe2ed494 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Permissions/DataProductPermissions.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Permissions/DataProductPermissions.spec.ts @@ -42,7 +42,7 @@ const test = base.extend<{ page: async ({ browser }, use) => { const adminPage = await browser.newPage(); try { - await adminUser.login(adminPage); + await adminUser.signIn(adminPage); await use(adminPage); } finally { await adminPage.close(); @@ -51,7 +51,7 @@ const test = base.extend<{ testUserPage: async ({ browser }, use) => { const userPage = await browser.newPage(); try { - await testUser.login(userPage); + await testUser.signIn(userPage); await use(userPage); } finally { await userPage.close(); @@ -228,7 +228,7 @@ test.describe('Data Product Permissions', () => { ); const expertPage = await browser.newPage(); - await expertUser.login(expertPage); + await expertUser.signIn(expertPage); await redirectToHomePage(expertPage); await sidebarClick(expertPage, SidebarItem.DATA_PRODUCT); await selectDataProduct(expertPage, expertDataProduct.responseData); diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Permissions/DomainPermissions.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Permissions/DomainPermissions.spec.ts index dcc5a57ee9b0..089f9f85e4bd 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Permissions/DomainPermissions.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Permissions/DomainPermissions.spec.ts @@ -35,7 +35,7 @@ const test = base.extend<{ page: async ({ browser }, use) => { const adminPage = await browser.newPage(); try { - await adminUser.login(adminPage); + await adminUser.signIn(adminPage); await use(adminPage); } finally { await adminPage.close(); @@ -44,7 +44,7 @@ const test = base.extend<{ testUserPage: async ({ browser }, use) => { const page = await browser.newPage(); try { - await testUser.login(page); + await testUser.signIn(page); await use(page); } finally { await page.close(); @@ -74,7 +74,7 @@ test('Domain allow operations', async ({ testUserPage, browser }) => { // Setup allow permissions const page = await browser.newPage(); - await adminUser.login(page); + await adminUser.signIn(page); const { apiContext } = await getApiContext(page); await initializePermissions(page, 'allow', [ 'EditDescription', @@ -145,7 +145,7 @@ test('Domain deny operations', async ({ testUserPage, browser }) => { // Setup deny permissions const page = await browser.newPage(); - await adminUser.login(page); + await adminUser.signIn(page); const { apiContext } = await getApiContext(page); await initializePermissions(page, 'deny', [ 'EditDescription', diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Permissions/EntityPermissions.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Permissions/EntityPermissions.spec.ts index 3cde372d21d8..d3f46bad6bec 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Permissions/EntityPermissions.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Permissions/EntityPermissions.spec.ts @@ -109,7 +109,7 @@ const test = base.extend<{ page: async ({ browser }, use) => { const adminPage = await browser.newPage(); try { - await adminUser.login(adminPage); + await adminUser.signIn(adminPage); await use(adminPage); } finally { await adminPage.close(); @@ -118,7 +118,7 @@ const test = base.extend<{ testUserPage: async ({ browser }, use) => { const page = await browser.newPage(); try { - await testUser.login(page); + await testUser.signIn(page); await use(page); } finally { await page.close(); @@ -159,7 +159,7 @@ const headerPermTest = base.extend<{ editAllPage: async ({ browser }, use) => { const page = await browser.newPage(); try { - await editAllUser.login(page); + await editAllUser.signIn(page); await use(page); } finally { await page.close(); @@ -168,7 +168,7 @@ const headerPermTest = base.extend<{ specificEditsPage: async ({ browser }, use) => { const page = await browser.newPage(); try { - await specificEditsUser.login(page); + await specificEditsUser.signIn(page); await use(page); } finally { await page.close(); @@ -269,7 +269,7 @@ Object.entries(entityConfig).forEach(([, config]) => { test.describe('Allow permissions', () => { test.beforeAll('Initialize allow permissions', async ({ browser }) => { const page = await browser.newPage(); - await adminUser.login(page); + await adminUser.signIn(page); await initializePermissions(page, 'allow', ALL_OPERATIONS); await assignRoleToUser(page, testUser); await page.close(); @@ -305,7 +305,7 @@ Object.entries(entityConfig).forEach(([, config]) => { test.afterAll('Cleanup allow permissions', async ({ browser }) => { const page = await browser.newPage(); - await adminUser.login(page); + await adminUser.signIn(page); const { apiContext } = await getApiContext(page); await cleanupPermissions(apiContext); await page.close(); @@ -316,7 +316,7 @@ Object.entries(entityConfig).forEach(([, config]) => { test.describe('Deny permissions', () => { test.beforeAll('Initialize deny permissions', async ({ browser }) => { const page = await browser.newPage(); - await adminUser.login(page); + await adminUser.signIn(page); await initializePermissions(page, 'deny', ALL_OPERATIONS); await assignRoleToUser(page, testUser); await page.close(); @@ -352,7 +352,7 @@ Object.entries(entityConfig).forEach(([, config]) => { test.afterAll('Cleanup deny permissions', async ({ browser }) => { const page = await browser.newPage(); - await adminUser.login(page); + await adminUser.signIn(page); const { apiContext } = await getApiContext(page); await cleanupPermissions(apiContext); await page.close(); diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Permissions/GlossaryPermissions.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Permissions/GlossaryPermissions.spec.ts index fddfbeb4ab2b..6ce3a4945eaf 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Permissions/GlossaryPermissions.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Permissions/GlossaryPermissions.spec.ts @@ -36,7 +36,7 @@ const test = base.extend<{ page: async ({ browser }, use) => { const adminPage = await browser.newPage(); try { - await adminUser.login(adminPage); + await adminUser.signIn(adminPage); await use(adminPage); } finally { await adminPage.close(); @@ -45,7 +45,7 @@ const test = base.extend<{ testUserPage: async ({ browser }, use) => { const page = await browser.newPage(); try { - await testUser.login(page); + await testUser.signIn(page); await use(page); } finally { await page.close(); @@ -415,7 +415,7 @@ test.describe('Glossary Permissions', () => { const teamUserPage = await browser.newPage(); try { - await teamUser.login(teamUserPage); + await teamUser.signIn(teamUserPage); await expect(async () => { await glossary.visitEntityPage(teamUserPage); diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Permissions/ServiceEntityPermissions.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Permissions/ServiceEntityPermissions.spec.ts index 7be15fb820f6..bbb6427a9000 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Permissions/ServiceEntityPermissions.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Permissions/ServiceEntityPermissions.spec.ts @@ -38,7 +38,7 @@ const test = baseTest.extend<{ testUserPage: async ({ browser }: { browser: Browser }, use) => { const context = await browser.newContext(); const page = await context.newPage(); - await testUser.login(page); + await testUser.signIn(page); await use(page); await context.close(); }, diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/PersonaAIContextRules.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/PersonaAIContextRules.spec.ts index 44f6c351a651..ab4e1ee67e63 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/PersonaAIContextRules.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/PersonaAIContextRules.spec.ts @@ -51,7 +51,7 @@ const test = base.extend<{ adminPage: Page }>({ adminPage: async ({ browser }, use) => { const admin = new AdminClass(); const page = await browser.newPage(); - await admin.login(page); + await admin.signIn(page); await use(page); await page.close(); }, diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/PersonaSessionPersistence.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/PersonaSessionPersistence.spec.ts index 3aa697be2ee7..ce788c58ef59 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/PersonaSessionPersistence.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/PersonaSessionPersistence.spec.ts @@ -26,7 +26,7 @@ const user = new UserClass(); const test = base.extend<{ userPage: Page }>({ userPage: async ({ browser }, use) => { const page = await browser.newPage(); - await user.login(page); + await user.signIn(page); await use(page); await page.close(); }, diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/SearchExport.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/SearchExport.spec.ts index 9878077f753a..48c220e5eeee 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/SearchExport.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/SearchExport.spec.ts @@ -138,7 +138,7 @@ test.describe( }); test.beforeEach(async ({ page }) => { - await searchExportUser.login(page); + await searchExportUser.signIn(page); await redirectToExplorePage(page); }); diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/SettingsNavigationPage.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/SettingsNavigationPage.spec.ts index a33c7c537c53..e88b80a8a246 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/SettingsNavigationPage.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/SettingsNavigationPage.spec.ts @@ -28,7 +28,7 @@ const persona = new PersonaClass(); const test = base.extend<{ page: Page }>({ page: async ({ browser }, use) => { const page = await browser.newPage(); - await adminUser.login(page); + await adminUser.signIn(page); await use(page); await page.close(); }, diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/TagsSuggestion.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/TagsSuggestion.spec.ts index 090377c9653d..54a6015c5497 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/TagsSuggestion.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/TagsSuggestion.spec.ts @@ -159,7 +159,7 @@ describeTagTaskWorkflowsInParallel( page, browser, }) => { - await requesterUser.login(page); + await requesterUser.signIn(page); await openTaskForm( page, buildTaskRoute({ @@ -177,7 +177,7 @@ describeTagTaskWorkflowsInParallel( const reviewerPage = await browser.newPage(); try { - await reviewerUser.login(reviewerPage); + await reviewerUser.signIn(reviewerPage); await table.visitEntityPage(reviewerPage); await openEntityTasksTab(reviewerPage); await openTaskDetails(reviewerPage, task); @@ -214,7 +214,7 @@ describeTagTaskWorkflowsInParallel( }) => { const columnPath = table.entityLinkColumnsName[0]; - await requesterUser.login(page); + await requesterUser.signIn(page); await openTaskForm( page, buildTaskRoute({ @@ -236,7 +236,7 @@ describeTagTaskWorkflowsInParallel( const reviewerPage = await browser.newPage(); try { - await reviewerUser.login(reviewerPage); + await reviewerUser.signIn(reviewerPage); await table.visitEntityPage(reviewerPage); await openEntityTasksTab(reviewerPage); await openTaskDetails(reviewerPage, task); @@ -281,7 +281,7 @@ describeTagTaskWorkflowsInParallel( 'first_name', ].join('.'); - await requesterUser.login(page); + await requesterUser.signIn(page); await openTaskForm( page, buildTaskRoute({ @@ -301,7 +301,7 @@ describeTagTaskWorkflowsInParallel( const reviewerPage = await browser.newPage(); try { - await reviewerUser.login(reviewerPage); + await reviewerUser.signIn(reviewerPage); await topic.visitEntityPage(reviewerPage); await openEntityTasksTab(reviewerPage); await openTaskDetails(reviewerPage, task); @@ -342,7 +342,7 @@ describeTagTaskWorkflowsInParallel( }) => { const requestFieldPath = 'default.name.last_name'; - await requesterUser.login(page); + await requesterUser.signIn(page); await openTaskForm( page, buildTaskRoute({ @@ -362,7 +362,7 @@ describeTagTaskWorkflowsInParallel( const reviewerPage = await browser.newPage(); try { - await reviewerUser.login(reviewerPage); + await reviewerUser.signIn(reviewerPage); await apiEndpoint.visitEntityPage(reviewerPage); await openEntityTasksTab(reviewerPage); await openTaskDetails(reviewerPage, task); @@ -403,7 +403,7 @@ describeTagTaskWorkflowsInParallel( }) => { const responseFieldPath = 'default.name.first_name'; - await requesterUser.login(page); + await requesterUser.signIn(page); await openTaskForm( page, buildTaskRoute({ @@ -425,7 +425,7 @@ describeTagTaskWorkflowsInParallel( const reviewerPage = await browser.newPage(); try { - await reviewerUser.login(reviewerPage); + await reviewerUser.signIn(reviewerPage); await apiEndpoint.visitEntityPage(reviewerPage); await openEntityTasksTab(reviewerPage); await openTaskDetails(reviewerPage, task); @@ -466,7 +466,7 @@ describeTagTaskWorkflowsInParallel( }) => { const requestFieldPath = 'default.club_name'; - await requesterUser.login(page); + await requesterUser.signIn(page); await openTaskForm( page, buildTaskRoute({ @@ -486,7 +486,7 @@ describeTagTaskWorkflowsInParallel( const reviewerPage = await browser.newPage(); try { - await reviewerUser.login(reviewerPage); + await reviewerUser.signIn(reviewerPage); await apiEndpoint.visitEntityPage(reviewerPage); await openEntityTasksTab(reviewerPage); await openTaskDetails(reviewerPage, task); @@ -539,7 +539,7 @@ describeTagTaskWorkflowsInParallel( const containerColumnName = container.entityResponseData.dataModel?.columns?.[0].name ?? ''; - await requesterUser.login(page); + await requesterUser.signIn(page); await openTaskForm( page, buildTaskRoute({ @@ -561,7 +561,7 @@ describeTagTaskWorkflowsInParallel( const reviewerPage = await browser.newPage(); try { - await reviewerUser.login(reviewerPage); + await reviewerUser.signIn(reviewerPage); await container.visitEntityPage(reviewerPage); await openEntityTasksTab(reviewerPage); await openTaskDetails(reviewerPage, task); diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Tasks.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Tasks.spec.ts index 69e660ef6a9d..7268a4791c92 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Tasks.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Tasks.spec.ts @@ -81,7 +81,7 @@ test.describe('Task Workflow Tests', () => { test.describe('Task Creation', () => { test.beforeEach(async ({ page }) => { - await adminUser.login(page); + await adminUser.signIn(page); }); test('should create request description task from entity page', async ({ @@ -179,7 +179,7 @@ test.describe('Task Workflow Tests', () => { test.describe('Task Navigation', () => { test.beforeEach(async ({ page }) => { - await adminUser.login(page); + await adminUser.signIn(page); }); test('clicking task in activity feed should navigate to entity page with task tab', async ({ @@ -200,7 +200,7 @@ test.describe('Task Workflow Tests', () => { }); const page = await browser.newPage(); - await adminUser.login(page); + await adminUser.signIn(page); // Go to home page and find the task in activity feed await redirectToHomePage(page); @@ -271,7 +271,7 @@ test.describe('Task Workflow Tests', () => { // Login as regular user (who is the assignee) const page = await browser.newPage(); - await regularUser.login(page); + await regularUser.signIn(page); await tableWithOwner.visitEntityPage(page); await page.getByTestId('activity_feed').click(); @@ -308,7 +308,7 @@ test.describe('Task Workflow Tests', () => { try { const page = await browser.newPage(); - await nonAssignee.login(page); + await nonAssignee.signIn(page); await tableWithOwner.visitEntityPage(page); await page.getByTestId('activity_feed').click(); @@ -380,7 +380,7 @@ test.describe('Task Workflow Tests', () => { test('task count in Activity Feed tab should match actual tasks', async ({ page, }) => { - await adminUser.login(page); + await adminUser.signIn(page); await tableWithOwner.visitEntityPage(page); // Click on activity feed tab @@ -452,7 +452,7 @@ test.describe('Task Workflow Tests', () => { expect(taskResponse.ok()).toBe(true); const page = await browser.newPage(); - await adminUser.login(page); + await adminUser.signIn(page); await tableWithOwner.visitEntityPage(page); // Navigate to activity feed @@ -501,7 +501,7 @@ test.describe('Task Workflow Tests', () => { }); const page = await browser.newPage(); - await regularUser.login(page); + await regularUser.signIn(page); await redirectToHomePage(page); await waitForPageLoaded(page); diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Tasks/ActivityFeed.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Tasks/ActivityFeed.spec.ts index d5662f79e50d..856a032edadc 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Tasks/ActivityFeed.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Tasks/ActivityFeed.spec.ts @@ -96,7 +96,7 @@ test.describe('Activity Feed - Home Page Widget', () => { }); test.beforeEach(async ({ page }) => { - await adminUser.login(page); + await adminUser.signIn(page); }); test('should display activity feed widget on home page', async ({ page }) => { @@ -225,7 +225,7 @@ test.describe('Activity Feed - Filters', () => { }); test('All filter should show all activity', async ({ page }) => { - await adminUser.login(page); + await adminUser.signIn(page); await redirectToHomePage(page); await waitForPageLoaded(page); @@ -247,7 +247,7 @@ test.describe('Activity Feed - Filters', () => { test('My Data filter should show only owned entity activity', async ({ page, }) => { - await regularUser.login(page); + await regularUser.signIn(page); await redirectToHomePage(page); await waitForPageLoaded(page); @@ -269,7 +269,7 @@ test.describe('Activity Feed - Filters', () => { }); test('Tasks filter should show only tasks', async ({ page }) => { - await regularUser.login(page); + await regularUser.signIn(page); await redirectToHomePage(page); await waitForPageLoaded(page); @@ -295,7 +295,7 @@ test.describe('Activity Feed - Filters', () => { test('Activity Feed widget filters should switch between All Activity, My Data, and Following', async ({ page, }) => { - await regularUser.login(page); + await regularUser.signIn(page); await redirectToHomePage(page, false); const feedWidget = page.getByTestId('KnowledgePanel.ActivityFeed'); @@ -328,7 +328,7 @@ test.describe('Activity Feed - Filters', () => { test('assignee should see assigned tasks in Tasks filter', async ({ page, }) => { - await regularUser.login(page); + await regularUser.signIn(page); await redirectToHomePage(page); await waitForPageLoaded(page); @@ -416,7 +416,7 @@ test.describe('Activity Feed - Entity Page', () => { }); test.beforeEach(async ({ page }) => { - await adminUser.login(page); + await adminUser.signIn(page); }); test('should display activity feed tab on entity page', async ({ page }) => { @@ -565,7 +565,7 @@ test.describe('Activity Feed - Real-time Updates', () => { test('creating task should immediately appear in entity feed', async ({ page, }) => { - await adminUser.login(page); + await adminUser.signIn(page); await table.visitEntityPage(page); // Go to activity feed @@ -644,7 +644,7 @@ test.describe('Activity Feed - Real-time Updates', () => { expect(patchResponse.ok()).toBe(true); const page = await browser.newPage(); - await adminUser.login(page); + await adminUser.signIn(page); await table.visitEntityPage(page); // Go to activity feed @@ -703,7 +703,7 @@ test.describe('Activity Feed - Following', () => { test('following an entity should show its activity in Following filter', async ({ page, }) => { - await regularUser.login(page); + await regularUser.signIn(page); await table.visitEntityPage(page); // Follow the entity @@ -791,7 +791,7 @@ test.describe('Activity Feed - Entity Page counts', () => { }); test.beforeEach(async ({ page }) => { - await adminUser.login(page); + await adminUser.signIn(page); }); test('entity tab badge totals conversations, activity and tasks', async ({ diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Tasks/TaskAssigneeManagement.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Tasks/TaskAssigneeManagement.spec.ts index b6d59aae6b07..21e1928b9da8 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Tasks/TaskAssigneeManagement.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Tasks/TaskAssigneeManagement.spec.ts @@ -79,7 +79,7 @@ test.describe('Task Assignee Management', () => { test('admin can reassign an existing metadata task from the task details page', async ({ page, }) => { - await adminUser.login(page); + await adminUser.signIn(page); await table.visitEntityPage(page); await page.getByTestId('activity_feed').click(); await waitForAllLoadersToDisappear(page); diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Tasks/TaskComments.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Tasks/TaskComments.spec.ts index 5ea5b922e3c2..ede618842c40 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Tasks/TaskComments.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Tasks/TaskComments.spec.ts @@ -83,7 +83,7 @@ test.describe('Task Comments - Add Comment', () => { }); test('assignee should be able to add comment to task', async ({ page }) => { - await assigneeUser.login(page); + await assigneeUser.signIn(page); await table.visitEntityPage(page); await page.getByTestId('activity_feed').click(); @@ -134,7 +134,7 @@ test.describe('Task Comments - Add Comment', () => { }); test('non-assignee should be able to add comment', async ({ page }) => { - await commentingUser.login(page); + await commentingUser.signIn(page); await table.visitEntityPage(page); await page.getByTestId('activity_feed').click(); @@ -175,7 +175,7 @@ test.describe('Task Comments - Add Comment', () => { }); test('admin should be able to add comment to any task', async ({ page }) => { - await adminUser.login(page); + await adminUser.signIn(page); await table.visitEntityPage(page); await page.getByTestId('activity_feed').click(); @@ -266,7 +266,7 @@ test.describe('Task Comments - @Mention', () => { }); test('typing @ should show user suggestion dropdown', async ({ page }) => { - await adminUser.login(page); + await adminUser.signIn(page); await table.visitEntityPage(page); await page.getByTestId('activity_feed').click(); @@ -312,7 +312,7 @@ test.describe('Task Comments - @Mention', () => { test('selecting user from @ dropdown should add mention', async ({ page, }) => { - await adminUser.login(page); + await adminUser.signIn(page); await table.visitEntityPage(page); await page.getByTestId('activity_feed').click(); @@ -426,7 +426,7 @@ test.describe('Task Comments - Edit/Delete', () => { }); test('comment author should see edit/delete options', async ({ page }) => { - await adminUser.login(page); + await adminUser.signIn(page); await table.visitEntityPage(page); await page.getByTestId('activity_feed').click(); @@ -467,7 +467,7 @@ test.describe('Task Comments - Edit/Delete', () => { }); test('should be able to edit own comment', async ({ page }) => { - await adminUser.login(page); + await adminUser.signIn(page); await table.visitEntityPage(page); await page.getByTestId('activity_feed').click(); @@ -521,7 +521,7 @@ test.describe('Task Comments - Edit/Delete', () => { }); test('should be able to delete own comment', async ({ page }) => { - await adminUser.login(page); + await adminUser.signIn(page); await table.visitEntityPage(page); await page.getByTestId('activity_feed').click(); @@ -573,7 +573,7 @@ test.describe('Task Comments - Edit/Delete', () => { }); test('non-author should not see edit/delete options', async ({ page }) => { - await assigneeUser.login(page); + await assigneeUser.signIn(page); await table.visitEntityPage(page); await page.getByTestId('activity_feed').click(); diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Tasks/TaskCreation.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Tasks/TaskCreation.spec.ts index f18a62300604..1bb65e104f86 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Tasks/TaskCreation.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Tasks/TaskCreation.spec.ts @@ -68,7 +68,7 @@ test.describe('Task Creation - Request Description', () => { }); test.beforeEach(async ({ page }) => { - await adminUser.login(page); + await adminUser.signIn(page); }); test('should create request description task for table', async ({ page }) => { @@ -253,7 +253,7 @@ test.describe('Task Creation - Request Tags', () => { }); test.beforeEach(async ({ page }) => { - await adminUser.login(page); + await adminUser.signIn(page); }); test('should create request tags task for table', async ({ page }) => { @@ -324,7 +324,7 @@ test.describe('Task Creation - Suggest Description', () => { }); test.beforeEach(async ({ page }) => { - await adminUser.login(page); + await adminUser.signIn(page); }); test('should create suggest description task with suggested value', async ({ @@ -399,7 +399,7 @@ test.describe('Task Creation - Suggest Tags', () => { }); test.beforeEach(async ({ page }) => { - await adminUser.login(page); + await adminUser.signIn(page); }); test('should create suggest tags task with suggested tags', async ({ diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Tasks/TaskNavigation.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Tasks/TaskNavigation.spec.ts index ec0c622c4ef6..77b4ac68b14e 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Tasks/TaskNavigation.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Tasks/TaskNavigation.spec.ts @@ -78,7 +78,7 @@ test.describe('Task Navigation - Activity Feed Widget', () => { }); test.beforeEach(async ({ page }) => { - await adminUser.login(page); + await adminUser.signIn(page); }); test('clicking task in home feed widget should navigate to entity page', async ({ @@ -217,7 +217,7 @@ test.describe('Task Navigation - Entity Page', () => { }); test.beforeEach(async ({ page }) => { - await adminUser.login(page); + await adminUser.signIn(page); }); test('should display tasks in entity activity feed tab', async ({ page }) => { @@ -365,7 +365,7 @@ test.describe('Task Navigation - Notification Box', () => { }); test('assignee should see task in notification box', async ({ page }) => { - await assigneeUser.login(page); + await assigneeUser.signIn(page); await redirectToHomePage(page); await waitForPageLoaded(page); @@ -399,7 +399,7 @@ test.describe('Task Navigation - Notification Box', () => { test('clicking task notification should navigate correctly', async ({ page, }) => { - await assigneeUser.login(page); + await assigneeUser.signIn(page); await redirectToHomePage(page); await waitForPageLoaded(page); @@ -467,7 +467,7 @@ test.describe('Task Navigation - URL Validation', () => { test('navigating to /table/TASK-XXXXX should show 404 (invalid URL pattern)', async ({ page, }) => { - await adminUser.login(page); + await adminUser.signIn(page); // This is a regression test - /table/TASK-00001 is an invalid URL // because TASK-00001 is a task ID, not a table FQN @@ -507,7 +507,7 @@ test.describe('Task Navigation - URL Validation', () => { const task = await taskResponse.json(); const page = await browser.newPage(); - await adminUser.login(page); + await adminUser.signIn(page); // Navigate to task-related entity page // The correct pattern should be /table/{entityFqn}?activeTab=activity_feed @@ -587,7 +587,7 @@ test.describe('Task Notification - activity-feed tab refreshes after clicking no test.slow(); await test.step('Log in and navigate to entity page', async () => { - await adminUser.login(page); + await adminUser.signIn(page); const entityFqn = table.entityResponseData?.fullyQualifiedName ?? ''; await page.goto(`/table/${encodeURIComponent(entityFqn)}`); await waitForPageLoaded(page); @@ -680,8 +680,8 @@ test.describe('Task Notification - activity-feed tab refreshes after clicking no try { await test.step('Log in both sessions', async () => { - await adminUser.login(adminPage); - await otherUser.login(userPage); + await adminUser.signIn(adminPage); + await otherUser.signIn(userPage); }); await test.step('Admin navigates to entity Columns (Schema) tab', async () => { diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Tasks/TaskPermissions.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Tasks/TaskPermissions.spec.ts index 417e40ff523c..7528346ff8be 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Tasks/TaskPermissions.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Tasks/TaskPermissions.spec.ts @@ -44,7 +44,7 @@ const createTaskAsAdmin = async ( const getUserApiContext = async (browser: Browser, user: UserClass) => { const page = await browser.newPage(); - await user.login(page); + await user.signIn(page); const { apiContext, afterAction } = await getApiContext(page); return { @@ -336,7 +336,7 @@ test.describe('Task Permissions - UI Button Visibility', () => { test('assignee (owner) should see approve/reject buttons', async ({ page, }) => { - await ownerUser.login(page); + await ownerUser.signIn(page); await table.visitEntityPage(page); await page.getByTestId('activity_feed').click(); @@ -363,7 +363,7 @@ test.describe('Task Permissions - UI Button Visibility', () => { test('non-assignee without permissions should NOT see approve/reject buttons', async ({ page, }) => { - await nonOwnerUser.login(page); + await nonOwnerUser.signIn(page); await table.visitEntityPage(page); await page.getByTestId('activity_feed').click(); @@ -388,7 +388,7 @@ test.describe('Task Permissions - UI Button Visibility', () => { }); test('admin should always see approve/reject buttons', async ({ page }) => { - await adminUser.login(page); + await adminUser.signIn(page); await table.visitEntityPage(page); await page.getByTestId('activity_feed').click(); @@ -488,7 +488,7 @@ test.describe('Task Permissions - Team Assignment', () => { test('team member CAN resolve task assigned to team (team owns entity)', async ({ page, }) => { - await teamMember.login(page); + await teamMember.signIn(page); await table.visitEntityPage(page); await page.getByTestId('activity_feed').click(); @@ -511,7 +511,7 @@ test.describe('Task Permissions - Team Assignment', () => { }); test('non-team member should NOT see approve button', async ({ page }) => { - await nonTeamMember.login(page); + await nonTeamMember.signIn(page); await table.visitEntityPage(page); await page.getByTestId('activity_feed').click(); @@ -621,7 +621,7 @@ test.describe('Task Permissions - Task Creator', () => { // Try to close as creator user (who did NOT create this task) const page = await browser.newPage(); - await creatorUser.login(page); + await creatorUser.signIn(page); // Navigate to task and try to close await table.visitEntityPage(page); diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Tasks/TaskResolution.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Tasks/TaskResolution.spec.ts index 99e2f95cb9f5..7b2ca1837346 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Tasks/TaskResolution.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Tasks/TaskResolution.spec.ts @@ -91,7 +91,7 @@ test.describe('Task Resolution - Approve/Reject', () => { }); test('assignee should see approve/reject buttons', async ({ page }) => { - await assigneeUser.login(page); + await assigneeUser.signIn(page); await table.visitEntityPage(page); // Stay on the default "All" activity-feed view (do NOT switch to the @@ -115,7 +115,7 @@ test.describe('Task Resolution - Approve/Reject', () => { test('non-assignee should NOT see approve/reject buttons', async ({ page, }) => { - await nonAssigneeUser.login(page); + await nonAssigneeUser.signIn(page); await table.visitEntityPage(page); await page.getByTestId('activity_feed').click(); @@ -160,7 +160,7 @@ test.describe('Task Resolution - Approve/Reject', () => { const task = await taskResponse.json(); await afterAction(); - await adminUser.login(page); + await adminUser.signIn(page); await table.visitEntityPage(page); await page.getByTestId('activity_feed').click(); @@ -240,7 +240,7 @@ test.describe('Task Resolution - Approve/Reject', () => { const task = await taskResponse.json(); feedbackTaskId = task.id; - await assigneeUser.login(page); + await assigneeUser.signIn(page); const { apiContext: assigneeApiContext, afterAction: afterAssigneeAction, @@ -343,7 +343,7 @@ test.describe('Task Resolution - Team Assignee', () => { test('team member should be able to approve task assigned to team', async ({ page, }) => { - await teamMember.login(page); + await teamMember.signIn(page); await table.visitEntityPage(page); await page.getByTestId('activity_feed').click(); @@ -368,7 +368,7 @@ test.describe('Task Resolution - Team Assignee', () => { test('non-team member should NOT see approve button for team task', async ({ page, }) => { - await nonTeamMember.login(page); + await nonTeamMember.signIn(page); await table.visitEntityPage(page); await page.getByTestId('activity_feed').click(); diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Tasks/TeamActivity.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Tasks/TeamActivity.spec.ts index c9f48fbf0504..04bb8fd0e394 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Tasks/TeamActivity.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/Tasks/TeamActivity.spec.ts @@ -97,7 +97,7 @@ test.describe('Team Activity - Membership Changes', () => { // Login as existing team member const page = await browser.newPage(); - await teamMember.login(page); + await teamMember.signIn(page); await redirectToHomePage(page); await waitForPageLoaded(page); @@ -144,7 +144,7 @@ test.describe('Team Activity - Membership Changes', () => { // Login as existing team member and check feed const page = await browser.newPage(); - await teamMember.login(page); + await teamMember.signIn(page); await redirectToHomePage(page); await waitForPageLoaded(page); @@ -240,7 +240,7 @@ test.describe('Team Activity - Team Owned Entities', () => { // Login as team member and check they can see the change const page = await browser.newPage(); - await teamMember1.login(page); + await teamMember1.signIn(page); await redirectToHomePage(page); await waitForPageLoaded(page); @@ -254,7 +254,7 @@ test.describe('Team Activity - Team Owned Entities', () => { test('non-team member should not see team-only activity', async ({ page, }) => { - await nonTeamMember.login(page); + await nonTeamMember.signIn(page); await redirectToHomePage(page); await waitForPageLoaded(page); @@ -351,7 +351,7 @@ test.describe('Team Activity - Tasks Assigned to Team', () => { test('team member should see tasks assigned to their team', async ({ page, }) => { - await teamMember1.login(page); + await teamMember1.signIn(page); await redirectToHomePage(page); await waitForPageLoaded(page); @@ -373,7 +373,7 @@ test.describe('Team Activity - Tasks Assigned to Team', () => { test('different team member should also see team-assigned task', async ({ page, }) => { - await teamMember2.login(page); + await teamMember2.signIn(page); await redirectToHomePage(page); await waitForPageLoaded(page); @@ -394,7 +394,7 @@ test.describe('Team Activity - Tasks Assigned to Team', () => { test('non-team member should NOT see team-assigned task in their tasks', async ({ page, }) => { - await nonTeamMember.login(page); + await nonTeamMember.signIn(page); await redirectToHomePage(page); await waitForPageLoaded(page); @@ -423,7 +423,7 @@ test.describe('Team Activity - Tasks Assigned to Team', () => { test('team member should be able to resolve team-assigned task', async ({ page, }) => { - await teamMember1.login(page); + await teamMember1.signIn(page); await table.visitEntityPage(page); await page.getByTestId('activity_feed').click(); @@ -513,7 +513,7 @@ test.describe('Team Activity - Team Page Feed', () => { }); test('team page should show activity feed for team', async ({ page }) => { - await adminUser.login(page); + await adminUser.signIn(page); // Navigate to team page await page.goto(`/settings/members/teams/${team.responseData.name}`); @@ -592,7 +592,7 @@ test.describe('Team Activity - Notifications', () => { test('team member should receive notification for team-assigned task', async ({ page, }) => { - await teamMember.login(page); + await teamMember.signIn(page); await redirectToHomePage(page); await waitForPageLoaded(page); diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/TeamSubscriptions.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/TeamSubscriptions.spec.ts index 68f50cb2fd39..78b8cc717872 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/TeamSubscriptions.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/TeamSubscriptions.spec.ts @@ -356,7 +356,7 @@ test.describe( const ownerPage = await browser.newPage(); try { - await ownerUser.login(ownerPage); + await ownerUser.signIn(ownerPage); await redirectToHomePage(ownerPage); await ownerTeam.visitTeamPage(ownerPage); await waitForAllLoadersToDisappear(ownerPage); @@ -437,7 +437,7 @@ test.describe( await test.step('Verify member cannot edit subscriptions', async () => { const memberPage = await browser.newPage(); - await memberUser.login(memberPage); + await memberUser.signIn(memberPage); await redirectToHomePage(memberPage); await memberTeam.visitTeamPage(memberPage); await waitForAllLoadersToDisappear(memberPage); @@ -490,7 +490,7 @@ test.describe( const page = await browser.newPage(); await test.step('Login as data consumer and visit team page', async () => { - await dataConsumerUser.login(page); + await dataConsumerUser.signIn(page); await redirectToHomePage(page); await restrictedTeam.visitTeamPage(page); await waitForAllLoadersToDisappear(page); @@ -539,7 +539,7 @@ test.describe( const page = await browser.newPage(); await test.step('Login as data steward and visit team page', async () => { - await dataStewardUser.login(page); + await dataStewardUser.signIn(page); await redirectToHomePage(page); await stewardTeam.visitTeamPage(page); await waitForAllLoadersToDisappear(page); diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Flow/ConditionalPermissions.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Flow/ConditionalPermissions.spec.ts index 25ed07a17e54..9fecaa1e78c5 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Flow/ConditionalPermissions.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Flow/ConditionalPermissions.spec.ts @@ -32,13 +32,13 @@ const test = base.extend<{ }>({ user1Page: async ({ browser }, use) => { const page = await browser.newPage(); - await userWithOwnerPermission.login(page); + await userWithOwnerPermission.signIn(page); await use(page); await page.close(); }, user2Page: async ({ browser }, use) => { const page = await browser.newPage(); - await userWithTagPermission.login(page); + await userWithTagPermission.signIn(page); await use(page); await page.close(); }, diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Flow/CustomizeLandingPage.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Flow/CustomizeLandingPage.spec.ts index 78ef32e4cf70..1b366ac94ac8 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Flow/CustomizeLandingPage.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Flow/CustomizeLandingPage.spec.ts @@ -96,7 +96,7 @@ const test = base.extend({ void persona; const adminPage = await browser.newPage(); - await testUser.login(adminPage); + await testUser.signIn(adminPage); await use(adminPage); await adminPage.close(); }, diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Flow/CustomizeWidgets.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Flow/CustomizeWidgets.spec.ts index 4672c14d5756..77c5e5aa0993 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Flow/CustomizeWidgets.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Flow/CustomizeWidgets.spec.ts @@ -125,7 +125,7 @@ const test = base.extend({ void persona; const page = await browser.newPage(); - await testUser.login(page); + await testUser.signIn(page); await use(page); await page.close(); }, diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Flow/Metric.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Flow/Metric.spec.ts index 08fa8952fea6..7966bddefaf5 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Flow/Metric.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Flow/Metric.spec.ts @@ -45,7 +45,7 @@ const adminUser = new UserClass(); const test = base.extend<{ page: Page }>({ page: async ({ browser }, use) => { const adminPage = await browser.newPage(); - await adminUser.login(adminPage); + await adminUser.signIn(adminPage); await use(adminPage); await adminPage.close(); }, diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Flow/NotificationAlerts.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Flow/NotificationAlerts.spec.ts index 7bd1a755c528..51881f5e5824 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Flow/NotificationAlerts.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Flow/NotificationAlerts.spec.ts @@ -72,19 +72,19 @@ const test = base.extend<{ }>({ page: async ({ browser }, use) => { const page = await browser.newPage(); - await admin.login(page); + await admin.signIn(page); await use(page); await page.close(); }, userWithPermissionsPage: async ({ browser }, use) => { const page = await browser.newPage(); - await user1.login(page); + await user1.signIn(page); await use(page); await page.close(); }, userWithoutPermissionsPage: async ({ browser }, use) => { const page = await browser.newPage(); - await user2.login(page); + await user2.signIn(page); await use(page); await page.close(); }, diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Flow/ObservabilityAlerts.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Flow/ObservabilityAlerts.spec.ts index 0d3857a06c3d..f75130c1cf1a 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Flow/ObservabilityAlerts.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Flow/ObservabilityAlerts.spec.ts @@ -80,13 +80,13 @@ const test = base.extend<{ }>({ userWithPermissionsPage: async ({ browser }, use) => { const page = await browser.newPage(); - await user1.login(page); + await user1.signIn(page); await use(page); await page.close(); }, userWithoutPermissionsPage: async ({ browser }, use) => { const page = await browser.newPage(); - await user2.login(page); + await user2.signIn(page); await use(page); await page.close(); }, diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Flow/PersonaFlow.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Flow/PersonaFlow.spec.ts index 6a4e9dade0e5..357285b9a2c1 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Flow/PersonaFlow.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Flow/PersonaFlow.spec.ts @@ -311,7 +311,7 @@ test.describe.serial('Default persona setting and removal flow', () => { const userContext = await browser.newContext({ storageState: undefined }); const userPage = await userContext.newPage(); - await user1.login(userPage); + await user1.signIn(userPage); test.slow(true); diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Flow/SearchRBAC.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Flow/SearchRBAC.spec.ts index 52e24321e61f..273747e273ac 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Flow/SearchRBAC.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Flow/SearchRBAC.spec.ts @@ -120,7 +120,7 @@ for (const entity of searchRBACEntities) { test(`User with permission`, async ({ browser }) => { const userWithPermissionPage = await newStrippedPage(browser); - await user1.login(userWithPermissionPage); + await user1.signIn(userWithPermissionPage); await searchForEntityShouldWork( entityObj.entityResponseData?.fullyQualifiedName ?? '', @@ -135,7 +135,7 @@ for (const entity of searchRBACEntities) { test(`User without permission`, async ({ browser }) => { const userWithoutPermissionPage = await newStrippedPage(browser); - await user2.login(userWithoutPermissionPage); + await user2.signIn(userWithoutPermissionPage); await searchForEntityShouldWorkShowNoResult( entityObj.entityResponseData?.fullyQualifiedName ?? '', @@ -247,7 +247,7 @@ test.describe(`Table Column`, () => { const userWithPermissionPage = await newStrippedPage(browser); const column = table.entityResponseData?.columns?.[0]; - await user1.login(userWithPermissionPage); + await user1.signIn(userWithPermissionPage); await searchForEntityShouldWork( column.fullyQualifiedName ?? '', @@ -261,7 +261,7 @@ test.describe(`Table Column`, () => { const userWithoutPermissionPage = await newStrippedPage(browser); const column = table.entityResponseData?.columns?.[0]; - await user2.login(userWithoutPermissionPage); + await user2.signIn(userWithoutPermissionPage); await searchForEntityShouldWorkShowNoResult( column.fullyQualifiedName ?? '', @@ -381,7 +381,7 @@ test.describe('Explore browse respects search RBAC across users', () => { }) => { test.slow(); const page = await newStrippedPage(browser); - await userAll.login(page); + await userAll.signIn(page); await exploreShouldShowEntity(page, tableFqn(), tableName(), true); await exploreShouldShowEntity(page, dashboardFqn(), dashboardName(), true); @@ -394,7 +394,7 @@ test.describe('Explore browse respects search RBAC across users', () => { }) => { test.slow(); const page = await newStrippedPage(browser); - await userTableOnly.login(page); + await userTableOnly.signIn(page); await exploreShouldShowEntity(page, tableFqn(), tableName(), true); await exploreShouldShowEntity(page, dashboardFqn(), dashboardName(), false); @@ -407,7 +407,7 @@ test.describe('Explore browse respects search RBAC across users', () => { }) => { test.slow(); const page = await newStrippedPage(browser); - await userDashboardOnly.login(page); + await userDashboardOnly.signIn(page); await exploreShouldShowEntity(page, dashboardFqn(), dashboardName(), true); await exploreShouldShowEntity(page, tableFqn(), tableName(), false); @@ -420,7 +420,7 @@ test.describe('Explore browse respects search RBAC across users', () => { }) => { test.slow(); const page = await newStrippedPage(browser); - await userDenied.login(page); + await userDenied.signIn(page); await exploreShouldShowEntity(page, tableFqn(), tableName(), false); await exploreShouldShowEntity(page, dashboardFqn(), dashboardName(), false); @@ -436,7 +436,7 @@ test.describe('Explore browse respects search RBAC across users', () => { // A table-scoped user's tree has Databases but never Dashboards — the // Dashboards count is RBAC-filtered to zero, so the category drops out. const tablePage = await newStrippedPage(browser); - await userTableOnly.login(tablePage); + await userTableOnly.signIn(tablePage); await exploreTreeCategories(tablePage, { visible: ['Databases'], hidden: ['Dashboards'], @@ -445,7 +445,7 @@ test.describe('Explore browse respects search RBAC across users', () => { // A dashboard-scoped user sees the mirror image — no Databases category. const dashboardPage = await newStrippedPage(browser); - await userDashboardOnly.login(dashboardPage); + await userDashboardOnly.signIn(dashboardPage); await exploreTreeCategories(dashboardPage, { visible: ['Dashboards'], hidden: ['Databases'], diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Flow/ServiceCreationPermissions.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Flow/ServiceCreationPermissions.spec.ts index da9586d1ca69..6f9055d45c17 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Flow/ServiceCreationPermissions.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Flow/ServiceCreationPermissions.spec.ts @@ -70,25 +70,25 @@ const test = base.extend<{ }>({ serviceOwnerPage: async ({ browser }, use) => { const page = await browser.newPage(); - await serviceOwnerUser.login(page); + await serviceOwnerUser.signIn(page); await use(page); await page.close(); }, anotherUserPage: async ({ browser }, use) => { const page = await browser.newPage(); - await anotherUser.login(page); + await anotherUser.signIn(page); await use(page); await page.close(); }, pipelineTriggerPage: async ({ browser }, use) => { const page = await browser.newPage(); - await pipelineTriggerUser.login(page); + await pipelineTriggerUser.signIn(page); await use(page); await page.close(); }, pipelineEditPage: async ({ browser }, use) => { const page = await browser.newPage(); - await pipelineEditUser.login(page); + await pipelineEditUser.signIn(page); await use(page); await page.close(); }, diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Flow/Tour.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Flow/Tour.spec.ts index 37af9cb77b0d..9e85eecdf3f9 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Flow/Tour.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Flow/Tour.spec.ts @@ -176,6 +176,7 @@ test.describe( test.beforeEach('Visit entity details page', async ({ page }) => { // Tour is entered from the welcome banner, so this suite must NOT suppress // it. The other tour tests already guard against the banner if present. + // eslint-disable-next-line openmetadata-playwright/prefer-role-page-fixture -- the tour is entered from the welcome banner that a real sign-in renders await user.login(page, undefined, undefined, { suppressWelcomeScreen: false, }); diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/DataContracts.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/DataContracts.spec.ts index 189d609d81ce..98bed3a2b2a1 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/DataContracts.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/DataContracts.spec.ts @@ -2283,7 +2283,7 @@ entitiesWithDataContracts.forEach((EntityClass) => { const testPersona = base.extend<{ page: Page }>({ page: async ({ browser }, use) => { const adminPage = await browser.newPage(); - await adminUser.login(adminPage); + await adminUser.signIn(adminPage); await use(adminPage); await adminPage.close(); }, diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/DataMarketplacePermissions.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/DataMarketplacePermissions.spec.ts index f35f1a159f08..2bb385d27be0 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/DataMarketplacePermissions.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/DataMarketplacePermissions.spec.ts @@ -39,7 +39,7 @@ const test = base.extend<{ }, consumerPage: async ({ browser }, use) => { const page = await browser.newPage(); - await consumerUser.login(page); + await consumerUser.signIn(page); await use(page); await page.close(); }, diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/DataProducts.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/DataProducts.spec.ts index 074a9261e4be..d94d60460d12 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/DataProducts.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/DataProducts.spec.ts @@ -63,7 +63,7 @@ const test = base.extend<{ }, userPage: async ({ browser }, setPage) => { const page = await browser.newPage(); - await user.login(page); + await user.signIn(page); await setPage(page); await page.close(); }, diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/DescriptionVisibility.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/DescriptionVisibility.spec.ts index 1d855e0c0a9b..99e4c8468802 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/DescriptionVisibility.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/DescriptionVisibility.spec.ts @@ -336,7 +336,7 @@ test.describe( }) => { // Admin: Customize Table detail page for persona const adminPage = await browser.newPage(); - await adminUser.login(adminPage); + await adminUser.signIn(adminPage); await redirectToHomePage(adminPage); const personaListResponse = @@ -402,7 +402,7 @@ test.describe( // User: Validate long description in custom tab const userPage = await browser.newPage(); - await regularUser.login(userPage); + await regularUser.signIn(userPage); await redirectToHomePage(userPage); await table.visitEntityPage(userPage); diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/Domains.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/Domains.spec.ts index d0632c0d9e14..c9f7518ed725 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/Domains.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/Domains.spec.ts @@ -111,7 +111,7 @@ const test = base.extend<{ }, userPage: async ({ browser }, setPage) => { const page = await browser.newPage(); - await user.login(page); + await user.signIn(page); await setPage(page); await page.close(); }, diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/Entity.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/Entity.spec.ts index b77653f88f98..b4a0ba4709d7 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/Entity.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/Entity.spec.ts @@ -96,13 +96,13 @@ const test = base.extend<{ }>({ page: async ({ browser }, use) => { const adminPage = await browser.newPage({ storageState: undefined }); - await adminUser.login(adminPage); + await adminUser.signIn(adminPage); await use(adminPage); await adminPage.close(); }, dataConsumerPage: async ({ browser }, use) => { const page = await browser.newPage({ storageState: undefined }); - await dataConsumerUser.login(page); + await dataConsumerUser.signIn(page); await use(page); await page.close(); }, diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/EntityDataConsumer.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/EntityDataConsumer.spec.ts index 76e6600d25ca..cfdbff3030e8 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/EntityDataConsumer.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/EntityDataConsumer.spec.ts @@ -61,7 +61,7 @@ const test = base.extend<{ }>({ page: async ({ browser }, use) => { const page = await browser.newPage(); - await user.login(page); + await user.signIn(page); await use(page); await page.close(); }, diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/EntityDataSteward.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/EntityDataSteward.spec.ts index 18e1dc79644c..e8a06eadfe5a 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/EntityDataSteward.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/EntityDataSteward.spec.ts @@ -60,7 +60,7 @@ const test = base.extend<{ }>({ page: async ({ browser }, use) => { const page = await browser.newPage(); - await user.login(page); + await user.signIn(page); await use(page); await page.close(); }, diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/EntityHeaderBreadcrumb.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/EntityHeaderBreadcrumb.spec.ts index e8c8e1c0c6f3..bcaef5b7d7bd 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/EntityHeaderBreadcrumb.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/EntityHeaderBreadcrumb.spec.ts @@ -64,7 +64,7 @@ const adminUser = new UserClass(); const test = base.extend<{ page: Page }>({ page: async ({ browser }, use) => { const adminPage = await browser.newPage(); - await adminUser.login(adminPage); + await adminUser.signIn(adminPage); await use(adminPage); await adminPage.close(); }, diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/ExplorePageRightPanel.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/ExplorePageRightPanel.spec.ts index 027db837f5b7..438a56c8a0e8 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/ExplorePageRightPanel.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/ExplorePageRightPanel.spec.ts @@ -2297,7 +2297,7 @@ test.describe('Right Panel Test Suite', () => { const page = await context.newPage(); try { - await viewBasicUser.login(page); + await viewBasicUser.signIn(page); await viewBasicTable.visitEntityPage(page); const panelContainer = await openColumnDetailPanel({ @@ -2338,7 +2338,7 @@ test.describe('Right Panel Test Suite', () => { }); try { - await viewBasicUser.login(page); + await viewBasicUser.signIn(page); await viewBasicTable.visitEntityPage(page); await openColumnDetailPanel({ diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/Glossary.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/Glossary.spec.ts index 57ae6ce54760..0af5f7fe0e35 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/Glossary.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/Glossary.spec.ts @@ -1398,7 +1398,7 @@ test.describe('Glossary tests', () => { // Login on this page (WebSocket is fully mocked, no real server connection) const admin = new AdminClass(); - await admin.login(page); + await admin.signIn(page); await redirectToHomePage(page); const token = await getToken(page); const apiContext = await getAuthContext(token); @@ -1487,7 +1487,7 @@ test.describe('Glossary tests', () => { // Login on this page const admin = new AdminClass(); - await admin.login(page); + await admin.signIn(page); await redirectToHomePage(page); const token = await getToken(page); const apiContext = await getAuthContext(token); diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/GlossaryImportExport.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/GlossaryImportExport.spec.ts index c6b758f56efd..11ae390004ed 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/GlossaryImportExport.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/GlossaryImportExport.spec.ts @@ -134,7 +134,7 @@ test.describe('Glossary Bulk Import Export', { tag: '@import-export' }, () => { }); test.beforeEach(async ({ page }) => { - await glossaryExportUser.login(page); + await glossaryExportUser.signIn(page); await redirectToHomePage(page); }); diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/LearningResources.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/LearningResources.spec.ts index cf8a94f36ebc..fa9d2e9e77d4 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/LearningResources.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/LearningResources.spec.ts @@ -34,7 +34,7 @@ async function goToLearningResourcesAdmin(page: Page) { await page.waitForLoadState('domcontentloaded'); if (page.url().includes('/signin')) { - await admin.login(page); + await admin.signIn(page); } await page.waitForURL( diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/Login.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/Login.spec.ts index e227d3fd39a2..c92959370e26 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/Login.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/Login.spec.ts @@ -154,6 +154,7 @@ test.describe( try { await nonAsciiUser.create(apiContext); + // eslint-disable-next-line openmetadata-playwright/prefer-role-page-fixture -- this spec is testing the sign-in form itself, here that it accepts a non-ASCII credential await nonAsciiUser.login(page); await expect(page).toHaveURL( @@ -227,6 +228,7 @@ test.describe( await test.step('Login and wait for refresh call is made', async () => { // User login + // eslint-disable-next-line openmetadata-playwright/prefer-role-page-fixture -- this spec is testing the sign-in form and session refresh, so the form is the behaviour under test await testUser.login(page1); await redirectToHomePage(page1); await waitForAllLoadersToDisappear(page1); @@ -274,6 +276,7 @@ test.describe( const page2 = await browserContext.newPage(); const admin = new AdminClass(); + // eslint-disable-next-line openmetadata-playwright/prefer-role-page-fixture -- this spec is testing the sign-in form and session refresh, so the form is the behaviour under test await admin.login(page1); await redirectToHomePage(page1); diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/ODCSImportExportPermissions.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/ODCSImportExportPermissions.spec.ts index 437a30a7110a..0cd1741bc0a7 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/ODCSImportExportPermissions.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/ODCSImportExportPermissions.spec.ts @@ -76,13 +76,13 @@ const test = base.extend<{ }>({ dataContractEditPage: async ({ browser }, use) => { const page = await browser.newPage(); - await dataContractEditUser.login(page); + await dataContractEditUser.signIn(page); await use(page); await page.close(); }, dataContractViewPage: async ({ browser }, use) => { const page = await browser.newPage(); - await dataContractViewUser.login(page); + await dataContractViewUser.signIn(page); await use(page); await page.close(); }, diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/ProfilerConfigurationPage.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/ProfilerConfigurationPage.spec.ts index 5b196c119da1..4039eeb3e9a4 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/ProfilerConfigurationPage.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/ProfilerConfigurationPage.spec.ts @@ -34,13 +34,13 @@ const admin = new AdminClass(); const test = base.extend<{ adminPage: Page; userPage: Page }>({ adminPage: async ({ browser }, use) => { const page = await browser.newPage(); - await admin.login(page); + await admin.signIn(page); await use(page); await page.close(); }, userPage: async ({ browser }, use) => { const page = await browser.newPage(); - await user.login(page); + await user.signIn(page); await use(page); await page.close(); }, diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/SearchSettings.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/SearchSettings.spec.ts index bcfb38ab93d0..e8e1be215150 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/SearchSettings.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/SearchSettings.spec.ts @@ -39,7 +39,7 @@ let adminUser: AdminClass; const test = base.extend<{ page: Page }>({ page: async ({ browser }, use) => { const adminPage = await browser.newPage(); - await adminUser.login(adminPage); + await adminUser.signIn(adminPage); await use(adminPage); await adminPage.close(); }, diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/ServiceEntity.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/ServiceEntity.spec.ts index 2bad63f56756..2a5628f9d093 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/ServiceEntity.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/ServiceEntity.spec.ts @@ -67,7 +67,7 @@ const adminUser = new UserClass(); const test = base.extend<{ page: Page }>({ page: async ({ browser }, use) => { const adminPage = await browser.newPage(); - await adminUser.login(adminPage); + await adminUser.signIn(adminPage); await use(adminPage); await adminPage.close(); }, diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/Tag.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/Tag.spec.ts index 8e1f2eaad738..2f259265d60e 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/Tag.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/Tag.spec.ts @@ -56,25 +56,25 @@ const test = base.extend<{ }>({ adminPage: async ({ browser }, use) => { const adminPage = await browser.newPage(); - await adminUser.login(adminPage); + await adminUser.signIn(adminPage); await use(adminPage); await adminPage.close(); }, dataConsumerPage: async ({ browser }, use) => { const page = await browser.newPage(); - await dataConsumerUser.login(page); + await dataConsumerUser.signIn(page); await use(page); await page.close(); }, dataStewardPage: async ({ browser }, use) => { const page = await browser.newPage(); - await dataStewardUser.login(page); + await dataStewardUser.signIn(page); await use(page); await page.close(); }, limitedAccessPage: async ({ browser }, use) => { const page = await browser.newPage(); - await limitedAccessUser.login(page); + await limitedAccessUser.signIn(page); await use(page); await page.close(); }, diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/Teams.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/Teams.spec.ts index 55a7d96d8183..2ad849eabc7f 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/Teams.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/Teams.spec.ts @@ -134,25 +134,25 @@ const test = base.extend<{ }>({ editOnlyUserPage: async ({ browser }, use) => { const page = await browser.newPage(); - await editOnlyUser.login(page); + await editOnlyUser.signIn(page); await use(page); await page.close(); }, dataConsumerPage: async ({ browser }, use) => { const page = await browser.newPage(); - await dataConsumerUser.login(page); + await dataConsumerUser.signIn(page); await use(page); await page.close(); }, ownerUserPage: async ({ browser }, use) => { const page = await browser.newPage(); - await ownerUser.login(page); + await ownerUser.signIn(page); await use(page); await page.close(); }, scopedUserPage: async ({ browser }, use) => { const page = await browser.newPage(); - await user.login(page); + await user.signIn(page); await use(page); await page.close(); }, diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/UserDetails.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/UserDetails.spec.ts index 3ea9e00d3df4..d8a820a8cc8f 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/UserDetails.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/UserDetails.spec.ts @@ -44,13 +44,13 @@ const test = base.extend<{ }>({ adminPage: async ({ browser }, use) => { const page = await browser.newPage(); - await admin.login(page); + await admin.signIn(page); await use(page); await page.close(); }, userPage: async ({ browser }, use) => { const page = await browser.newPage(); - await user1.login(page); + await user1.signIn(page); await use(page); await page.close(); }, diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/Users.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/Users.spec.ts index 285dd18d9366..3a9f3f39d1bd 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/Users.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/Users.spec.ts @@ -122,19 +122,19 @@ const test = base.extend<{ }>({ adminPage: async ({ browser }, use) => { const adminPage = await browser.newPage(); - await adminUser.login(adminPage); + await adminUser.signIn(adminPage); await use(adminPage); await adminPage.close(); }, dataConsumerPage: async ({ browser }, use) => { const page = await browser.newPage(); - await dataConsumerUser.login(page); + await dataConsumerUser.signIn(page); await use(page); await page.close(); }, dataStewardPage: async ({ browser }, use) => { const page = await browser.newPage(); - await dataStewardUser.login(page); + await dataStewardUser.signIn(page); await use(page); await page.close(); }, @@ -501,7 +501,7 @@ test.describe('User with Data Consumer Roles', () => { await dataConsumerUser.logout(dataConsumerPage); - await dataConsumerUser.login( + await dataConsumerUser.signIn( dataConsumerPage, dataConsumerUser.data.email, updatedUserDetails.newPassword @@ -580,7 +580,7 @@ test.describe('User with Data Steward Roles', () => { await dataStewardUser.logout(dataStewardPage); - await dataStewardUser.login( + await dataStewardUser.signIn( dataStewardPage, dataStewardUser.data.email, updatedUserDetails.newPassword diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/VersionPages/EntityVersionPages.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/VersionPages/EntityVersionPages.spec.ts index 6f90381dd3ad..e504981d7052 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/VersionPages/EntityVersionPages.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/VersionPages/EntityVersionPages.spec.ts @@ -66,7 +66,7 @@ let entities: InstanceType<(typeof entityClasses)[number]>[]; const test = base.extend<{ page: Page }>({ page: async ({ browser }, use) => { const adminPage = await browser.newPage(); - await adminUser.login(adminPage); + await adminUser.signIn(adminPage); await use(adminPage); await adminPage.close(); }, diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/VersionPages/ServiceEntityVersionPage.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/VersionPages/ServiceEntityVersionPage.spec.ts index cbaae144a6f2..42f94bba7f37 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/VersionPages/ServiceEntityVersionPage.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/VersionPages/ServiceEntityVersionPage.spec.ts @@ -86,7 +86,7 @@ const adminUser = new UserClass(); const test = base.extend<{ page: Page }>({ page: async ({ browser }, use) => { const adminPage = await browser.newPage(); - await adminUser.login(adminPage); + await adminUser.signIn(adminPage); await use(adminPage); await adminPage.close(); }, diff --git a/openmetadata-ui/src/main/resources/ui/playwright/utils/ContextCenterUtil.ts b/openmetadata-ui/src/main/resources/ui/playwright/utils/ContextCenterUtil.ts index 9e1a1393cf2d..d01cb593d43b 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/utils/ContextCenterUtil.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/utils/ContextCenterUtil.ts @@ -460,7 +460,7 @@ export const loginAsUser = async ( user: UserClass ): Promise => { const page = await browser.newPage(); - await user.login(page); + await user.signIn(page); return page; }; diff --git a/openmetadata-ui/src/main/resources/ui/playwright/utils/entityPermissionUtils.ts b/openmetadata-ui/src/main/resources/ui/playwright/utils/entityPermissionUtils.ts index 1dd101a28e00..07a82b6b2080 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/utils/entityPermissionUtils.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/utils/entityPermissionUtils.ts @@ -699,7 +699,7 @@ export const createCustomPropertyForEntity = async ( adminUser: UserClass ) => { const page = await browser.newPage(); - await adminUser.login(page); + await adminUser.signIn(page); // Map entity types to their correct API types (same as used in working tests) const entityTypeMapping: Record = { From c150335d6332a09645d486aaa4838ffb969402d2 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 11 Sep 2026 14:14:28 +0000 Subject: [PATCH 2/2] chore(playwright): auto-refresh impact-map.generated.json --- .github/playwright/impact-map.generated.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/playwright/impact-map.generated.json b/.github/playwright/impact-map.generated.json index 616e62e725d3..70dad99ca7ee 100644 --- a/.github/playwright/impact-map.generated.json +++ b/.github/playwright/impact-map.generated.json @@ -2160,6 +2160,7 @@ "playwright/e2e/Features/PersonaAIContext.spec.ts", "playwright/e2e/Features/PersonaAIContextPermissions.spec.ts", "playwright/e2e/Features/PersonaAIContextRuleCardAndStates.spec.ts", + "playwright/e2e/Features/RoleFixtureSessions.spec.ts", "playwright/e2e/Flow/PersonaFlow.spec.ts", "playwright/e2e/Pages/DomainDataProductsRightPanel.spec.ts", "playwright/e2e/Pages/ExplorePageRightPanel.spec.ts", @@ -4434,6 +4435,7 @@ "openmetadata-ui/src/main/resources/ui/playwright/utils/tokenStorage.ts" ], "specs": [ + "playwright/e2e/Features/TokenStorage.spec.ts", "playwright/e2e/Flow/IngestionBot.spec.ts" ] }, @@ -7003,6 +7005,7 @@ "playwright/e2e/Features/AppMode/AppModeResolver.spec.ts", "playwright/e2e/Features/CustomizeNavigationNewItems.spec.ts", "playwright/e2e/Features/DataQuality/IncidentManagerLocaleLayout.spec.ts", + "playwright/e2e/Features/RoleFixtureSessions.spec.ts", "playwright/e2e/Features/SettingsNavigationPage.spec.ts", "playwright/e2e/Features/Workflows/WorkflowOssRestrictions.spec.ts" ] @@ -7768,6 +7771,7 @@ "playwright/e2e/Features/CustomizeNavigationNewItems.spec.ts", "playwright/e2e/Features/LanguageOverride.spec.ts", "playwright/e2e/Features/PersonaSessionPersistence.spec.ts", + "playwright/e2e/Features/RoleFixtureSessions.spec.ts", "playwright/e2e/Features/SettingsNavigationPage.spec.ts", "playwright/e2e/Flow/IngestionBot.spec.ts", "playwright/e2e/Flow/PersonaDeletionUserProfile.spec.ts", @@ -9884,6 +9888,7 @@ "playwright/e2e/Pages/DataInsightReportApplication.spec.ts", "playwright/e2e/Pages/DataInsightSettings.spec.ts", "playwright/e2e/Pages/DataMarketplace.spec.ts", + "playwright/e2e/Pages/DataMarketplaceAnnouncements.spec.ts", "playwright/e2e/Pages/DataMarketplacePermissions.spec.ts", "playwright/e2e/Pages/DataProductAndSubdomains.spec.ts", "playwright/e2e/Pages/DataProductCertificationFilter.spec.ts",