mirror of
https://github.com/n8n-io/n8n.git
synced 2025-03-05 20:50:17 -08:00
fix(editor): Fix opening executions tab from a new, unsaved workflow (#10652)
This commit is contained in:
parent
746e7b89f7
commit
cd0891e4f1
|
@ -9,7 +9,8 @@ const executionsTab = new WorkflowExecutionsTab();
|
|||
const executionsRefreshInterval = 4000;
|
||||
|
||||
// Test suite for executions tab
|
||||
describe('Current Workflow Executions', () => {
|
||||
describe('Workflow Executions', () => {
|
||||
describe('when workflow is saved', () => {
|
||||
beforeEach(() => {
|
||||
workflowPage.actions.visit();
|
||||
cy.createFixtureWorkflow('Test_workflow_4_executions_view.json', 'My test workflow');
|
||||
|
@ -229,6 +230,34 @@ describe('Current Workflow Executions', () => {
|
|||
});
|
||||
});
|
||||
|
||||
describe('when new workflow is not saved', () => {
|
||||
beforeEach(() => {
|
||||
workflowPage.actions.visit();
|
||||
});
|
||||
|
||||
it('should open executions tab', () => {
|
||||
executionsTab.actions.switchToExecutionsTab();
|
||||
executionsTab.getters.executionsSidebar().should('be.visible');
|
||||
executionsTab.getters.executionsEmptyList().should('be.visible');
|
||||
cy.getByTestId('workflow-execution-no-trigger-content').should('be.visible');
|
||||
cy.get('button:contains("Add first step")').should('be.visible').click();
|
||||
|
||||
cy.getByTestId('node-creator-item-name')
|
||||
.should('be.visible')
|
||||
.filter(':contains("Trigger")')
|
||||
.click();
|
||||
executionsTab.actions.switchToExecutionsTab();
|
||||
executionsTab.getters.executionsSidebar().should('be.visible');
|
||||
executionsTab.getters.executionsEmptyList().should('be.visible');
|
||||
cy.getByTestId('workflow-execution-no-content').should('be.visible');
|
||||
|
||||
workflowPage.getters.saveButton().find('button').should('be.enabled').click();
|
||||
workflowPage.getters.isWorkflowSaved();
|
||||
workflowPage.getters.nodeViewRoot().should('be.visible');
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
const createMockExecutions = () => {
|
||||
executionsTab.actions.createManualExecutions(5);
|
||||
// Make some failed executions by enabling Code node with syntax error
|
||||
|
|
|
@ -7,6 +7,7 @@ export class WorkflowExecutionsTab extends BasePage {
|
|||
getters = {
|
||||
executionsTabButton: () => cy.getByTestId('radio-button-executions'),
|
||||
executionsSidebar: () => cy.getByTestId('executions-sidebar'),
|
||||
executionsEmptyList: () => cy.getByTestId('execution-list-empty'),
|
||||
autoRefreshCheckBox: () => cy.getByTestId('auto-refresh-checkbox'),
|
||||
executionsList: () => cy.getByTestId('current-executions-list'),
|
||||
executionListItems: () => this.getters.executionsList().find('div.execution-card'),
|
||||
|
|
|
@ -36,7 +36,7 @@ function getWorkflowRoute(): { name: string; params: {} } {
|
|||
<template>
|
||||
<div :class="['workflow-executions-container', $style.container]">
|
||||
<div v-if="executionCount === 0" :class="[$style.messageContainer, $style.noExecutionsMessage]">
|
||||
<div v-if="!containsTrigger">
|
||||
<div v-if="!containsTrigger" data-test-id="workflow-execution-no-trigger-content">
|
||||
<N8nHeading tag="h2" size="xlarge" color="text-dark" class="mb-2xs">
|
||||
{{ locale.baseText('executionsLandingPage.emptyState.noTrigger.heading') }}
|
||||
</N8nHeading>
|
||||
|
@ -47,7 +47,7 @@ function getWorkflowRoute(): { name: string; params: {} } {
|
|||
{{ locale.baseText('executionsLandingPage.emptyState.noTrigger.buttonText') }}
|
||||
</N8nButton>
|
||||
</div>
|
||||
<div v-else>
|
||||
<div v-else data-test-id="workflow-execution-no-content">
|
||||
<N8nHeading tag="h2" size="xlarge" color="text-dark" class="mb-2xs">
|
||||
{{ locale.baseText('executionsLandingPage.emptyState.heading') }}
|
||||
</N8nHeading>
|
||||
|
|
|
@ -500,8 +500,8 @@ export const useWorkflowsStore = defineStore(STORES.WORKFLOWS, () => {
|
|||
executingNode.value = executingNode.value.filter((name) => name !== nodeName);
|
||||
}
|
||||
|
||||
function setWorkflowId(id: string) {
|
||||
workflow.value.id = id === 'new' ? PLACEHOLDER_EMPTY_WORKFLOW_ID : id;
|
||||
function setWorkflowId(id?: string) {
|
||||
workflow.value.id = !id || id === 'new' ? PLACEHOLDER_EMPTY_WORKFLOW_ID : id;
|
||||
}
|
||||
|
||||
function setUsedCredentials(data: IUsedCredential[]) {
|
||||
|
|
Loading…
Reference in a new issue