mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-17 10:02:05 +00:00
fix: Correctly allow sharees to test credential when opening the modal (#6111)
* fix: Prevent incorrect error message when sharee opens a credential * test: Add testing for automated credential testing * chore: Remove unnecessary comments
This commit is contained in:
@@ -164,4 +164,12 @@ describe('Sharing', () => {
|
||||
workflowsPage.getters.workflowCard('Workflow W2').click();
|
||||
workflowPage.actions.executeWorkflow();
|
||||
});
|
||||
|
||||
it('should automatically test C2 when opened by U2 sharee', () => {
|
||||
cy.signin(users[0]);
|
||||
|
||||
cy.visit(credentialsPage.url);
|
||||
credentialsPage.getters.credentialCard('Credential C2').click();
|
||||
credentialsModal.getters.testSuccessTag().should('be.visible');
|
||||
});
|
||||
});
|
||||
|
||||
@@ -10,9 +10,7 @@ export class CredentialsModal extends BasePage {
|
||||
newCredentialTypeButton: () => cy.getByTestId('new-credential-type-button'),
|
||||
connectionParameters: () => cy.getByTestId('credential-connection-parameter'),
|
||||
connectionParameter: (fieldName: string) =>
|
||||
this.getters
|
||||
.connectionParameters()
|
||||
.find(`:contains('${fieldName}') .n8n-input input`),
|
||||
this.getters.connectionParameters().find(`:contains('${fieldName}') .n8n-input input`),
|
||||
name: () => cy.getByTestId('credential-name'),
|
||||
nameInput: () => cy.getByTestId('credential-name').find('input'),
|
||||
// Saving of the credentials takes a while on the CI so we need to increase the timeout
|
||||
@@ -27,6 +25,7 @@ export class CredentialsModal extends BasePage {
|
||||
menu: () => this.getters.editCredentialModal().get('.menu-container'),
|
||||
menuItem: (name: string) => this.getters.menu().get('.n8n-menu-item').contains(name),
|
||||
usersSelect: () => cy.getByTestId('credential-sharing-modal-users-select'),
|
||||
testSuccessTag: () => cy.getByTestId('credentials-config-container-test-success'),
|
||||
};
|
||||
actions = {
|
||||
addUser: (email: string) => {
|
||||
|
||||
@@ -59,7 +59,7 @@ Cypress.Commands.add('waitForLoad', (waitForIntercepts = true) => {
|
||||
// we can't set them up here because at this point it would be too late
|
||||
// and the requests would already have been made
|
||||
if (waitForIntercepts) {
|
||||
cy.wait(['@loadSettings', '@loadLogin'])
|
||||
cy.wait(['@loadSettings', '@loadLogin']);
|
||||
}
|
||||
cy.getByTestId('node-view-loader', { timeout: 20000 }).should('not.exist');
|
||||
cy.get('.el-loading-mask', { timeout: 20000 }).should('not.exist');
|
||||
|
||||
@@ -58,6 +58,7 @@
|
||||
:buttonTitle="$locale.baseText('credentialEdit.credentialConfig.retryCredentialTest')"
|
||||
:buttonLoading="isRetesting"
|
||||
@click="$emit('retest')"
|
||||
data-test-id="credentials-config-container-test-success"
|
||||
/>
|
||||
|
||||
<template v-if="credentialPermissions.updateConnection">
|
||||
|
||||
@@ -256,7 +256,9 @@ export default mixins(showMessage, nodeHelpers).extend({
|
||||
|
||||
setTimeout(() => {
|
||||
if (this.credentialId) {
|
||||
if (!this.requiredPropertiesFilled) {
|
||||
if (!this.requiredPropertiesFilled && this.credentialPermissions.isOwner === true) {
|
||||
// sharees can't see properties, so this check would always fail for them
|
||||
// if the credential contains required fields.
|
||||
this.showValidationWarning = true;
|
||||
} else {
|
||||
this.retestCredential();
|
||||
@@ -347,6 +349,10 @@ export default mixins(showMessage, nodeHelpers).extend({
|
||||
};
|
||||
},
|
||||
isCredentialTestable(): boolean {
|
||||
// Sharees can always test since they can't see the data.
|
||||
if (this.credentialPermissions.isOwner === false) {
|
||||
return true;
|
||||
}
|
||||
if (this.isOAuthType || !this.requiredPropertiesFilled) {
|
||||
return false;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user