From 803960e0924020a98177fcfe3bcf7af8276ba2bd Mon Sep 17 00:00:00 2001 From: oleg Date: Wed, 8 Jan 2025 09:36:44 +0100 Subject: [PATCH] test(editor): Add deprecation warnings for e2e page classes (no-changelog) (#12489) --- cypress/composables/workflow.ts | 4 ++++ cypress/e2e/27-cloud.cy.ts | 6 ++---- cypress/e2e/30-editor-after-route-changes.cy.ts | 12 ++++-------- cypress/e2e/35-admin-user-smoke-test.cy.ts | 12 +++++------- cypress/pages/bannerStack.ts | 9 --------- cypress/pages/base.ts | 8 ++++++++ cypress/pages/credentials.ts | 8 ++++++++ cypress/pages/features/ai-assistant.ts | 8 ++++++++ cypress/pages/features/node-creator.ts | 8 ++++++++ cypress/pages/index.ts | 2 -- cypress/pages/mfa-login.ts | 8 ++++++++ cypress/pages/modals/change-password-modal.ts | 8 ++++++++ cypress/pages/modals/credentials-modal.ts | 8 ++++++++ cypress/pages/modals/message-box.ts | 8 ++++++++ cypress/pages/modals/mfa-setup-modal.ts | 8 ++++++++ cypress/pages/modals/workflow-sharing-modal.ts | 8 ++++++++ cypress/pages/ndv.ts | 8 ++++++++ cypress/pages/settings-log-streaming.ts | 8 ++++++++ cypress/pages/settings-personal.ts | 8 ++++++++ cypress/pages/settings-usage.ts | 9 --------- cypress/pages/settings-users.ts | 8 ++++++++ cypress/pages/settings.ts | 11 ----------- cypress/pages/sidebar/main-sidebar.ts | 8 ++++++++ cypress/pages/sidebar/settings-sidebar.ts | 8 ++++++++ cypress/pages/signin.ts | 8 ++++++++ cypress/pages/templates.ts | 8 ++++++++ cypress/pages/variables.ts | 8 ++++++++ cypress/pages/workerView.ts | 8 ++++++++ cypress/pages/workflow-executions-tab.ts | 8 ++++++++ cypress/pages/workflow-history.ts | 7 ------- cypress/pages/workflow.ts | 9 +++++++++ cypress/pages/workflows.ts | 8 ++++++++ 32 files changed, 200 insertions(+), 57 deletions(-) delete mode 100644 cypress/pages/bannerStack.ts delete mode 100644 cypress/pages/settings-usage.ts delete mode 100644 cypress/pages/settings.ts delete mode 100644 cypress/pages/workflow-history.ts diff --git a/cypress/composables/workflow.ts b/cypress/composables/workflow.ts index 3289d43a79..e8e402dd5f 100644 --- a/cypress/composables/workflow.ts +++ b/cypress/composables/workflow.ts @@ -52,6 +52,10 @@ export function getNodeByName(name: string) { ); } +export function getWorkflowHistoryCloseButton() { + return cy.getByTestId('workflow-history-close-button'); +} + export function disableNode(name: string) { const target = getNodeByName(name); target.rightclick(name ? 'center' : 'topLeft', { force: true }); diff --git a/cypress/e2e/27-cloud.cy.ts b/cypress/e2e/27-cloud.cy.ts index 131c549963..bcf9750ecb 100644 --- a/cypress/e2e/27-cloud.cy.ts +++ b/cypress/e2e/27-cloud.cy.ts @@ -1,6 +1,5 @@ import planData from '../fixtures/Plan_data_opt_in_trial.json'; import { - BannerStack, MainSidebar, WorkflowPage, visitPublicApiPage, @@ -11,7 +10,6 @@ import { const NUMBER_OF_AI_CREDITS = 100; const mainSidebar = new MainSidebar(); -const bannerStack = new BannerStack(); const workflowPage = new WorkflowPage(); const workflowsPage = new WorkflowsPage(); @@ -48,11 +46,11 @@ describe('Cloud', () => { it('should render trial banner for opt-in cloud user', () => { visitWorkflowPage(); - bannerStack.getters.banner().should('be.visible'); + cy.getByTestId('banner-stack').should('be.visible'); mainSidebar.actions.signout(); - bannerStack.getters.banner().should('not.be.visible'); + cy.getByTestId('banner-stack').should('not.be.visible'); }); }); diff --git a/cypress/e2e/30-editor-after-route-changes.cy.ts b/cypress/e2e/30-editor-after-route-changes.cy.ts index f0381a32a2..307c4a9537 100644 --- a/cypress/e2e/30-editor-after-route-changes.cy.ts +++ b/cypress/e2e/30-editor-after-route-changes.cy.ts @@ -1,18 +1,14 @@ +import { getWorkflowHistoryCloseButton } from '../composables/workflow'; import { CODE_NODE_NAME, EDIT_FIELDS_SET_NODE_NAME, IF_NODE_NAME, SCHEDULE_TRIGGER_NODE_NAME, } from '../constants'; -import { - WorkflowExecutionsTab, - WorkflowPage as WorkflowPageClass, - WorkflowHistoryPage, -} from '../pages'; +import { WorkflowExecutionsTab, WorkflowPage as WorkflowPageClass } from '../pages'; const workflowPage = new WorkflowPageClass(); const executionsTab = new WorkflowExecutionsTab(); -const workflowHistoryPage = new WorkflowHistoryPage(); const createNewWorkflowAndActivate = () => { workflowPage.actions.visit(); @@ -92,7 +88,7 @@ const switchBetweenEditorAndHistory = () => { cy.wait(['@getVersion']); cy.intercept('GET', '/rest/workflows/*').as('workflowGet'); - workflowHistoryPage.getters.workflowHistoryCloseButton().click(); + getWorkflowHistoryCloseButton().click(); cy.wait(['@workflowGet']); cy.wait(1000); @@ -168,7 +164,7 @@ describe('Editor actions should work', () => { cy.wait(['@getVersion']); cy.intercept('GET', '/rest/workflows/*').as('workflowGet'); - workflowHistoryPage.getters.workflowHistoryCloseButton().click(); + getWorkflowHistoryCloseButton().click(); cy.wait(['@workflowGet']); cy.wait(1000); diff --git a/cypress/e2e/35-admin-user-smoke-test.cy.ts b/cypress/e2e/35-admin-user-smoke-test.cy.ts index c8585118e7..6bb31ae1c2 100644 --- a/cypress/e2e/35-admin-user-smoke-test.cy.ts +++ b/cypress/e2e/35-admin-user-smoke-test.cy.ts @@ -1,22 +1,20 @@ -import { SettingsPage } from '../pages/settings'; - -const settingsPage = new SettingsPage(); +const url = '/settings'; describe('Admin user', { disableAutoLogin: true }, () => { it('should see same Settings sub menu items as instance owner', () => { cy.signinAsOwner(); - cy.visit(settingsPage.url); + cy.visit(url); let ownerMenuItems = 0; - settingsPage.getters.menuItems().then(($el) => { + cy.getByTestId('menu-item').then(($el) => { ownerMenuItems = $el.length; }); cy.signout(); cy.signinAsAdmin(); - cy.visit(settingsPage.url); + cy.visit(url); - settingsPage.getters.menuItems().should('have.length', ownerMenuItems); + cy.getByTestId('menu-item').should('have.length', ownerMenuItems); }); }); diff --git a/cypress/pages/bannerStack.ts b/cypress/pages/bannerStack.ts deleted file mode 100644 index c4936891ae..0000000000 --- a/cypress/pages/bannerStack.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { BasePage } from './base'; - -export class BannerStack extends BasePage { - getters = { - banner: () => cy.getByTestId('banner-stack'), - }; - - actions = {}; -} diff --git a/cypress/pages/base.ts b/cypress/pages/base.ts index abd7a210a8..dbcb65e5bd 100644 --- a/cypress/pages/base.ts +++ b/cypress/pages/base.ts @@ -1,5 +1,13 @@ import type { IE2ETestPage } from '../types'; +/** + * @deprecated Use functional composables from @composables instead. + * If a composable doesn't exist for your use case, please create a new one in: + * cypress/composables + * + * This class-based approach is being phased out in favor of more modular functional composables. + * Each getter and action in this class should be moved to individual composable functions. + */ export class BasePage implements IE2ETestPage { getters = {}; diff --git a/cypress/pages/credentials.ts b/cypress/pages/credentials.ts index 08b2fee9c7..b7b68504f9 100644 --- a/cypress/pages/credentials.ts +++ b/cypress/pages/credentials.ts @@ -1,5 +1,13 @@ import { BasePage } from './base'; +/** + * @deprecated Use functional composables from @composables instead. + * If a composable doesn't exist for your use case, please create a new one in: + * cypress/composables + * + * This class-based approach is being phased out in favor of more modular functional composables. + * Each getter and action in this class should be moved to individual composable functions. + */ export class CredentialsPage extends BasePage { url = '/home/credentials'; diff --git a/cypress/pages/features/ai-assistant.ts b/cypress/pages/features/ai-assistant.ts index 6ff48851f3..f2e747817b 100644 --- a/cypress/pages/features/ai-assistant.ts +++ b/cypress/pages/features/ai-assistant.ts @@ -8,6 +8,14 @@ const AI_ASSISTANT_FEATURE = { disabledFor: 'control', }; +/** + * @deprecated Use functional composables from @composables instead. + * If a composable doesn't exist for your use case, please create a new one in: + * cypress/composables + * + * This class-based approach is being phased out in favor of more modular functional composables. + * Each getter and action in this class should be moved to individual composable functions. + */ export class AIAssistant extends BasePage { url = '/workflows/new'; diff --git a/cypress/pages/features/node-creator.ts b/cypress/pages/features/node-creator.ts index a0d3995160..38c932468f 100644 --- a/cypress/pages/features/node-creator.ts +++ b/cypress/pages/features/node-creator.ts @@ -1,5 +1,13 @@ import { BasePage } from '../base'; +/** + * @deprecated Use functional composables from @composables instead. + * If a composable doesn't exist for your use case, please create a new one in: + * cypress/composables + * + * This class-based approach is being phased out in favor of more modular functional composables. + * Each getter and action in this class should be moved to individual composable functions. + */ export class NodeCreator extends BasePage { url = '/workflow/new'; diff --git a/cypress/pages/index.ts b/cypress/pages/index.ts index 39c9be3b56..93dd165621 100644 --- a/cypress/pages/index.ts +++ b/cypress/pages/index.ts @@ -7,9 +7,7 @@ export * from './settings-users'; export * from './settings-log-streaming'; export * from './sidebar'; export * from './ndv'; -export * from './bannerStack'; export * from './workflow-executions-tab'; export * from './signin'; -export * from './workflow-history'; export * from './workerView'; export * from './settings-public-api'; diff --git a/cypress/pages/mfa-login.ts b/cypress/pages/mfa-login.ts index 7e679804ff..884be7d75d 100644 --- a/cypress/pages/mfa-login.ts +++ b/cypress/pages/mfa-login.ts @@ -3,6 +3,14 @@ import { SigninPage } from './signin'; import { WorkflowsPage } from './workflows'; import { N8N_AUTH_COOKIE } from '../constants'; +/** + * @deprecated Use functional composables from @composables instead. + * If a composable doesn't exist for your use case, please create a new one in: + * cypress/composables + * + * This class-based approach is being phased out in favor of more modular functional composables. + * Each getter and action in this class should be moved to individual composable functions. + */ export class MfaLoginPage extends BasePage { url = '/mfa'; diff --git a/cypress/pages/modals/change-password-modal.ts b/cypress/pages/modals/change-password-modal.ts index 3e9ebc8697..28c4d01d86 100644 --- a/cypress/pages/modals/change-password-modal.ts +++ b/cypress/pages/modals/change-password-modal.ts @@ -1,5 +1,13 @@ import { BasePage } from './../base'; +/** + * @deprecated Use functional composables from @composables instead. + * If a composable doesn't exist for your use case, please create a new one in: + * cypress/composables + * + * This class-based approach is being phased out in favor of more modular functional composables. + * Each getter and action in this class should be moved to individual composable functions. + */ export class ChangePasswordModal extends BasePage { getters = { modalContainer: () => cy.getByTestId('changePassword-modal').last(), diff --git a/cypress/pages/modals/credentials-modal.ts b/cypress/pages/modals/credentials-modal.ts index ac8e966bc0..592a396161 100644 --- a/cypress/pages/modals/credentials-modal.ts +++ b/cypress/pages/modals/credentials-modal.ts @@ -2,6 +2,14 @@ import { getCredentialSaveButton, saveCredential } from '../../composables/modal import { getVisibleSelect } from '../../utils'; import { BasePage } from '../base'; +/** + * @deprecated Use functional composables from @composables instead. + * If a composable doesn't exist for your use case, please create a new one in: + * cypress/composables + * + * This class-based approach is being phased out in favor of more modular functional composables. + * Each getter and action in this class should be moved to individual composable functions. + */ export class CredentialsModal extends BasePage { getters = { newCredentialModal: () => cy.getByTestId('selectCredential-modal', { timeout: 5000 }), diff --git a/cypress/pages/modals/message-box.ts b/cypress/pages/modals/message-box.ts index a40c2d1a88..42f83d9a15 100644 --- a/cypress/pages/modals/message-box.ts +++ b/cypress/pages/modals/message-box.ts @@ -1,5 +1,13 @@ import { BasePage } from '../base'; +/** + * @deprecated Use functional composables from @composables instead. + * If a composable doesn't exist for your use case, please create a new one in: + * cypress/composables + * + * This class-based approach is being phased out in favor of more modular functional composables. + * Each getter and action in this class should be moved to individual composable functions. + */ export class MessageBox extends BasePage { getters = { modal: () => cy.get('.el-message-box', { withinSubject: null }), diff --git a/cypress/pages/modals/mfa-setup-modal.ts b/cypress/pages/modals/mfa-setup-modal.ts index d127731be2..baa37f5f3a 100644 --- a/cypress/pages/modals/mfa-setup-modal.ts +++ b/cypress/pages/modals/mfa-setup-modal.ts @@ -1,5 +1,13 @@ import { BasePage } from './../base'; +/** + * @deprecated Use functional composables from @composables instead. + * If a composable doesn't exist for your use case, please create a new one in: + * cypress/composables + * + * This class-based approach is being phased out in favor of more modular functional composables. + * Each getter and action in this class should be moved to individual composable functions. + */ export class MfaSetupModal extends BasePage { getters = { modalContainer: () => cy.getByTestId('changePassword-modal').last(), diff --git a/cypress/pages/modals/workflow-sharing-modal.ts b/cypress/pages/modals/workflow-sharing-modal.ts index 02e183fc81..176cd84a7b 100644 --- a/cypress/pages/modals/workflow-sharing-modal.ts +++ b/cypress/pages/modals/workflow-sharing-modal.ts @@ -1,5 +1,13 @@ import { BasePage } from '../base'; +/** + * @deprecated Use functional composables from @composables instead. + * If a composable doesn't exist for your use case, please create a new one in: + * cypress/composables + * + * This class-based approach is being phased out in favor of more modular functional composables. + * Each getter and action in this class should be moved to individual composable functions. + */ export class WorkflowSharingModal extends BasePage { getters = { modal: () => cy.getByTestId('workflowShare-modal', { timeout: 5000 }), diff --git a/cypress/pages/ndv.ts b/cypress/pages/ndv.ts index 1926ef0ad1..91ece23122 100644 --- a/cypress/pages/ndv.ts +++ b/cypress/pages/ndv.ts @@ -1,6 +1,14 @@ import { BasePage } from './base'; import { getVisiblePopper, getVisibleSelect } from '../utils'; +/** + * @deprecated Use functional composables from @composables instead. + * If a composable doesn't exist for your use case, please create a new one in: + * cypress/composables + * + * This class-based approach is being phased out in favor of more modular functional composables. + * Each getter and action in this class should be moved to individual composable functions. + */ export class NDV extends BasePage { getters = { container: () => cy.getByTestId('ndv'), diff --git a/cypress/pages/settings-log-streaming.ts b/cypress/pages/settings-log-streaming.ts index 9063b8dc41..959b18bce5 100644 --- a/cypress/pages/settings-log-streaming.ts +++ b/cypress/pages/settings-log-streaming.ts @@ -1,6 +1,14 @@ import { BasePage } from './base'; import { getVisibleSelect } from '../utils'; +/** + * @deprecated Use functional composables from @composables instead. + * If a composable doesn't exist for your use case, please create a new one in: + * cypress/composables + * + * This class-based approach is being phased out in favor of more modular functional composables. + * Each getter and action in this class should be moved to individual composable functions. + */ export class SettingsLogStreamingPage extends BasePage { url = '/settings/log-streaming'; diff --git a/cypress/pages/settings-personal.ts b/cypress/pages/settings-personal.ts index 5602bd7e92..49c7de1283 100644 --- a/cypress/pages/settings-personal.ts +++ b/cypress/pages/settings-personal.ts @@ -7,6 +7,14 @@ import { MfaSetupModal } from './modals/mfa-setup-modal'; const changePasswordModal = new ChangePasswordModal(); const mfaSetupModal = new MfaSetupModal(); +/** + * @deprecated Use functional composables from @composables instead. + * If a composable doesn't exist for your use case, please create a new one in: + * cypress/composables + * + * This class-based approach is being phased out in favor of more modular functional composables. + * Each getter and action in this class should be moved to individual composable functions. + */ export class PersonalSettingsPage extends BasePage { url = '/settings/personal'; diff --git a/cypress/pages/settings-usage.ts b/cypress/pages/settings-usage.ts deleted file mode 100644 index 85300fe05f..0000000000 --- a/cypress/pages/settings-usage.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { BasePage } from './base'; - -export class SettingsUsagePage extends BasePage { - url = '/settings/usage'; - - getters = {}; - - actions = {}; -} diff --git a/cypress/pages/settings-users.ts b/cypress/pages/settings-users.ts index 1eaebc911a..f442377fad 100644 --- a/cypress/pages/settings-users.ts +++ b/cypress/pages/settings-users.ts @@ -9,6 +9,14 @@ const workflowsPage = new WorkflowsPage(); const mainSidebar = new MainSidebar(); const settingsSidebar = new SettingsSidebar(); +/** + * @deprecated Use functional composables from @composables instead. + * If a composable doesn't exist for your use case, please create a new one in: + * cypress/composables + * + * This class-based approach is being phased out in favor of more modular functional composables. + * Each getter and action in this class should be moved to individual composable functions. + */ export class SettingsUsersPage extends BasePage { url = '/settings/users'; diff --git a/cypress/pages/settings.ts b/cypress/pages/settings.ts deleted file mode 100644 index 74c3b0fe76..0000000000 --- a/cypress/pages/settings.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { BasePage } from './base'; - -export class SettingsPage extends BasePage { - url = '/settings'; - - getters = { - menuItems: () => cy.getByTestId('menu-item'), - }; - - actions = {}; -} diff --git a/cypress/pages/sidebar/main-sidebar.ts b/cypress/pages/sidebar/main-sidebar.ts index 4266b93688..7824a6bebb 100644 --- a/cypress/pages/sidebar/main-sidebar.ts +++ b/cypress/pages/sidebar/main-sidebar.ts @@ -1,6 +1,14 @@ import { BasePage } from '../base'; import { WorkflowsPage } from '../workflows'; +/** + * @deprecated Use functional composables from @composables instead. + * If a composable doesn't exist for your use case, please create a new one in: + * cypress/composables + * + * This class-based approach is being phased out in favor of more modular functional composables. + * Each getter and action in this class should be moved to individual composable functions. + */ export class MainSidebar extends BasePage { getters = { menuItem: (id: string) => cy.getByTestId('menu-item').get('#' + id), diff --git a/cypress/pages/sidebar/settings-sidebar.ts b/cypress/pages/sidebar/settings-sidebar.ts index 17d43b65e7..17bf5d10b7 100644 --- a/cypress/pages/sidebar/settings-sidebar.ts +++ b/cypress/pages/sidebar/settings-sidebar.ts @@ -1,5 +1,13 @@ import { BasePage } from '../base'; +/** + * @deprecated Use functional composables from @composables instead. + * If a composable doesn't exist for your use case, please create a new one in: + * cypress/composables + * + * This class-based approach is being phased out in favor of more modular functional composables. + * Each getter and action in this class should be moved to individual composable functions. + */ export class SettingsSidebar extends BasePage { getters = { menuItem: (id: string) => cy.getByTestId('menu-item').get('#' + id), diff --git a/cypress/pages/signin.ts b/cypress/pages/signin.ts index a97fe4888e..bc0d7196a3 100644 --- a/cypress/pages/signin.ts +++ b/cypress/pages/signin.ts @@ -2,6 +2,14 @@ import { BasePage } from './base'; import { WorkflowsPage } from './workflows'; import { N8N_AUTH_COOKIE } from '../constants'; +/** + * @deprecated Use functional composables from @composables instead. + * If a composable doesn't exist for your use case, please create a new one in: + * cypress/composables + * + * This class-based approach is being phased out in favor of more modular functional composables. + * Each getter and action in this class should be moved to individual composable functions. + */ export class SigninPage extends BasePage { url = '/signin'; diff --git a/cypress/pages/templates.ts b/cypress/pages/templates.ts index a17da87ba2..8d8fdc15c5 100644 --- a/cypress/pages/templates.ts +++ b/cypress/pages/templates.ts @@ -1,5 +1,13 @@ import { BasePage } from './base'; +/** + * @deprecated Use functional composables from @composables instead. + * If a composable doesn't exist for your use case, please create a new one in: + * cypress/composables + * + * This class-based approach is being phased out in favor of more modular functional composables. + * Each getter and action in this class should be moved to individual composable functions. + */ export class TemplatesPage extends BasePage { url = '/templates'; diff --git a/cypress/pages/variables.ts b/cypress/pages/variables.ts index 6ac9a939b2..5fb0a64d9a 100644 --- a/cypress/pages/variables.ts +++ b/cypress/pages/variables.ts @@ -2,6 +2,14 @@ import { BasePage } from './base'; import Chainable = Cypress.Chainable; +/** + * @deprecated Use functional composables from @composables instead. + * If a composable doesn't exist for your use case, please create a new one in: + * cypress/composables + * + * This class-based approach is being phased out in favor of more modular functional composables. + * Each getter and action in this class should be moved to individual composable functions. + */ export class VariablesPage extends BasePage { url = '/variables'; diff --git a/cypress/pages/workerView.ts b/cypress/pages/workerView.ts index f442468c52..ff56ab1ec5 100644 --- a/cypress/pages/workerView.ts +++ b/cypress/pages/workerView.ts @@ -1,5 +1,13 @@ import { BasePage } from './base'; +/** + * @deprecated Use functional composables from @composables instead. + * If a composable doesn't exist for your use case, please create a new one in: + * cypress/composables + * + * This class-based approach is being phased out in favor of more modular functional composables. + * Each getter and action in this class should be moved to individual composable functions. + */ export class WorkerViewPage extends BasePage { url = '/settings/workers'; diff --git a/cypress/pages/workflow-executions-tab.ts b/cypress/pages/workflow-executions-tab.ts index be022e6cdf..da91e99a98 100644 --- a/cypress/pages/workflow-executions-tab.ts +++ b/cypress/pages/workflow-executions-tab.ts @@ -3,6 +3,14 @@ import { WorkflowPage } from './workflow'; const workflowPage = new WorkflowPage(); +/** + * @deprecated Use functional composables from @composables instead. + * If a composable doesn't exist for your use case, please create a new one in: + * cypress/composables + * + * This class-based approach is being phased out in favor of more modular functional composables. + * Each getter and action in this class should be moved to individual composable functions. + */ export class WorkflowExecutionsTab extends BasePage { getters = { executionsTabButton: () => cy.getByTestId('radio-button-executions'), diff --git a/cypress/pages/workflow-history.ts b/cypress/pages/workflow-history.ts deleted file mode 100644 index 1b9d7328b1..0000000000 --- a/cypress/pages/workflow-history.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { BasePage } from './base'; - -export class WorkflowHistoryPage extends BasePage { - getters = { - workflowHistoryCloseButton: () => cy.getByTestId('workflow-history-close-button'), - }; -} diff --git a/cypress/pages/workflow.ts b/cypress/pages/workflow.ts index e99b01aa46..4d6702b082 100644 --- a/cypress/pages/workflow.ts +++ b/cypress/pages/workflow.ts @@ -6,6 +6,15 @@ import { getVisibleSelect } from '../utils'; import { getUniqueWorkflowName, isCanvasV2 } from '../utils/workflowUtils'; const nodeCreator = new NodeCreator(); + +/** + * @deprecated Use functional composables from @composables instead. + * If a composable doesn't exist for your use case, please create a new one in: + * cypress/composables + * + * This class-based approach is being phased out in favor of more modular functional composables. + * Each getter and action in this class should be moved to individual composable functions. + */ export class WorkflowPage extends BasePage { url = '/workflow/new'; diff --git a/cypress/pages/workflows.ts b/cypress/pages/workflows.ts index a58911a355..7441bfa256 100644 --- a/cypress/pages/workflows.ts +++ b/cypress/pages/workflows.ts @@ -1,5 +1,13 @@ import { BasePage } from './base'; +/** + * @deprecated Use functional composables from @composables instead. + * If a composable doesn't exist for your use case, please create a new one in: + * cypress/composables + * + * This class-based approach is being phased out in favor of more modular functional composables. + * Each getter and action in this class should be moved to individual composable functions. + */ export class WorkflowsPage extends BasePage { url = '/home/workflows';