diff --git a/cypress/composables/workflow.ts b/cypress/composables/workflow.ts index b3d6f20c28..8d37d5f2ad 100644 --- a/cypress/composables/workflow.ts +++ b/cypress/composables/workflow.ts @@ -1,5 +1,5 @@ -import { ROUTES } from '../constants'; import { getManualChatModal } from './modals/chat-modal'; +import { ROUTES } from '../constants'; /** * Types diff --git a/cypress/e2e/1-workflows.cy.ts b/cypress/e2e/1-workflows.cy.ts index d01f046d75..6835346012 100644 --- a/cypress/e2e/1-workflows.cy.ts +++ b/cypress/e2e/1-workflows.cy.ts @@ -1,5 +1,5 @@ -import { WorkflowsPage as WorkflowsPageClass } from '../pages/workflows'; import { WorkflowPage as WorkflowPageClass } from '../pages/workflow'; +import { WorkflowsPage as WorkflowsPageClass } from '../pages/workflows'; import { getUniqueWorkflowName } from '../utils/workflowUtils'; const WorkflowsPage = new WorkflowsPageClass(); diff --git a/cypress/e2e/10-settings-log-streaming.cy.ts b/cypress/e2e/10-settings-log-streaming.cy.ts index 9acec76f42..1954543ca0 100644 --- a/cypress/e2e/10-settings-log-streaming.cy.ts +++ b/cypress/e2e/10-settings-log-streaming.cy.ts @@ -1,6 +1,6 @@ import { SettingsLogStreamingPage } from '../pages'; -import { getVisibleModalOverlay } from '../utils/modal'; import { getVisibleDropdown } from '../utils'; +import { getVisibleModalOverlay } from '../utils/modal'; const settingsLogStreamingPage = new SettingsLogStreamingPage(); diff --git a/cypress/e2e/10-undo-redo.cy.ts b/cypress/e2e/10-undo-redo.cy.ts index 6453443376..7e3b5ef8ad 100644 --- a/cypress/e2e/10-undo-redo.cy.ts +++ b/cypress/e2e/10-undo-redo.cy.ts @@ -4,9 +4,9 @@ import { SET_NODE_NAME, EDIT_FIELDS_SET_NODE_NAME, } from '../constants'; -import { WorkflowPage as WorkflowPageClass } from '../pages/workflow'; import { MessageBox as MessageBoxClass } from '../pages/modals/message-box'; import { NDV } from '../pages/ndv'; +import { WorkflowPage as WorkflowPageClass } from '../pages/workflow'; // Suite-specific constants const CODE_NODE_NEW_NAME = 'Something else'; diff --git a/cypress/e2e/12-canvas-actions.cy.ts b/cypress/e2e/12-canvas-actions.cy.ts index 53dad1cc89..8a42521d84 100644 --- a/cypress/e2e/12-canvas-actions.cy.ts +++ b/cypress/e2e/12-canvas-actions.cy.ts @@ -1,5 +1,3 @@ -import { WorkflowPage as WorkflowPageClass } from '../pages/workflow'; -import { successToast } from '../pages/notifications'; import { MANUAL_TRIGGER_NODE_NAME, MANUAL_TRIGGER_NODE_DISPLAY_NAME, @@ -9,6 +7,8 @@ import { IF_NODE_NAME, HTTP_REQUEST_NODE_NAME, } from './../constants'; +import { successToast } from '../pages/notifications'; +import { WorkflowPage as WorkflowPageClass } from '../pages/workflow'; const WorkflowPage = new WorkflowPageClass(); describe('Canvas Actions', () => { diff --git a/cypress/e2e/12-canvas.cy.ts b/cypress/e2e/12-canvas.cy.ts index 325e509e79..4c7cccaafe 100644 --- a/cypress/e2e/12-canvas.cy.ts +++ b/cypress/e2e/12-canvas.cy.ts @@ -1,5 +1,3 @@ -import { WorkflowPage as WorkflowPageClass } from '../pages/workflow'; -import { NDV, WorkflowExecutionsTab } from '../pages'; import { MANUAL_TRIGGER_NODE_NAME, MANUAL_TRIGGER_NODE_DISPLAY_NAME, @@ -9,6 +7,8 @@ import { SWITCH_NODE_NAME, MERGE_NODE_NAME, } from './../constants'; +import { NDV, WorkflowExecutionsTab } from '../pages'; +import { WorkflowPage as WorkflowPageClass } from '../pages/workflow'; const WorkflowPage = new WorkflowPageClass(); const ExecutionsTab = new WorkflowExecutionsTab(); diff --git a/cypress/e2e/14-mapping.cy.ts b/cypress/e2e/14-mapping.cy.ts index 43103415e3..3bbbd0b293 100644 --- a/cypress/e2e/14-mapping.cy.ts +++ b/cypress/e2e/14-mapping.cy.ts @@ -1,10 +1,10 @@ -import { WorkflowPage, NDV } from '../pages'; -import { getVisibleSelect } from '../utils'; import { MANUAL_TRIGGER_NODE_NAME, MANUAL_TRIGGER_NODE_DISPLAY_NAME, SCHEDULE_TRIGGER_NODE_NAME, } from './../constants'; +import { WorkflowPage, NDV } from '../pages'; +import { getVisibleSelect } from '../utils'; const workflowPage = new WorkflowPage(); const ndv = new NDV(); diff --git a/cypress/e2e/16-webhook-node.cy.ts b/cypress/e2e/16-webhook-node.cy.ts index 791a704174..9346004388 100644 --- a/cypress/e2e/16-webhook-node.cy.ts +++ b/cypress/e2e/16-webhook-node.cy.ts @@ -1,7 +1,8 @@ import { nanoid } from 'nanoid'; + +import { BACKEND_BASE_URL, EDIT_FIELDS_SET_NODE_NAME } from '../constants'; import { WorkflowPage, NDV, CredentialsModal } from '../pages'; import { cowBase64 } from '../support/binaryTestFiles'; -import { BACKEND_BASE_URL, EDIT_FIELDS_SET_NODE_NAME } from '../constants'; import { getVisibleSelect } from '../utils'; const workflowPage = new WorkflowPage(); diff --git a/cypress/e2e/17-sharing.cy.ts b/cypress/e2e/17-sharing.cy.ts index c90a884325..e2af15f101 100644 --- a/cypress/e2e/17-sharing.cy.ts +++ b/cypress/e2e/17-sharing.cy.ts @@ -1,3 +1,4 @@ +import * as projects from '../composables/projects'; import { INSTANCE_MEMBERS, INSTANCE_OWNER, INSTANCE_ADMIN, NOTION_NODE_NAME } from '../constants'; import { CredentialsModal, @@ -8,7 +9,6 @@ import { WorkflowsPage, } from '../pages'; import { getVisibleDropdown, getVisiblePopper, getVisibleSelect } from '../utils'; -import * as projects from '../composables/projects'; /** * User U1 - Instance owner diff --git a/cypress/e2e/18-user-management.cy.ts b/cypress/e2e/18-user-management.cy.ts index b53b0fdf53..fe91a72935 100644 --- a/cypress/e2e/18-user-management.cy.ts +++ b/cypress/e2e/18-user-management.cy.ts @@ -1,8 +1,8 @@ import { INSTANCE_MEMBERS, INSTANCE_OWNER, INSTANCE_ADMIN } from '../constants'; import { MainSidebar, SettingsSidebar, SettingsUsersPage } from '../pages'; +import { errorToast, successToast } from '../pages/notifications'; import { PersonalSettingsPage } from '../pages/settings-personal'; import { getVisibleSelect } from '../utils'; -import { errorToast, successToast } from '../pages/notifications'; /** * User A - Instance owner diff --git a/cypress/e2e/19-execution.cy.ts b/cypress/e2e/19-execution.cy.ts index d2c463f1bb..d6b8d08fd5 100644 --- a/cypress/e2e/19-execution.cy.ts +++ b/cypress/e2e/19-execution.cy.ts @@ -1,5 +1,5 @@ -import { NDV, WorkflowExecutionsTab, WorkflowPage as WorkflowPageClass } from '../pages'; import { SCHEDULE_TRIGGER_NODE_NAME, EDIT_FIELDS_SET_NODE_NAME } from '../constants'; +import { NDV, WorkflowExecutionsTab, WorkflowPage as WorkflowPageClass } from '../pages'; import { clearNotifications, errorToast, successToast } from '../pages/notifications'; const workflowPage = new WorkflowPageClass(); diff --git a/cypress/e2e/2-credentials.cy.ts b/cypress/e2e/2-credentials.cy.ts index 9dbe6c6b5d..dbc613bd64 100644 --- a/cypress/e2e/2-credentials.cy.ts +++ b/cypress/e2e/2-credentials.cy.ts @@ -1,4 +1,5 @@ import { type ICredentialType } from 'n8n-workflow'; + import { AGENT_NODE_NAME, AI_TOOL_HTTP_NODE_NAME, diff --git a/cypress/e2e/20-workflow-executions.cy.ts b/cypress/e2e/20-workflow-executions.cy.ts index 5f2a260143..19256f3bf9 100644 --- a/cypress/e2e/20-workflow-executions.cy.ts +++ b/cypress/e2e/20-workflow-executions.cy.ts @@ -1,7 +1,8 @@ import type { RouteHandler } from 'cypress/types/net-stubbing'; + +import executionOutOfMemoryServerResponse from '../fixtures/responses/execution-out-of-memory-server-response.json'; import { WorkflowPage } from '../pages'; import { WorkflowExecutionsTab } from '../pages/workflow-executions-tab'; -import executionOutOfMemoryServerResponse from '../fixtures/responses/execution-out-of-memory-server-response.json'; import { getVisibleSelect } from '../utils'; const workflowPage = new WorkflowPage(); diff --git a/cypress/e2e/21-community-nodes.cy.ts b/cypress/e2e/21-community-nodes.cy.ts index bf88d3d24c..17f82ec573 100644 --- a/cypress/e2e/21-community-nodes.cy.ts +++ b/cypress/e2e/21-community-nodes.cy.ts @@ -1,11 +1,11 @@ import type { ICredentialType } from 'n8n-workflow'; -import { NodeCreator } from '../pages/features/node-creator'; -import CustomNodeFixture from '../fixtures/Custom_node.json'; -import { CredentialsModal, WorkflowPage } from '../pages'; -import CustomNodeWithN8nCredentialFixture from '../fixtures/Custom_node_n8n_credential.json'; -import CustomNodeWithCustomCredentialFixture from '../fixtures/Custom_node_custom_credential.json'; + import CustomCredential from '../fixtures/Custom_credential.json'; -import { getVisibleSelect } from '../utils'; +import CustomNodeFixture from '../fixtures/Custom_node.json'; +import CustomNodeWithCustomCredentialFixture from '../fixtures/Custom_node_custom_credential.json'; +import CustomNodeWithN8nCredentialFixture from '../fixtures/Custom_node_n8n_credential.json'; +import { CredentialsModal, WorkflowPage } from '../pages'; +import { NodeCreator } from '../pages/features/node-creator'; import { confirmCommunityNodeUninstall, confirmCommunityNodeUpdate, @@ -13,6 +13,7 @@ import { installFirstCommunityNode, visitCommunityNodesSettings, } from '../pages/settings-community-nodes'; +import { getVisibleSelect } from '../utils'; const credentialsModal = new CredentialsModal(); const nodeCreatorFeature = new NodeCreator(); diff --git a/cypress/e2e/233-AI-switch-to-logs-on-error.cy.ts b/cypress/e2e/233-AI-switch-to-logs-on-error.cy.ts index 4c733df90d..eca3af81fb 100644 --- a/cypress/e2e/233-AI-switch-to-logs-on-error.cy.ts +++ b/cypress/e2e/233-AI-switch-to-logs-on-error.cy.ts @@ -1,5 +1,18 @@ import type { ExecutionError } from 'n8n-workflow/src'; -import { NDV, WorkflowPage as WorkflowPageClass } from '../pages'; + +import { + closeManualChatModal, + getManualChatMessages, + getManualChatModalLogs, + getManualChatModalLogsEntries, + sendManualChatMessage, +} from '../composables/modals/chat-modal'; +import { setCredentialValues } from '../composables/modals/credential-modal'; +import { + clickCreateNewCredential, + clickExecuteNode, + clickGetBackToCanvas, +} from '../composables/ndv'; import { addLanguageModelNodeToParent, addMemoryNodeToParent, @@ -18,19 +31,7 @@ import { MANUAL_TRIGGER_NODE_DISPLAY_NAME, MANUAL_TRIGGER_NODE_NAME, } from '../constants'; -import { - clickCreateNewCredential, - clickExecuteNode, - clickGetBackToCanvas, -} from '../composables/ndv'; -import { setCredentialValues } from '../composables/modals/credential-modal'; -import { - closeManualChatModal, - getManualChatMessages, - getManualChatModalLogs, - getManualChatModalLogsEntries, - sendManualChatMessage, -} from '../composables/modals/chat-modal'; +import { NDV, WorkflowPage as WorkflowPageClass } from '../pages'; import { createMockNodeExecutionData, getVisibleSelect, runMockWorkflowExecution } from '../utils'; const ndv = new NDV(); diff --git a/cypress/e2e/27-cloud.cy.ts b/cypress/e2e/27-cloud.cy.ts index dd0d3b06ba..e9b814597d 100644 --- a/cypress/e2e/27-cloud.cy.ts +++ b/cypress/e2e/27-cloud.cy.ts @@ -1,3 +1,4 @@ +import planData from '../fixtures/Plan_data_opt_in_trial.json'; import { BannerStack, MainSidebar, @@ -5,7 +6,6 @@ import { visitPublicApiPage, getPublicApiUpgradeCTA, } from '../pages'; -import planData from '../fixtures/Plan_data_opt_in_trial.json'; const mainSidebar = new MainSidebar(); const bannerStack = new BannerStack(); diff --git a/cypress/e2e/27-two-factor-authentication.cy.ts b/cypress/e2e/27-two-factor-authentication.cy.ts index 21319dd79b..dc62a0c58c 100644 --- a/cypress/e2e/27-two-factor-authentication.cy.ts +++ b/cypress/e2e/27-two-factor-authentication.cy.ts @@ -1,9 +1,10 @@ import generateOTPToken from 'cypress-otp'; + +import { MainSidebar } from './../pages/sidebar/main-sidebar'; import { INSTANCE_OWNER, INSTANCE_ADMIN, BACKEND_BASE_URL } from '../constants'; import { SigninPage } from '../pages'; -import { PersonalSettingsPage } from '../pages/settings-personal'; import { MfaLoginPage } from '../pages/mfa-login'; -import { MainSidebar } from './../pages/sidebar/main-sidebar'; +import { PersonalSettingsPage } from '../pages/settings-personal'; const MFA_SECRET = 'KVKFKRCPNZQUYMLXOVYDSQKJKZDTSRLD'; diff --git a/cypress/e2e/29-templates.cy.ts b/cypress/e2e/29-templates.cy.ts index 5cc6657416..5b52889c94 100644 --- a/cypress/e2e/29-templates.cy.ts +++ b/cypress/e2e/29-templates.cy.ts @@ -1,9 +1,9 @@ +import OnboardingWorkflow from '../fixtures/Onboarding_workflow.json'; +import WorkflowTemplate from '../fixtures/Workflow_template_write_http_query.json'; +import { MainSidebar } from '../pages/sidebar/main-sidebar'; import { TemplatesPage } from '../pages/templates'; import { WorkflowPage } from '../pages/workflow'; import { WorkflowsPage } from '../pages/workflows'; -import { MainSidebar } from '../pages/sidebar/main-sidebar'; -import OnboardingWorkflow from '../fixtures/Onboarding_workflow.json'; -import WorkflowTemplate from '../fixtures/Workflow_template_write_http_query.json'; const templatesPage = new TemplatesPage(); const workflowPage = new WorkflowPage(); diff --git a/cypress/e2e/30-langchain.cy.ts b/cypress/e2e/30-langchain.cy.ts index c6d0f4ab4d..0deec76e9f 100644 --- a/cypress/e2e/30-langchain.cy.ts +++ b/cypress/e2e/30-langchain.cy.ts @@ -1,4 +1,34 @@ -import { createMockNodeExecutionData, runMockWorkflowExecution } from '../utils'; +import { + AGENT_NODE_NAME, + MANUAL_CHAT_TRIGGER_NODE_NAME, + AI_LANGUAGE_MODEL_OPENAI_CHAT_MODEL_NODE_NAME, + MANUAL_TRIGGER_NODE_NAME, + AI_MEMORY_WINDOW_BUFFER_MEMORY_NODE_NAME, + AI_TOOL_CALCULATOR_NODE_NAME, + AI_OUTPUT_PARSER_AUTO_FIXING_NODE_NAME, + AI_TOOL_CODE_NODE_NAME, + AI_TOOL_WIKIPEDIA_NODE_NAME, + BASIC_LLM_CHAIN_NODE_NAME, + EDIT_FIELDS_SET_NODE_NAME, + CHAT_TRIGGER_NODE_DISPLAY_NAME, +} from './../constants'; +import { + closeManualChatModal, + getManualChatDialog, + getManualChatMessages, + getManualChatModal, + getManualChatModalLogs, + getManualChatModalLogsEntries, + getManualChatModalLogsTree, + sendManualChatMessage, +} from '../composables/modals/chat-modal'; +import { setCredentialValues } from '../composables/modals/credential-modal'; +import { + clickCreateNewCredential, + clickExecuteNode, + clickGetBackToCanvas, + toggleParameterCheckboxInputByName, +} from '../composables/ndv'; import { addLanguageModelNodeToParent, addMemoryNodeToParent, @@ -14,37 +44,7 @@ import { openNode, getConnectionBySourceAndTarget, } from '../composables/workflow'; -import { - clickCreateNewCredential, - clickExecuteNode, - clickGetBackToCanvas, - toggleParameterCheckboxInputByName, -} from '../composables/ndv'; -import { setCredentialValues } from '../composables/modals/credential-modal'; -import { - closeManualChatModal, - getManualChatDialog, - getManualChatMessages, - getManualChatModal, - getManualChatModalLogs, - getManualChatModalLogsEntries, - getManualChatModalLogsTree, - sendManualChatMessage, -} from '../composables/modals/chat-modal'; -import { - AGENT_NODE_NAME, - MANUAL_CHAT_TRIGGER_NODE_NAME, - AI_LANGUAGE_MODEL_OPENAI_CHAT_MODEL_NODE_NAME, - MANUAL_TRIGGER_NODE_NAME, - AI_MEMORY_WINDOW_BUFFER_MEMORY_NODE_NAME, - AI_TOOL_CALCULATOR_NODE_NAME, - AI_OUTPUT_PARSER_AUTO_FIXING_NODE_NAME, - AI_TOOL_CODE_NODE_NAME, - AI_TOOL_WIKIPEDIA_NODE_NAME, - BASIC_LLM_CHAIN_NODE_NAME, - EDIT_FIELDS_SET_NODE_NAME, - CHAT_TRIGGER_NODE_DISPLAY_NAME, -} from './../constants'; +import { createMockNodeExecutionData, runMockWorkflowExecution } from '../utils'; describe('Langchain Integration', () => { beforeEach(() => { diff --git a/cypress/e2e/31-demo.cy.ts b/cypress/e2e/31-demo.cy.ts index eed3198c83..32307361fd 100644 --- a/cypress/e2e/31-demo.cy.ts +++ b/cypress/e2e/31-demo.cy.ts @@ -1,7 +1,7 @@ import workflow from '../fixtures/Manual_wait_set.json'; import { importWorkflow, visitDemoPage } from '../pages/demo'; -import { WorkflowPage } from '../pages/workflow'; import { errorToast } from '../pages/notifications'; +import { WorkflowPage } from '../pages/workflow'; const workflowPage = new WorkflowPage(); diff --git a/cypress/e2e/34-template-credentials-setup.cy.ts b/cypress/e2e/34-template-credentials-setup.cy.ts index c5d9f2643f..815f4b1ceb 100644 --- a/cypress/e2e/34-template-credentials-setup.cy.ts +++ b/cypress/e2e/34-template-credentials-setup.cy.ts @@ -1,3 +1,8 @@ +import * as setupCredsModal from '../composables/modals/workflow-credential-setup-modal'; +import * as formStep from '../composables/setup-template-form-step'; +import { getSetupWorkflowCredentialsButton } from '../composables/setup-workflow-credentials-button'; +import TestTemplate1 from '../fixtures/Test_Template_1.json'; +import TestTemplate2 from '../fixtures/Test_Template_2.json'; import { clickUseWorkflowButtonByTitle, visitTemplateCollectionPage, @@ -5,11 +10,6 @@ import { } from '../pages/template-collection'; import * as templateCredentialsSetupPage from '../pages/template-credential-setup'; import { WorkflowPage } from '../pages/workflow'; -import * as formStep from '../composables/setup-template-form-step'; -import { getSetupWorkflowCredentialsButton } from '../composables/setup-workflow-credentials-button'; -import * as setupCredsModal from '../composables/modals/workflow-credential-setup-modal'; -import TestTemplate1 from '../fixtures/Test_Template_1.json'; -import TestTemplate2 from '../fixtures/Test_Template_2.json'; const workflowPage = new WorkflowPage(); diff --git a/cypress/e2e/36-versions.cy.ts b/cypress/e2e/36-versions.cy.ts index 1d4fc51808..d749ae4537 100644 --- a/cypress/e2e/36-versions.cy.ts +++ b/cypress/e2e/36-versions.cy.ts @@ -1,10 +1,10 @@ -import { WorkflowsPage } from '../pages/workflows'; import { closeVersionUpdatesPanel, getVersionCard, getVersionUpdatesPanelOpenButton, openVersionUpdatesPanel, } from '../composables/versions'; +import { WorkflowsPage } from '../pages/workflows'; const workflowsPage = new WorkflowsPage(); diff --git a/cypress/e2e/39-projects.cy.ts b/cypress/e2e/39-projects.cy.ts index e2bf63df7d..59ed6bcb84 100644 --- a/cypress/e2e/39-projects.cy.ts +++ b/cypress/e2e/39-projects.cy.ts @@ -1,3 +1,4 @@ +import * as projects from '../composables/projects'; import { INSTANCE_MEMBERS, MANUAL_TRIGGER_NODE_NAME, NOTION_NODE_NAME } from '../constants'; import { WorkflowsPage, @@ -8,7 +9,6 @@ import { NDV, MainSidebar, } from '../pages'; -import * as projects from '../composables/projects'; import { getVisibleDropdown, getVisibleModalOverlay, getVisibleSelect } from '../utils'; const workflowsPage = new WorkflowsPage(); diff --git a/cypress/e2e/4-node-creator.cy.ts b/cypress/e2e/4-node-creator.cy.ts index bb47ef4765..9dfe128322 100644 --- a/cypress/e2e/4-node-creator.cy.ts +++ b/cypress/e2e/4-node-creator.cy.ts @@ -1,8 +1,8 @@ -import { NodeCreator } from '../pages/features/node-creator'; -import { WorkflowPage as WorkflowPageClass } from '../pages/workflow'; -import { NDV } from '../pages/ndv'; -import { getVisibleSelect } from '../utils'; import { IF_NODE_NAME } from '../constants'; +import { NodeCreator } from '../pages/features/node-creator'; +import { NDV } from '../pages/ndv'; +import { WorkflowPage as WorkflowPageClass } from '../pages/workflow'; +import { getVisibleSelect } from '../utils'; const nodeCreatorFeature = new NodeCreator(); const WorkflowPage = new WorkflowPageClass(); diff --git a/cypress/e2e/44-routing.cy.ts b/cypress/e2e/44-routing.cy.ts index 67a092235b..1d3a8746a9 100644 --- a/cypress/e2e/44-routing.cy.ts +++ b/cypress/e2e/44-routing.cy.ts @@ -1,7 +1,7 @@ -import { WorkflowsPage as WorkflowsPageClass } from '../pages/workflows'; -import { WorkflowPage as WorkflowPageClass } from '../pages/workflow'; -import { EDIT_FIELDS_SET_NODE_NAME } from '../constants'; import { getSaveChangesModal } from '../composables/modals/save-changes-modal'; +import { EDIT_FIELDS_SET_NODE_NAME } from '../constants'; +import { WorkflowPage as WorkflowPageClass } from '../pages/workflow'; +import { WorkflowsPage as WorkflowsPageClass } from '../pages/workflows'; const WorkflowsPage = new WorkflowsPageClass(); const WorkflowPage = new WorkflowPageClass(); diff --git a/cypress/e2e/5-ndv.cy.ts b/cypress/e2e/5-ndv.cy.ts index d38eb402b9..4608b5eefc 100644 --- a/cypress/e2e/5-ndv.cy.ts +++ b/cypress/e2e/5-ndv.cy.ts @@ -1,8 +1,8 @@ +import { setCredentialValues } from '../composables/modals/credential-modal'; +import { clickCreateNewCredential } from '../composables/ndv'; import { MANUAL_TRIGGER_NODE_DISPLAY_NAME, NOTION_NODE_NAME } from '../constants'; import { NDV, WorkflowPage } from '../pages'; import { NodeCreator } from '../pages/features/node-creator'; -import { clickCreateNewCredential } from '../composables/ndv'; -import { setCredentialValues } from '../composables/modals/credential-modal'; const workflowPage = new WorkflowPage(); const ndv = new NDV(); diff --git a/cypress/e2e/6-code-node.cy.ts b/cypress/e2e/6-code-node.cy.ts index d26e0ded5d..5b422b4589 100644 --- a/cypress/e2e/6-code-node.cy.ts +++ b/cypress/e2e/6-code-node.cy.ts @@ -1,7 +1,8 @@ import { nanoid } from 'nanoid'; -import { WorkflowPage as WorkflowPageClass } from '../pages/workflow'; + import { NDV } from '../pages/ndv'; import { successToast } from '../pages/notifications'; +import { WorkflowPage as WorkflowPageClass } from '../pages/workflow'; const WorkflowPage = new WorkflowPageClass(); const ndv = new NDV(); diff --git a/cypress/e2e/7-workflow-actions.cy.ts b/cypress/e2e/7-workflow-actions.cy.ts index 7c7c3be554..8571b174d9 100644 --- a/cypress/e2e/7-workflow-actions.cy.ts +++ b/cypress/e2e/7-workflow-actions.cy.ts @@ -5,11 +5,11 @@ import { EDIT_FIELDS_SET_NODE_NAME, NOTION_NODE_NAME, } from '../constants'; +import { WorkflowExecutionsTab } from '../pages'; +import { errorToast, successToast } from '../pages/notifications'; import { WorkflowPage as WorkflowPageClass } from '../pages/workflow'; import { WorkflowsPage as WorkflowsPageClass } from '../pages/workflows'; import { getVisibleSelect } from '../utils'; -import { WorkflowExecutionsTab } from '../pages'; -import { errorToast, successToast } from '../pages/notifications'; const NEW_WORKFLOW_NAME = 'Something else'; const DUPLICATE_WORKFLOW_NAME = 'Duplicated workflow'; diff --git a/cypress/pages/mfa-login.ts b/cypress/pages/mfa-login.ts index ae4d916ba9..66fc197e3f 100644 --- a/cypress/pages/mfa-login.ts +++ b/cypress/pages/mfa-login.ts @@ -1,7 +1,7 @@ -import { N8N_AUTH_COOKIE } from '../constants'; import { BasePage } from './base'; import { SigninPage } from './signin'; import { WorkflowsPage } from './workflows'; +import { N8N_AUTH_COOKIE } from '../constants'; export class MfaLoginPage extends BasePage { url = '/mfa'; diff --git a/cypress/pages/modals/credentials-modal.ts b/cypress/pages/modals/credentials-modal.ts index f14f6be0b7..cd3ded63f8 100644 --- a/cypress/pages/modals/credentials-modal.ts +++ b/cypress/pages/modals/credentials-modal.ts @@ -1,5 +1,5 @@ -import { BasePage } from '../base'; import { getVisibleSelect } from '../../utils'; +import { BasePage } from '../base'; export class CredentialsModal extends BasePage { getters = { diff --git a/cypress/pages/ndv.ts b/cypress/pages/ndv.ts index 8bd7ccf95f..b775deec6d 100644 --- a/cypress/pages/ndv.ts +++ b/cypress/pages/ndv.ts @@ -1,5 +1,5 @@ -import { getVisiblePopper, getVisibleSelect } from '../utils'; import { BasePage } from './base'; +import { getVisiblePopper, getVisibleSelect } from '../utils'; export class NDV extends BasePage { getters = { diff --git a/cypress/pages/settings-log-streaming.ts b/cypress/pages/settings-log-streaming.ts index cc1ea1250d..9063b8dc41 100644 --- a/cypress/pages/settings-log-streaming.ts +++ b/cypress/pages/settings-log-streaming.ts @@ -1,5 +1,5 @@ -import { getVisibleSelect } from '../utils'; import { BasePage } from './base'; +import { getVisibleSelect } from '../utils'; export class SettingsLogStreamingPage extends BasePage { url = '/settings/log-streaming'; diff --git a/cypress/pages/settings-personal.ts b/cypress/pages/settings-personal.ts index 9872fbc668..4574f95691 100644 --- a/cypress/pages/settings-personal.ts +++ b/cypress/pages/settings-personal.ts @@ -1,7 +1,8 @@ import generateOTPToken from 'cypress-otp'; + +import { BasePage } from './base'; import { ChangePasswordModal } from './modals/change-password-modal'; import { MfaSetupModal } from './modals/mfa-setup-modal'; -import { BasePage } from './base'; const changePasswordModal = new ChangePasswordModal(); const mfaSetupModal = new MfaSetupModal(); diff --git a/cypress/pages/settings-users.ts b/cypress/pages/settings-users.ts index d188896225..1eaebc911a 100644 --- a/cypress/pages/settings-users.ts +++ b/cypress/pages/settings-users.ts @@ -1,8 +1,8 @@ -import { SettingsSidebar } from './sidebar/settings-sidebar'; +import { BasePage } from './base'; import { MainSidebar } from './sidebar/main-sidebar'; +import { SettingsSidebar } from './sidebar/settings-sidebar'; import { WorkflowPage } from './workflow'; import { WorkflowsPage } from './workflows'; -import { BasePage } from './base'; const workflowPage = new WorkflowPage(); const workflowsPage = new WorkflowsPage(); diff --git a/cypress/pages/signin.ts b/cypress/pages/signin.ts index 22d0fd163a..a97fe4888e 100644 --- a/cypress/pages/signin.ts +++ b/cypress/pages/signin.ts @@ -1,6 +1,6 @@ -import { N8N_AUTH_COOKIE } from '../constants'; import { BasePage } from './base'; import { WorkflowsPage } from './workflows'; +import { N8N_AUTH_COOKIE } from '../constants'; export class SigninPage extends BasePage { url = '/signin'; diff --git a/cypress/pages/template-credential-setup.ts b/cypress/pages/template-credential-setup.ts index 3fa4d20671..06c1baab8e 100644 --- a/cypress/pages/template-credential-setup.ts +++ b/cypress/pages/template-credential-setup.ts @@ -1,6 +1,6 @@ -import * as formStep from '../composables/setup-template-form-step'; -import { overrideFeatureFlag } from '../composables/featureFlags'; import { CredentialsModal, MessageBox } from './modals'; +import { overrideFeatureFlag } from '../composables/featureFlags'; +import * as formStep from '../composables/setup-template-form-step'; const credentialsModal = new CredentialsModal(); const messageBox = new MessageBox(); diff --git a/cypress/pages/variables.ts b/cypress/pages/variables.ts index c74624686e..6ac9a939b2 100644 --- a/cypress/pages/variables.ts +++ b/cypress/pages/variables.ts @@ -1,4 +1,5 @@ import { BasePage } from './base'; + import Chainable = Cypress.Chainable; export class VariablesPage extends BasePage { diff --git a/cypress/pages/workflow.ts b/cypress/pages/workflow.ts index 0c2a269607..89186ee34e 100644 --- a/cypress/pages/workflow.ts +++ b/cypress/pages/workflow.ts @@ -1,8 +1,8 @@ +import { BasePage } from './base'; +import { NodeCreator } from './features/node-creator'; import { META_KEY } from '../constants'; import { getVisibleSelect } from '../utils'; import { getUniqueWorkflowName } from '../utils/workflowUtils'; -import { BasePage } from './base'; -import { NodeCreator } from './features/node-creator'; const nodeCreator = new NodeCreator(); export class WorkflowPage extends BasePage { diff --git a/cypress/support/commands.ts b/cypress/support/commands.ts index 808c0b6aca..35f100fded 100644 --- a/cypress/support/commands.ts +++ b/cypress/support/commands.ts @@ -1,7 +1,7 @@ import 'cypress-real-events'; -import FakeTimers from '@sinonjs/fake-timers'; import type { FrontendSettings } from '@n8n/api-types'; -import { WorkflowPage } from '../pages'; +import FakeTimers from '@sinonjs/fake-timers'; + import { BACKEND_BASE_URL, INSTANCE_ADMIN, @@ -9,6 +9,7 @@ import { INSTANCE_OWNER, N8N_AUTH_COOKIE, } from '../constants'; +import { WorkflowPage } from '../pages'; import { getUniqueWorkflowName } from '../utils/workflowUtils'; Cypress.Commands.add('setAppDate', (targetDate: number | Date) => { diff --git a/cypress/support/e2e.ts b/cypress/support/e2e.ts index 4d5d7a7f9a..0fe782499d 100644 --- a/cypress/support/e2e.ts +++ b/cypress/support/e2e.ts @@ -1,5 +1,6 @@ import cloneDeep from 'lodash/cloneDeep'; import merge from 'lodash/merge'; + import { settings } from './commands'; before(() => { diff --git a/cypress/utils/executions.ts b/cypress/utils/executions.ts index e42e2152d6..eb0dbfc251 100644 --- a/cypress/utils/executions.ts +++ b/cypress/utils/executions.ts @@ -1,5 +1,6 @@ -import { nanoid } from 'nanoid'; import type { IDataObject, IPinData, ITaskData, ITaskDataConnections } from 'n8n-workflow'; +import { nanoid } from 'nanoid'; + import { clickExecuteWorkflowButton } from '../composables/workflow'; export function createMockNodeExecutionData( diff --git a/packages/@n8n/api-types/src/push/index.ts b/packages/@n8n/api-types/src/push/index.ts index 3eefb0851c..b97a179141 100644 --- a/packages/@n8n/api-types/src/push/index.ts +++ b/packages/@n8n/api-types/src/push/index.ts @@ -1,10 +1,10 @@ -import type { ExecutionPushMessage } from './execution'; -import type { WorkflowPushMessage } from './workflow'; -import type { HotReloadPushMessage } from './hot-reload'; -import type { WorkerPushMessage } from './worker'; -import type { WebhookPushMessage } from './webhook'; import type { CollaborationPushMessage } from './collaboration'; import type { DebugPushMessage } from './debug'; +import type { ExecutionPushMessage } from './execution'; +import type { HotReloadPushMessage } from './hot-reload'; +import type { WebhookPushMessage } from './webhook'; +import type { WorkerPushMessage } from './worker'; +import type { WorkflowPushMessage } from './workflow'; export type PushMessage = | ExecutionPushMessage diff --git a/packages/@n8n/benchmark/src/commands/list.ts b/packages/@n8n/benchmark/src/commands/list.ts index 7bcc4de2ce..34b8273209 100644 --- a/packages/@n8n/benchmark/src/commands/list.ts +++ b/packages/@n8n/benchmark/src/commands/list.ts @@ -1,6 +1,7 @@ import { Command } from '@oclif/core'; -import { ScenarioLoader } from '@/scenario/scenario-loader'; + import { testScenariosPath } from '@/config/common-flags'; +import { ScenarioLoader } from '@/scenario/scenario-loader'; export default class ListCommand extends Command { static description = 'List all available scenarios'; diff --git a/packages/@n8n/benchmark/src/commands/run.ts b/packages/@n8n/benchmark/src/commands/run.ts index eb895c842e..164eef0f41 100644 --- a/packages/@n8n/benchmark/src/commands/run.ts +++ b/packages/@n8n/benchmark/src/commands/run.ts @@ -1,11 +1,12 @@ import { Command, Flags } from '@oclif/core'; -import { ScenarioLoader } from '@/scenario/scenario-loader'; -import { ScenarioRunner } from '@/test-execution/scenario-runner'; + +import { testScenariosPath } from '@/config/common-flags'; import { N8nApiClient } from '@/n8n-api-client/n8n-api-client'; import { ScenarioDataFileLoader } from '@/scenario/scenario-data-loader'; +import { ScenarioLoader } from '@/scenario/scenario-loader'; import type { K6Tag } from '@/test-execution/k6-executor'; import { K6Executor } from '@/test-execution/k6-executor'; -import { testScenariosPath } from '@/config/common-flags'; +import { ScenarioRunner } from '@/test-execution/scenario-runner'; export default class RunCommand extends Command { static description = 'Run all (default) or specified test scenarios'; diff --git a/packages/@n8n/benchmark/src/n8n-api-client/authenticated-n8n-api-client.ts b/packages/@n8n/benchmark/src/n8n-api-client/authenticated-n8n-api-client.ts index 0272181799..2555ea8061 100644 --- a/packages/@n8n/benchmark/src/n8n-api-client/authenticated-n8n-api-client.ts +++ b/packages/@n8n/benchmark/src/n8n-api-client/authenticated-n8n-api-client.ts @@ -1,4 +1,5 @@ import type { AxiosRequestConfig } from 'axios'; + import { N8nApiClient } from './n8n-api-client'; export class AuthenticatedN8nApiClient extends N8nApiClient { diff --git a/packages/@n8n/benchmark/src/n8n-api-client/workflows-api-client.ts b/packages/@n8n/benchmark/src/n8n-api-client/workflows-api-client.ts index 76eea4284c..92bcfad89f 100644 --- a/packages/@n8n/benchmark/src/n8n-api-client/workflows-api-client.ts +++ b/packages/@n8n/benchmark/src/n8n-api-client/workflows-api-client.ts @@ -1,6 +1,7 @@ -import type { AuthenticatedN8nApiClient } from './authenticated-n8n-api-client'; import type { Workflow } from '@/n8n-api-client/n8n-api-client.types'; +import type { AuthenticatedN8nApiClient } from './authenticated-n8n-api-client'; + export class WorkflowApiClient { constructor(private readonly apiClient: AuthenticatedN8nApiClient) {} diff --git a/packages/@n8n/benchmark/src/scenario/scenario-data-loader.ts b/packages/@n8n/benchmark/src/scenario/scenario-data-loader.ts index b601d19902..12fcc58ee3 100644 --- a/packages/@n8n/benchmark/src/scenario/scenario-data-loader.ts +++ b/packages/@n8n/benchmark/src/scenario/scenario-data-loader.ts @@ -1,7 +1,8 @@ import * as fs from 'node:fs'; import * as path from 'node:path'; -import type { Scenario } from '@/types/scenario'; + import type { Workflow } from '@/n8n-api-client/n8n-api-client.types'; +import type { Scenario } from '@/types/scenario'; /** * Loads scenario data files from FS diff --git a/packages/@n8n/benchmark/src/scenario/scenario-loader.ts b/packages/@n8n/benchmark/src/scenario/scenario-loader.ts index 13cc52daf0..4f315c1bf7 100644 --- a/packages/@n8n/benchmark/src/scenario/scenario-loader.ts +++ b/packages/@n8n/benchmark/src/scenario/scenario-loader.ts @@ -1,6 +1,7 @@ +import { createHash } from 'node:crypto'; import * as fs from 'node:fs'; import * as path from 'path'; -import { createHash } from 'node:crypto'; + import type { Scenario, ScenarioManifest } from '@/types/scenario'; export class ScenarioLoader { diff --git a/packages/@n8n/benchmark/src/test-execution/k6-executor.ts b/packages/@n8n/benchmark/src/test-execution/k6-executor.ts index f99ffd80d9..4fcf11d45b 100644 --- a/packages/@n8n/benchmark/src/test-execution/k6-executor.ts +++ b/packages/@n8n/benchmark/src/test-execution/k6-executor.ts @@ -1,9 +1,10 @@ import fs from 'fs'; -import path from 'path'; import assert from 'node:assert/strict'; +import path from 'path'; import { $, which, tmpfile } from 'zx'; -import type { Scenario } from '@/types/scenario'; + import { buildTestReport, type K6Tag } from '@/test-execution/test-report'; +import type { Scenario } from '@/types/scenario'; export type { K6Tag }; export type K6ExecutorOpts = { diff --git a/packages/@n8n/benchmark/src/test-execution/scenario-runner.ts b/packages/@n8n/benchmark/src/test-execution/scenario-runner.ts index 135ebc6007..84d1d8b096 100644 --- a/packages/@n8n/benchmark/src/test-execution/scenario-runner.ts +++ b/packages/@n8n/benchmark/src/test-execution/scenario-runner.ts @@ -1,9 +1,10 @@ -import type { K6Executor } from './k6-executor'; -import type { Scenario } from '@/types/scenario'; +import { AuthenticatedN8nApiClient } from '@/n8n-api-client/authenticated-n8n-api-client'; import type { N8nApiClient } from '@/n8n-api-client/n8n-api-client'; import type { ScenarioDataFileLoader } from '@/scenario/scenario-data-loader'; import { ScenarioDataImporter } from '@/test-execution/scenario-data-importer'; -import { AuthenticatedN8nApiClient } from '@/n8n-api-client/authenticated-n8n-api-client'; +import type { Scenario } from '@/types/scenario'; + +import type { K6Executor } from './k6-executor'; /** * Runs scenarios diff --git a/packages/@n8n/benchmark/src/test-execution/test-report.ts b/packages/@n8n/benchmark/src/test-execution/test-report.ts index d3177aeb79..8e858c5e66 100644 --- a/packages/@n8n/benchmark/src/test-execution/test-report.ts +++ b/packages/@n8n/benchmark/src/test-execution/test-report.ts @@ -1,4 +1,5 @@ import { nanoid } from 'nanoid'; + import type { Scenario } from '@/types/scenario'; export type K6Tag = { diff --git a/packages/@n8n/chat/src/App.vue b/packages/@n8n/chat/src/App.vue index ec90bef425..0614b7cf73 100644 --- a/packages/@n8n/chat/src/App.vue +++ b/packages/@n8n/chat/src/App.vue @@ -1,8 +1,9 @@ diff --git a/packages/@n8n/chat/src/components/Input.vue b/packages/@n8n/chat/src/components/Input.vue index af4b3343b7..3e823917e0 100644 --- a/packages/@n8n/chat/src/components/Input.vue +++ b/packages/@n8n/chat/src/components/Input.vue @@ -1,12 +1,14 @@