mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-17 01:56:46 +00:00
fix(editor): Fields reset after closing NDV when side panel NDV is also visible (no-changelog) (#18857)
This commit is contained in:
@@ -360,6 +360,10 @@ export class CanvasPage extends BasePage {
|
||||
return this.page.getByTestId('canvas-wrapper');
|
||||
}
|
||||
|
||||
toggleFocusPanelButton(): Locator {
|
||||
return this.page.getByTestId('toggle-focus-panel-button');
|
||||
}
|
||||
|
||||
// Actions
|
||||
|
||||
async addInitialNodeToCanvas(nodeName: string): Promise<void> {
|
||||
|
||||
@@ -20,7 +20,7 @@ export class NodeDetailsViewPage extends BasePage {
|
||||
}
|
||||
|
||||
getParameterByLabel(labelName: string) {
|
||||
return this.page.locator('.parameter-item').filter({ hasText: labelName });
|
||||
return this.getContainer().locator('.parameter-item').filter({ hasText: labelName });
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
import { test, expect } from '../../fixtures/base';
|
||||
import type { TestRequirements } from '../../Types';
|
||||
|
||||
const requirements: TestRequirements = {
|
||||
workflow: {
|
||||
'Test_workflow_1.json': 'Test',
|
||||
},
|
||||
storage: {
|
||||
N8N_EXPERIMENT_OVERRIDES: JSON.stringify({ ndv_in_focus_panel: 'variant' }),
|
||||
},
|
||||
};
|
||||
|
||||
test.describe('SUG-121 Fields reset after closing NDV', () => {
|
||||
test('should preserve changes to parameters after closing NDV when focus panel is open', async ({
|
||||
n8n,
|
||||
setupRequirements,
|
||||
}) => {
|
||||
await setupRequirements(requirements);
|
||||
await n8n.canvas.clickZoomToFitButton();
|
||||
await n8n.canvas.toggleFocusPanelButton().click();
|
||||
await n8n.canvas.canvasPane().click();
|
||||
await n8n.canvas.nodeByName('Code').dblclick();
|
||||
await n8n.ndv.getParameterByLabel('JavaScript').getByRole('textbox').fill('alert(1)');
|
||||
await n8n.ndv.close();
|
||||
await n8n.canvas.nodeByName('Code').dblclick();
|
||||
await expect(n8n.ndv.getParameterByLabel('JavaScript').getByRole('textbox')).toHaveText(
|
||||
'alert(1)',
|
||||
);
|
||||
});
|
||||
});
|
||||
@@ -10,8 +10,18 @@ export async function setupTestRequirements(
|
||||
context: BrowserContext,
|
||||
requirements: TestRequirements,
|
||||
): Promise<void> {
|
||||
const n8n = new n8nPage(page);
|
||||
// 0. Setup browser storage before creating a new page
|
||||
if (requirements.storage) {
|
||||
await context.addInitScript((storage) => {
|
||||
// Set localStorage items
|
||||
for (const [key, value] of Object.entries(storage)) {
|
||||
window.localStorage.setItem(key, value);
|
||||
}
|
||||
}, requirements.storage);
|
||||
}
|
||||
|
||||
const api = new ApiHelpers(context.request);
|
||||
const n8n = new n8nPage(page, api);
|
||||
|
||||
// 1. Setup frontend settings override
|
||||
if (requirements.config?.settings) {
|
||||
@@ -57,14 +67,4 @@ export async function setupTestRequirements(
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 5. Setup browser storage
|
||||
if (requirements.storage) {
|
||||
await context.addInitScript((storage) => {
|
||||
// Set localStorage items
|
||||
for (const [key, value] of Object.entries(storage)) {
|
||||
window.localStorage.setItem(key, value);
|
||||
}
|
||||
}, requirements.storage);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user