mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-16 09:36:44 +00:00
test: Set up e2e tests for HTTP Request node (#4718)
* 🧪 Add test identifiers * ⚡ Add getters * 🧪 Add initial test * ⚡ Refactor to use actions * ⚡ Refactor per Oleg's advice * 🐛 Fix overlapping input label IDs
This commit is contained in:
23
cypress/e2e/4-http-request-node.cy.ts
Normal file
23
cypress/e2e/4-http-request-node.cy.ts
Normal file
@@ -0,0 +1,23 @@
|
||||
import { WorkflowsPage as WorkflowsPageClass } from '../pages/workflows';
|
||||
import { WorkflowPage as WorkflowPageClass } from '../pages/workflow';
|
||||
|
||||
const WorkflowsPage = new WorkflowsPageClass();
|
||||
const WorkflowPage = new WorkflowPageClass();
|
||||
|
||||
describe('HTTP Request node', () => {
|
||||
beforeEach(() => {
|
||||
cy.skipSetup();
|
||||
});
|
||||
|
||||
it('should make a request with a URL and receive a response', () => {
|
||||
WorkflowsPage.actions.createWorkflowFromCard();
|
||||
WorkflowPage.actions.addInitialNodeToCanvas('Manual Trigger');
|
||||
WorkflowPage.actions.addNodeToCanvas('HTTP Request');
|
||||
WorkflowPage.actions.openNodeNdv('HTTP Request');
|
||||
WorkflowPage.actions.typeIntoParameterInput('url', 'https://google.com');
|
||||
|
||||
WorkflowPage.actions.executeNodeFromNdv();
|
||||
|
||||
WorkflowPage.getters.ndvOutputPanel().contains('<!doctype html>');
|
||||
});
|
||||
});
|
||||
@@ -1,11 +1,50 @@
|
||||
import { BasePage } from "./base";
|
||||
import { BasePage } from './base';
|
||||
|
||||
export class WorkflowPage extends BasePage {
|
||||
url = '/workflow/new';
|
||||
getters = {
|
||||
workflowNameInput: () => cy.getByTestId('workflow-name-input', { timeout: 5000 }).then($el => cy.wrap($el.find('input'))),
|
||||
workflowNameInput: () =>
|
||||
cy
|
||||
.getByTestId('workflow-name-input', { timeout: 5000 })
|
||||
.then(($el) => cy.wrap($el.find('input'))),
|
||||
workflowImportInput: () => cy.getByTestId('workflow-import-input'),
|
||||
workflowTags: () => cy.getByTestId('workflow-tags'),
|
||||
saveButton: () => cy.getByTestId('save-button'),
|
||||
|
||||
nodeCreatorSearchBar: () => cy.getByTestId('node-creator-search-bar'),
|
||||
nodeCreatorPlusButton: () => cy.getByTestId('node-creator-plus-button'),
|
||||
canvasPlusButton: () => cy.getByTestId('canvas-plus-button'),
|
||||
canvasNodeBox: (nodeDisplayName: string) => {
|
||||
return cy
|
||||
.getByTestId('canvas-node-box-title')
|
||||
.contains(nodeDisplayName)
|
||||
.parents('[data-test-id="canvas-node-box"]');
|
||||
},
|
||||
|
||||
ndvParameterInput: (parameterName: string) =>
|
||||
cy.getByTestId(`parameter-input-${parameterName}`),
|
||||
ndvOutputPanel: () => cy.getByTestId('output-panel'),
|
||||
};
|
||||
|
||||
actions = {
|
||||
addInitialNodeToCanvas: (nodeDisplayName: string) => {
|
||||
this.getters.canvasPlusButton().click();
|
||||
this.getters.nodeCreatorSearchBar().type(nodeDisplayName);
|
||||
this.getters.nodeCreatorSearchBar().type('{enter}{esc}');
|
||||
},
|
||||
addNodeToCanvas: (nodeDisplayName: string) => {
|
||||
this.getters.nodeCreatorPlusButton().click();
|
||||
this.getters.nodeCreatorSearchBar().type(nodeDisplayName);
|
||||
this.getters.nodeCreatorSearchBar().type('{enter}{esc}');
|
||||
},
|
||||
openNodeNdv: (nodeTypeName: string) => {
|
||||
this.getters.canvasNodeBox(nodeTypeName).dblclick();
|
||||
},
|
||||
typeIntoParameterInput: (parameterName: string, content: string) => {
|
||||
this.getters.ndvParameterInput(parameterName).type(content);
|
||||
},
|
||||
executeNodeFromNdv: () => {
|
||||
cy.contains('Execute node').click();
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
@@ -24,4 +24,10 @@ export class WorkflowsPage extends BasePage {
|
||||
// myWorkflows: () => cy.getByTestId('my-workflows'),
|
||||
// allWorkflows: () => cy.getByTestId('all-workflows'),
|
||||
};
|
||||
|
||||
actions = {
|
||||
createWorkflowFromCard: () => {
|
||||
this.getters.newWorkflowButtonCard().click();
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user