mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-16 09:36:44 +00:00
fix(editor): Code node overwrites code when switching nodes after edits (#13078)
This commit is contained in:
@@ -7,6 +7,9 @@ import { WorkflowPage as WorkflowPageClass } from '../pages/workflow';
|
||||
const WorkflowPage = new WorkflowPageClass();
|
||||
const ndv = new NDV();
|
||||
|
||||
const getParameter = () => ndv.getters.parameterInput('jsCode').should('be.visible');
|
||||
const getEditor = () => getParameter().find('.cm-content').should('exist');
|
||||
|
||||
describe('Code node', () => {
|
||||
describe('Code editor', () => {
|
||||
beforeEach(() => {
|
||||
@@ -40,10 +43,26 @@ describe('Code node', () => {
|
||||
successToast().contains('Node executed successfully');
|
||||
});
|
||||
|
||||
it('should show lint errors in `runOnceForAllItems` mode', () => {
|
||||
const getParameter = () => ndv.getters.parameterInput('jsCode').should('be.visible');
|
||||
const getEditor = () => getParameter().find('.cm-content').should('exist');
|
||||
it('should allow switching between sibling code nodes', () => {
|
||||
// Setup
|
||||
getEditor().type('{selectall}').paste("console.log('code node 1')");
|
||||
ndv.actions.close();
|
||||
WorkflowPage.actions.addNodeToCanvas('Code', true, true);
|
||||
getEditor().type('{selectall}').paste("console.log('code node 2')");
|
||||
ndv.actions.close();
|
||||
|
||||
WorkflowPage.actions.openNode('Code');
|
||||
ndv.actions.clickFloatingNode('Code1');
|
||||
getEditor().should('have.text', "console.log('code node 2')");
|
||||
getEditor().type('{selectall}').type("console.log('code node 2 edited')");
|
||||
// wait for debounce
|
||||
cy.wait(200);
|
||||
|
||||
ndv.actions.clickFloatingNode('Code');
|
||||
getEditor().should('have.text', "console.log('code node 1')");
|
||||
});
|
||||
|
||||
it('should show lint errors in `runOnceForAllItems` mode', () => {
|
||||
getEditor()
|
||||
.type('{selectall}')
|
||||
.paste(`$input.itemMatching()
|
||||
@@ -66,9 +85,6 @@ return
|
||||
});
|
||||
|
||||
it('should show lint errors in `runOnceForEachItem` mode', () => {
|
||||
const getParameter = () => ndv.getters.parameterInput('jsCode').should('be.visible');
|
||||
const getEditor = () => getParameter().find('.cm-content').should('exist');
|
||||
|
||||
ndv.getters.parameterInput('mode').click();
|
||||
ndv.actions.selectOptionInParameterDropdown('mode', 'Run Once for Each Item');
|
||||
getEditor()
|
||||
|
||||
@@ -151,6 +151,9 @@ export class NDV extends BasePage {
|
||||
schemaViewNodeName: () => cy.getByTestId('run-data-schema-node-name'),
|
||||
expressionExpanders: () => cy.getByTestId('expander'),
|
||||
expressionModalOutput: () => cy.getByTestId('expression-modal-output'),
|
||||
floatingNodes: () => cy.getByTestId('floating-node'),
|
||||
floatingNodeByName: (name: string) =>
|
||||
cy.getByTestId('floating-node').filter(`[data-node-name="${name}"]`),
|
||||
};
|
||||
|
||||
actions = {
|
||||
@@ -339,6 +342,9 @@ export class NDV extends BasePage {
|
||||
dragMainPanelToRight: () => {
|
||||
cy.drag('[data-test-id=panel-drag-button]', [1000, 0], { moveTwice: true });
|
||||
},
|
||||
clickFloatingNode: (name: string) => {
|
||||
this.getters.floatingNodeByName(name).realHover().click({ force: true });
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user