mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-17 01:56:46 +00:00
ci: Fix flaky credentials saving in e2e tests (no-changelog) (#11919)
This commit is contained in:
committed by
GitHub
parent
85f30b27ae
commit
d4e8d6778c
@@ -40,6 +40,7 @@ export function saveCredential() {
|
|||||||
.within(() => {
|
.within(() => {
|
||||||
cy.get('button').should('not.exist');
|
cy.get('button').should('not.exist');
|
||||||
});
|
});
|
||||||
|
getCredentialSaveButton().should('have.text', 'Saved');
|
||||||
}
|
}
|
||||||
|
|
||||||
export function closeCredentialModal() {
|
export function closeCredentialModal() {
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import { saveCredential } from '../composables/modals/credential-modal';
|
||||||
import * as projects from '../composables/projects';
|
import * as projects from '../composables/projects';
|
||||||
import { INSTANCE_MEMBERS, INSTANCE_OWNER, INSTANCE_ADMIN, NOTION_NODE_NAME } from '../constants';
|
import { INSTANCE_MEMBERS, INSTANCE_OWNER, INSTANCE_ADMIN, NOTION_NODE_NAME } from '../constants';
|
||||||
import {
|
import {
|
||||||
@@ -225,8 +226,7 @@ describe('Sharing', { disableAutoLogin: true }, () => {
|
|||||||
.filter(':contains("Development")')
|
.filter(':contains("Development")')
|
||||||
.should('have.length', 1)
|
.should('have.length', 1)
|
||||||
.click();
|
.click();
|
||||||
credentialsModal.getters.saveButton().click();
|
saveCredential();
|
||||||
credentialsModal.getters.saveButton().should('have.text', 'Saved');
|
|
||||||
credentialsModal.actions.close();
|
credentialsModal.actions.close();
|
||||||
|
|
||||||
projects.getProjectTabWorkflows().click();
|
projects.getProjectTabWorkflows().click();
|
||||||
@@ -252,8 +252,7 @@ describe('Sharing', { disableAutoLogin: true }, () => {
|
|||||||
credentialsModal.actions.changeTab('Sharing');
|
credentialsModal.actions.changeTab('Sharing');
|
||||||
credentialsModal.getters.usersSelect().click();
|
credentialsModal.getters.usersSelect().click();
|
||||||
getVisibleSelect().find('li').should('have.length', 4).first().click();
|
getVisibleSelect().find('li').should('have.length', 4).first().click();
|
||||||
credentialsModal.getters.saveButton().click();
|
saveCredential();
|
||||||
credentialsModal.getters.saveButton().should('have.text', 'Saved');
|
|
||||||
credentialsModal.actions.close();
|
credentialsModal.actions.close();
|
||||||
|
|
||||||
credentialsPage.getters
|
credentialsPage.getters
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import { type ICredentialType } from 'n8n-workflow';
|
import { type ICredentialType } from 'n8n-workflow';
|
||||||
|
|
||||||
|
import { getCredentialSaveButton, saveCredential } from '../composables/modals/credential-modal';
|
||||||
import {
|
import {
|
||||||
AGENT_NODE_NAME,
|
AGENT_NODE_NAME,
|
||||||
AI_TOOL_HTTP_NODE_NAME,
|
AI_TOOL_HTTP_NODE_NAME,
|
||||||
@@ -194,7 +195,7 @@ describe('Credentials', () => {
|
|||||||
credentialsModal.getters.credentialsEditModal().should('be.visible');
|
credentialsModal.getters.credentialsEditModal().should('be.visible');
|
||||||
credentialsModal.getters.name().click();
|
credentialsModal.getters.name().click();
|
||||||
credentialsModal.actions.renameCredential(NEW_CREDENTIAL_NAME);
|
credentialsModal.actions.renameCredential(NEW_CREDENTIAL_NAME);
|
||||||
credentialsModal.getters.saveButton().click();
|
saveCredential();
|
||||||
credentialsModal.getters.closeButton().click();
|
credentialsModal.getters.closeButton().click();
|
||||||
workflowPage.getters
|
workflowPage.getters
|
||||||
.nodeCredentialsSelect()
|
.nodeCredentialsSelect()
|
||||||
@@ -212,7 +213,7 @@ describe('Credentials', () => {
|
|||||||
credentialsModal.getters.credentialsEditModal().should('be.visible');
|
credentialsModal.getters.credentialsEditModal().should('be.visible');
|
||||||
credentialsModal.getters.name().click();
|
credentialsModal.getters.name().click();
|
||||||
credentialsModal.actions.renameCredential(NEW_CREDENTIAL_NAME2);
|
credentialsModal.actions.renameCredential(NEW_CREDENTIAL_NAME2);
|
||||||
credentialsModal.getters.saveButton().click();
|
saveCredential();
|
||||||
credentialsModal.getters.closeButton().click();
|
credentialsModal.getters.closeButton().click();
|
||||||
workflowPage.getters
|
workflowPage.getters
|
||||||
.nodeCredentialsSelect()
|
.nodeCredentialsSelect()
|
||||||
@@ -237,7 +238,7 @@ describe('Credentials', () => {
|
|||||||
credentialsModal.getters.credentialsEditModal().should('be.visible');
|
credentialsModal.getters.credentialsEditModal().should('be.visible');
|
||||||
credentialsModal.getters.name().click();
|
credentialsModal.getters.name().click();
|
||||||
credentialsModal.actions.renameCredential(NEW_CREDENTIAL_NAME);
|
credentialsModal.actions.renameCredential(NEW_CREDENTIAL_NAME);
|
||||||
credentialsModal.getters.saveButton().click();
|
saveCredential();
|
||||||
credentialsModal.getters.closeButton().click();
|
credentialsModal.getters.closeButton().click();
|
||||||
workflowPage.getters
|
workflowPage.getters
|
||||||
.nodeCredentialsSelect()
|
.nodeCredentialsSelect()
|
||||||
@@ -342,7 +343,8 @@ describe('Credentials', () => {
|
|||||||
credentialsModal.getters.connectionParameter('Internal Integration Secret').type('1234567890');
|
credentialsModal.getters.connectionParameter('Internal Integration Secret').type('1234567890');
|
||||||
|
|
||||||
credentialsModal.actions.setName('My awesome Notion account');
|
credentialsModal.actions.setName('My awesome Notion account');
|
||||||
credentialsModal.getters.saveButton().click({ force: true });
|
getCredentialSaveButton().click();
|
||||||
|
|
||||||
errorToast().should('have.length', 1);
|
errorToast().should('have.length', 1);
|
||||||
errorToast().should('be.visible');
|
errorToast().should('be.visible');
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import { getCredentialSaveButton } from '../composables/modals/credential-modal';
|
||||||
import { CredentialsPage, CredentialsModal } from '../pages';
|
import { CredentialsPage, CredentialsModal } from '../pages';
|
||||||
|
|
||||||
const credentialsPage = new CredentialsPage();
|
const credentialsPage = new CredentialsPage();
|
||||||
@@ -40,7 +41,7 @@ describe('Credentials', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// Check that the credential was saved and connected successfully
|
// Check that the credential was saved and connected successfully
|
||||||
credentialsModal.getters.saveButton().should('contain.text', 'Saved');
|
getCredentialSaveButton().should('contain.text', 'Saved');
|
||||||
credentialsModal.getters.oauthConnectSuccessBanner().should('be.visible');
|
credentialsModal.getters.oauthConnectSuccessBanner().should('be.visible');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import { getCredentialSaveButton, saveCredential } from '../../composables/modals/credential-modal';
|
||||||
import { getVisibleSelect } from '../../utils';
|
import { getVisibleSelect } from '../../utils';
|
||||||
import { BasePage } from '../base';
|
import { BasePage } from '../base';
|
||||||
|
|
||||||
@@ -13,8 +14,6 @@ export class CredentialsModal extends BasePage {
|
|||||||
this.getters.credentialInputs().find(`:contains('${fieldName}') .n8n-input input`),
|
this.getters.credentialInputs().find(`:contains('${fieldName}') .n8n-input input`),
|
||||||
name: () => cy.getByTestId('credential-name'),
|
name: () => cy.getByTestId('credential-name'),
|
||||||
nameInput: () => cy.getByTestId('credential-name').find('input'),
|
nameInput: () => cy.getByTestId('credential-name').find('input'),
|
||||||
// Saving of the credentials takes a while on the CI so we need to increase the timeout
|
|
||||||
saveButton: () => cy.getByTestId('credential-save-button', { timeout: 5000 }),
|
|
||||||
deleteButton: () => cy.getByTestId('credential-delete-button'),
|
deleteButton: () => cy.getByTestId('credential-delete-button'),
|
||||||
closeButton: () => this.getters.editCredentialModal().find('.el-dialog__close').first(),
|
closeButton: () => this.getters.editCredentialModal().find('.el-dialog__close').first(),
|
||||||
oauthConnectButton: () => cy.getByTestId('oauth-connect-button'),
|
oauthConnectButton: () => cy.getByTestId('oauth-connect-button'),
|
||||||
@@ -41,17 +40,17 @@ export class CredentialsModal extends BasePage {
|
|||||||
},
|
},
|
||||||
save: (test = false) => {
|
save: (test = false) => {
|
||||||
cy.intercept('POST', '/rest/credentials').as('saveCredential');
|
cy.intercept('POST', '/rest/credentials').as('saveCredential');
|
||||||
this.getters.saveButton().click({ force: true });
|
saveCredential();
|
||||||
|
|
||||||
cy.wait('@saveCredential');
|
cy.wait('@saveCredential');
|
||||||
if (test) cy.wait('@testCredential');
|
if (test) cy.wait('@testCredential');
|
||||||
this.getters.saveButton().should('contain.text', 'Saved');
|
getCredentialSaveButton().should('contain.text', 'Saved');
|
||||||
},
|
},
|
||||||
saveSharing: () => {
|
saveSharing: () => {
|
||||||
cy.intercept('PUT', '/rest/credentials/*/share').as('shareCredential');
|
cy.intercept('PUT', '/rest/credentials/*/share').as('shareCredential');
|
||||||
this.getters.saveButton().click({ force: true });
|
saveCredential();
|
||||||
cy.wait('@shareCredential');
|
cy.wait('@shareCredential');
|
||||||
this.getters.saveButton().should('contain.text', 'Saved');
|
getCredentialSaveButton().should('contain.text', 'Saved');
|
||||||
},
|
},
|
||||||
close: () => {
|
close: () => {
|
||||||
this.getters.closeButton().click();
|
this.getters.closeButton().click();
|
||||||
@@ -65,7 +64,7 @@ export class CredentialsModal extends BasePage {
|
|||||||
.each(($el) => {
|
.each(($el) => {
|
||||||
cy.wrap($el).type('test');
|
cy.wrap($el).type('test');
|
||||||
});
|
});
|
||||||
this.getters.saveButton().click();
|
saveCredential();
|
||||||
if (closeModal) {
|
if (closeModal) {
|
||||||
this.getters.closeButton().click();
|
this.getters.closeButton().click();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user