mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-16 17:46:45 +00:00
feat(editor): Add support for loadOptionsDependsOn to RLC (#6101)
* feat(editor): Add support for `loadOptionsDependsOn` to the Resource Locator component * 🔥 Removing leftover log * ✅ Added e2e tests for ResourceLocator component
This commit is contained in:
committed by
GitHub
parent
2e73f4abd0
commit
b17d5f9aa0
58
cypress/e2e/26-resource-locator.cy.ts
Normal file
58
cypress/e2e/26-resource-locator.cy.ts
Normal file
@@ -0,0 +1,58 @@
|
||||
import { WorkflowPage, NDV, CredentialsModal } from '../pages';
|
||||
|
||||
const workflowPage = new WorkflowPage();
|
||||
const ndv = new NDV();
|
||||
const credentialsModal = new CredentialsModal();
|
||||
|
||||
const NO_CREDENTIALS_MESSAGE = 'Please add your credential';
|
||||
const INVALID_CREDENTIALS_MESSAGE = 'Please check your credential';
|
||||
|
||||
describe('Resource Locator', () => {
|
||||
before(() => {
|
||||
cy.resetAll();
|
||||
cy.skipSetup();
|
||||
});
|
||||
|
||||
beforeEach(() => {
|
||||
workflowPage.actions.visit();
|
||||
});
|
||||
|
||||
it('should render both RLC components in google sheets', () => {
|
||||
workflowPage.actions.addInitialNodeToCanvas('Manual');
|
||||
workflowPage.actions.addNodeToCanvas('Google Sheets', true, true);
|
||||
ndv.getters.resourceLocator('documentId').should('be.visible');
|
||||
ndv.getters.resourceLocator('sheetName').should('be.visible');
|
||||
});
|
||||
|
||||
it('should show appropriate error when credentials are not set', () => {
|
||||
workflowPage.actions.addInitialNodeToCanvas('Manual');
|
||||
workflowPage.actions.addNodeToCanvas('Google Sheets', true, true);
|
||||
ndv.getters.resourceLocator('documentId').should('be.visible');
|
||||
ndv.getters.resourceLocatorInput('documentId').click();
|
||||
ndv.getters.resourceLocatorErrorMessage().should('contain', NO_CREDENTIALS_MESSAGE);
|
||||
});
|
||||
|
||||
it('should show appropriate error when credentials are not valid', () => {
|
||||
workflowPage.actions.addInitialNodeToCanvas('Manual');
|
||||
workflowPage.actions.addNodeToCanvas('Google Sheets', true, true);
|
||||
workflowPage.getters.nodeCredentialsSelect().click();
|
||||
// Add oAuth credentials
|
||||
workflowPage.getters.nodeCredentialsSelect().find('li').last().click();
|
||||
credentialsModal.getters.credentialsEditModal().should('be.visible');
|
||||
credentialsModal.getters.credentialAuthTypeRadioButtons().should('have.length', 2);
|
||||
credentialsModal.getters.credentialAuthTypeRadioButtons().first().click();
|
||||
credentialsModal.actions.fillCredentialsForm();
|
||||
cy.get('.el-message-box').find('button').contains('Close').click();
|
||||
ndv.getters.resourceLocatorInput('documentId').click();
|
||||
ndv.getters.resourceLocatorErrorMessage().should('contain', INVALID_CREDENTIALS_MESSAGE);
|
||||
});
|
||||
|
||||
it('should reset resource locator when dependent field is changed', () => {
|
||||
workflowPage.actions.addInitialNodeToCanvas('Manual');
|
||||
workflowPage.actions.addNodeToCanvas('Google Sheets', true, true);
|
||||
ndv.actions.setRLCValue('documentId', '123');
|
||||
ndv.actions.setRLCValue('sheetName', '123');
|
||||
ndv.actions.setRLCValue('documentId', '321');
|
||||
ndv.getters.resourceLocatorInput('sheetName').should('have.value', '');
|
||||
});
|
||||
});
|
||||
@@ -51,6 +51,11 @@ export class NDV extends BasePage {
|
||||
inputHoveringItem: () => this.getters.inputPanel().findChildByTestId('hovering-item'),
|
||||
outputBranches: () => this.getters.outputPanel().findChildByTestId('branches'),
|
||||
inputBranches: () => this.getters.inputPanel().findChildByTestId('branches'),
|
||||
resourceLocator: (paramName: string) => cy.getByTestId(`resource-locator-${paramName}`),
|
||||
resourceLocatorInput: (paramName: string) => this.getters.resourceLocator(paramName).find('[data-test-id="rlc-input-container"]'),
|
||||
resourceLocatorDropdown: (paramName: string) => this.getters.resourceLocator(paramName).find('[data-test-id="resource-locator-dropdown"]'),
|
||||
resourceLocatorErrorMessage: () => cy.getByTestId('rlc-error-container'),
|
||||
resourceLocatorModeSelector: (paramName: string) => this.getters.resourceLocator(paramName).find('[data-test-id="rlc-mode-selector"]'),
|
||||
};
|
||||
|
||||
actions = {
|
||||
@@ -148,5 +153,10 @@ export class NDV extends BasePage {
|
||||
switchIntputBranch: (name: string) => {
|
||||
this.getters.inputBranches().get('span').contains(name).click();
|
||||
},
|
||||
setRLCValue: (paramName: string, value: string) => {
|
||||
this.getters.resourceLocatorModeSelector(paramName).click();
|
||||
this.getters.resourceLocatorModeSelector(paramName).find('li').last().click();
|
||||
this.getters.resourceLocatorInput(paramName).type(value);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user