diff --git a/console/cypress/integration/data/insert-browse/spec.js b/console/cypress/integration/data/insert-browse/spec.js index 246ade76..6a6cf796 100644 --- a/console/cypress/integration/data/insert-browse/spec.js +++ b/console/cypress/integration/data/insert-browse/spec.js @@ -442,7 +442,9 @@ export const checkViewRelationship = () => { // Add relationship cy.get(getElementFromAlias('add-rel-mod')).click(); cy.get(getElementFromAlias('obj-rel-add-0')).click(); - cy.get(getElementFromAlias('suggested-rel-name')).type('someRel'); + cy.get(getElementFromAlias('suggested-rel-name')) + .clear() + .type('someRel'); cy.get(getElementFromAlias('obj-rel-save-0')).click(); cy.wait(300); // Insert a row diff --git a/console/cypress/integration/data/relationships/spec.js b/console/cypress/integration/data/relationships/spec.js index 7b2b6cae..9a065c35 100644 --- a/console/cypress/integration/data/relationships/spec.js +++ b/console/cypress/integration/data/relationships/spec.js @@ -172,7 +172,9 @@ export const passRTAddSuggestedRel = () => { cy.get(getElementFromAlias('article_table_rt')).click(); cy.get(getElementFromAlias('table-relationships')).click(); cy.get(getElementFromAlias('obj-rel-add-0')).click(); - cy.get(getElementFromAlias('suggested-rel-name')).type('author'); + cy.get(getElementFromAlias('suggested-rel-name')) + .clear() + .type('author'); cy.get(getElementFromAlias('obj-rel-save-0')).click(); cy.wait(15000); validateColumn( @@ -183,7 +185,9 @@ export const passRTAddSuggestedRel = () => { cy.get(getElementFromAlias('article_table_rt')).click(); cy.get(getElementFromAlias('table-relationships')).click(); cy.get(getElementFromAlias('arr-rel-add-0')).click(); - cy.get(getElementFromAlias('suggested-rel-name')).type('comments'); + cy.get(getElementFromAlias('suggested-rel-name')) + .clear() + .type('comments'); cy.get(getElementFromAlias('arr-rel-save-0')).click(); cy.wait(15000); validateColumn( @@ -197,10 +201,13 @@ export const failRTAddSuggestedRel = () => { cy.get(getElementFromAlias('article_table_rt')).click(); cy.get(getElementFromAlias('table-relationships')).click(); cy.get(getElementFromAlias('obj-rel-add-0')).click(); + cy.get(getElementFromAlias('suggested-rel-name')).clear(); cy.get(getElementFromAlias('obj-rel-save-0')).click(); // cy.get('.notification-error'); cy.wait(15000); - cy.get(getElementFromAlias('suggested-rel-name')).type(123123); + cy.get(getElementFromAlias('suggested-rel-name')) + .clear() + .type(123123); cy.get('button') .contains('Save') .click(); @@ -214,7 +221,9 @@ export const failRTAddSuggestedRel = () => { cy.get(getElementFromAlias('article_table_rt')).click(); cy.get(getElementFromAlias('table-relationships')).click(); cy.get(getElementFromAlias('obj-rel-add-0')).click(); - cy.get(getElementFromAlias('suggested-rel-name')).type('author'); + cy.get(getElementFromAlias('suggested-rel-name')) + .clear() + .type('author'); cy.get(getElementFromAlias('obj-rel-save-0')).click(); cy.wait(15000); validateColumn( @@ -225,7 +234,9 @@ export const failRTAddSuggestedRel = () => { cy.get(getElementFromAlias('article_table_rt')).click(); cy.get(getElementFromAlias('table-relationships')).click(); cy.get(getElementFromAlias('arr-rel-add-0')).click(); - cy.get(getElementFromAlias('suggested-rel-name')).type('author'); + cy.get(getElementFromAlias('suggested-rel-name')) + .clear() + .type('author'); cy.get(getElementFromAlias('arr-rel-save-0')).click(); cy.wait(15000); // cy.get('.notification-error'); diff --git a/console/src/components/Services/Data/TableRelationships/Actions.js b/console/src/components/Services/Data/TableRelationships/Actions.js index 7277cabc..ba6fd7e7 100644 --- a/console/src/components/Services/Data/TableRelationships/Actions.js +++ b/console/src/components/Services/Data/TableRelationships/Actions.js @@ -336,21 +336,25 @@ const sanitizeRelName = arg => }); const formRelName = relMeta => { - let finalRelName; - // remove special chars and change first letter after underscore to uppercase - const targetTable = sanitizeRelName(relMeta.rTable); - if (relMeta.isObjRel) { - const objLCol = sanitizeRelName(relMeta.lcol.join(',')); - finalRelName = `${targetTable}By${objLCol}`; - } else { - const arrRCol = sanitizeRelName(relMeta.rcol.join(',')); - finalRelName = - `${ - targetTable - // (targetTable[targetTable.length - 1] !== 's' ? 's' : '') + // add s only if the last char is not s - }s` + `By${arrRCol}`; + try { + let finalRelName; + // remove special chars and change first letter after underscore to uppercase + const targetTable = sanitizeRelName(relMeta.rTable); + if (relMeta.isObjRel) { + const objLCol = sanitizeRelName(relMeta.lcol.join(',')); + finalRelName = `${targetTable}By${objLCol}`; + } else { + const arrRCol = sanitizeRelName(relMeta.rcol.join(',')); + finalRelName = + `${ + targetTable + // (targetTable[targetTable.length - 1] !== 's' ? 's' : '') + // add s only if the last char is not s + }s` + `By${arrRCol}`; + } + return finalRelName; + } catch (e) { + return ''; } - return finalRelName; }; const getAllUnTrackedRelations = (allSchemas, currentSchema) => { diff --git a/console/src/components/Services/Data/TableRelationships/Relationships.js b/console/src/components/Services/Data/TableRelationships/Relationships.js index 24456445..84d10d76 100644 --- a/console/src/components/Services/Data/TableRelationships/Relationships.js +++ b/console/src/components/Services/Data/TableRelationships/Relationships.js @@ -10,6 +10,7 @@ import { relNameChanged, resetRelationshipForm, relManualAddClicked, + formRelName, } from './Actions'; import { findAllFromRel } from '../utils'; import { showErrorNotification } from '../Notification'; @@ -111,6 +112,7 @@ const addRelationshipCellView = ( const onAdd = e => { e.preventDefault(); dispatch(relSelectionChanged(rel)); + dispatch(relNameChanged(formRelName(rel))); }; const onRelationshipNameChanged = e => {