mirror of
https://github.com/n8n-io/n8n.git
synced 2025-02-21 02:56:40 -08: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:
parent
206b6b90b8
commit
2e73f4abd0
|
@ -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) => {
|
||||
|
|
|
@ -58,8 +58,8 @@ Cypress.Commands.add('waitForLoad', (waitForIntercepts = true) => {
|
|||
// These aliases are set-up before each test in cypress/support/e2e.ts
|
||||
// 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'])
|
||||
if (waitForIntercepts) {
|
||||
cy.wait(['@loadSettings', '@loadLogin']);
|
||||
}
|
||||
cy.getByTestId('node-view-loader', { timeout: 20000 }).should('not.exist');
|
||||
cy.get('.el-loading-mask', { timeout: 20000 }).should('not.exist');
|
||||
|
@ -243,8 +243,8 @@ Cypress.Commands.add('drag', (selector, pos, options) => {
|
|||
element.trigger('mousedown');
|
||||
element.trigger('mousemove', {
|
||||
which: 1,
|
||||
pageX: options?.abs? xDiff: originalLocation.right + xDiff,
|
||||
pageY: options?.abs? yDiff: originalLocation.top + yDiff,
|
||||
pageX: options?.abs ? xDiff : originalLocation.right + xDiff,
|
||||
pageY: options?.abs ? yDiff : originalLocation.top + yDiff,
|
||||
force: true,
|
||||
});
|
||||
element.trigger('mouseup', { force: true });
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue