|
|
|
@ -1,28 +1,45 @@
|
|
|
|
|
import { mainPage, settingsPage } from "../../support/page_objects/mainPage"; |
|
|
|
|
import { loginPage, projectsPage } from "../../support/page_objects/navigation"; |
|
|
|
|
import { |
|
|
|
|
isTestSuiteActive, |
|
|
|
|
sakilaSqlViews, |
|
|
|
|
sakilaTables, |
|
|
|
|
} from "../../support/page_objects/projectConstants"; |
|
|
|
|
import { mainPage } from "../../support/page_objects/mainPage"; |
|
|
|
|
import {loginPage} from "../../support/page_objects/navigation"; |
|
|
|
|
import { isTestSuiteActive, mysqlSakilaSqlViews, mysqlSakilaTables, pgSakilaSqlViews, pgSakilaTables, sqliteSakilaSqlViews } from "../../support/page_objects/projectConstants"; |
|
|
|
|
|
|
|
|
|
import {getProjectString} from "../../support/page_objects/projectConstants"; |
|
|
|
|
|
|
|
|
|
export const genTest = (apiType, dbType) => { |
|
|
|
|
if (!isTestSuiteActive(apiType, dbType)) return; |
|
|
|
|
|
|
|
|
|
let projectId; |
|
|
|
|
let sakilaTables, sakilaSqlViews; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
describe(`${apiType.toUpperCase()} ERD`, () => { |
|
|
|
|
// before(() => {
|
|
|
|
|
// loginPage.loginAndOpenProject(apiType, dbType);
|
|
|
|
|
// cy.openTableTab("Country", 25);
|
|
|
|
|
// cy.saveLocalStorage();
|
|
|
|
|
// });
|
|
|
|
|
before(() => { |
|
|
|
|
cy.restoreLocalStorage(); |
|
|
|
|
|
|
|
|
|
// loginPage.loginAndOpenProject(apiType, dbType);
|
|
|
|
|
|
|
|
|
|
cy.openTableTab("Country", 25); |
|
|
|
|
projectId = getProjectString() |
|
|
|
|
cy.log('erd:getProjectString' + projectId) |
|
|
|
|
if (dbType === "postgres") { |
|
|
|
|
sakilaTables = pgSakilaTables; |
|
|
|
|
sakilaSqlViews = pgSakilaSqlViews; |
|
|
|
|
} else if(dbType === "mysql") { |
|
|
|
|
sakilaTables = mysqlSakilaTables; |
|
|
|
|
sakilaSqlViews = mysqlSakilaSqlViews; |
|
|
|
|
} else if(dbType === "xcdb") { |
|
|
|
|
sakilaTables = mysqlSakilaTables.map((tableName) => `${projectId}${tableName}`); |
|
|
|
|
sakilaSqlViews = sqliteSakilaSqlViews.map((viewName) => `${projectId}${viewName}`); |
|
|
|
|
} |
|
|
|
|
cy.saveLocalStorage(); |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
beforeEach(() => { |
|
|
|
|
cy.restoreLocalStorage(); |
|
|
|
|
}); |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
afterEach(() => { |
|
|
|
|
cy.saveLocalStorage(); |
|
|
|
|
}); |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
after(() => { |
|
|
|
|
cy.restoreLocalStorage(); |
|
|
|
@ -33,417 +50,509 @@ export const genTest = (apiType, dbType) => {
|
|
|
|
|
// Test cases
|
|
|
|
|
|
|
|
|
|
it(`Enable MM setting Open Table ERD`, () => { |
|
|
|
|
cy.openTableTab("Country", 25); |
|
|
|
|
// cy.openTableTab("Country", 25);
|
|
|
|
|
mainPage.toggleShowMMSetting(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mainPage.openErdTab(); |
|
|
|
|
mainPage.closeMetaTab(); |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
it(`Verify ERD Context menu in all table view`, () => { |
|
|
|
|
mainPage.openErdTab(); |
|
|
|
|
cy.get(".nc-erd-context-menu").should("be.visible"); |
|
|
|
|
cy.get(".nc-erd-context-menu") |
|
|
|
|
.get(".nc-erd-histogram") |
|
|
|
|
.should("be.visible"); |
|
|
|
|
cy.get(".nc-erd-context-menu") |
|
|
|
|
.find(".ant-checkbox") |
|
|
|
|
.should("have.length", 3); |
|
|
|
|
cy.get(".nc-erd-context-menu") |
|
|
|
|
.find(".ant-checkbox") |
|
|
|
|
.eq(0) |
|
|
|
|
.should("have.class", "ant-checkbox-checked"); |
|
|
|
|
cy.get(".nc-erd-context-menu") |
|
|
|
|
.find(".ant-checkbox") |
|
|
|
|
.eq(1) |
|
|
|
|
.should("have.class", "ant-checkbox-checked"); |
|
|
|
|
cy.get(".nc-erd-context-menu") |
|
|
|
|
.find(".ant-checkbox") |
|
|
|
|
.eq(2) |
|
|
|
|
.should("not.have.class", "ant-checkbox-checked"); |
|
|
|
|
|
|
|
|
|
cy.get(".nc-erd-context-menu") |
|
|
|
|
.find(".nc-erd-showColumns-label") |
|
|
|
|
.dblclick(); |
|
|
|
|
cy.get(".nc-erd-context-menu") |
|
|
|
|
.find(".ant-checkbox") |
|
|
|
|
.should("have.length", 5); |
|
|
|
|
cy.get('.nc-erd-context-menu').should('be.visible'); |
|
|
|
|
cy.get('.nc-erd-context-menu').get('.nc-erd-histogram').should('be.visible'); |
|
|
|
|
cy.get('.nc-erd-context-menu').find('.ant-checkbox').should('have.length', 3); |
|
|
|
|
cy.get('.nc-erd-context-menu').find('.ant-checkbox').eq(0).should('have.class', 'ant-checkbox-checked'); |
|
|
|
|
cy.get('.nc-erd-context-menu').find('.ant-checkbox').eq(1).should('have.class', 'ant-checkbox-checked'); |
|
|
|
|
cy.get('.nc-erd-context-menu').find('.ant-checkbox').eq(2).should('not.have.class', 'ant-checkbox-checked'); |
|
|
|
|
|
|
|
|
|
cy.get('.nc-erd-context-menu').find('.nc-erd-showColumns-label').dblclick(); |
|
|
|
|
cy.get('.nc-erd-context-menu').find('.ant-checkbox').should('have.length', 5); |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
it("Verify ERD of all tables view and verify columns of actor and payment with default config", () => { |
|
|
|
|
cy.get(".nc-erd-vue-flow") |
|
|
|
|
.find(".nc-erd-table-node") |
|
|
|
|
.should("have.length", 12); |
|
|
|
|
cy.get(".nc-erd-vue-flow") |
|
|
|
|
.find(".vue-flow__edge") |
|
|
|
|
.should("have.length", 14); |
|
|
|
|
cy.get(".nc-erd-vue-flow") |
|
|
|
|
.find(".nc-erd-edge-circle") |
|
|
|
|
.should("have.length", 11); |
|
|
|
|
cy.get(".nc-erd-vue-flow") |
|
|
|
|
.find(".nc-erd-edge-rect") |
|
|
|
|
.should("have.length", 17); |
|
|
|
|
|
|
|
|
|
for (const tableName of sakilaTables) { |
|
|
|
|
cy.get(".nc-erd-vue-flow") |
|
|
|
|
.find(`.nc-erd-table-node-${tableName}`) |
|
|
|
|
.should("exist"); |
|
|
|
|
if(dbType === "mysql") { |
|
|
|
|
cy.get('.nc-erd-vue-flow').find('.nc-erd-table-node').should('have.length', 12) |
|
|
|
|
cy.get('.nc-erd-vue-flow').find('.vue-flow__edge').should('have.length', 14) |
|
|
|
|
cy.get('.nc-erd-vue-flow').find('.nc-erd-edge-circle').should('have.length', 11) |
|
|
|
|
cy.get('.nc-erd-vue-flow').find('.nc-erd-edge-rect').should('have.length', 17) |
|
|
|
|
} else if (dbType === "postgres") { |
|
|
|
|
cy.get('.nc-erd-vue-flow').find('.nc-erd-table-node').should('have.length', 17) |
|
|
|
|
cy.get('.nc-erd-vue-flow').find('.vue-flow__edge').should('have.length', 32) |
|
|
|
|
cy.get('.nc-erd-vue-flow').find('.nc-erd-edge-circle').should('have.length', 29) |
|
|
|
|
cy.get('.nc-erd-vue-flow').find('.nc-erd-edge-rect').should('have.length', 35) |
|
|
|
|
} else { |
|
|
|
|
cy.get('.nc-erd-vue-flow').find('.nc-erd-table-node').should('have.length', 12) |
|
|
|
|
cy.get('.nc-erd-vue-flow').find('.vue-flow__edge').should('have.length', 14) |
|
|
|
|
cy.get('.nc-erd-vue-flow').find('.nc-erd-edge-circle').should('have.length', 11) |
|
|
|
|
cy.get('.nc-erd-vue-flow').find('.nc-erd-edge-rect').should('have.length', 17) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
for(const tableName of sakilaTables) { |
|
|
|
|
cy.get('.nc-erd-vue-flow').find(`.nc-erd-table-node-${tableName}`).should('exist'); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Actor table
|
|
|
|
|
[ |
|
|
|
|
"actor_id", |
|
|
|
|
"first_name", |
|
|
|
|
"last_name", |
|
|
|
|
"last_update", |
|
|
|
|
"film_list", |
|
|
|
|
'actor_id', |
|
|
|
|
'first_name', |
|
|
|
|
'last_name', |
|
|
|
|
'last_update', |
|
|
|
|
'film_list' |
|
|
|
|
].forEach((colTitle) => { |
|
|
|
|
cy.get(".nc-erd-vue-flow") |
|
|
|
|
.find(`.nc-erd-table-node-actor`) |
|
|
|
|
.find(`.nc-erd-table-node-actor-column-${colTitle}`) |
|
|
|
|
.should("exist"); |
|
|
|
|
if (dbType === "xcdb") { |
|
|
|
|
cy.get('.nc-erd-vue-flow').find(`.nc-erd-table-node-${projectId}actor`).find(`.nc-erd-table-node-${projectId}actor-column-${colTitle}`).should('exist'); |
|
|
|
|
} else { |
|
|
|
|
cy.get('.nc-erd-vue-flow').find(`.nc-erd-table-node-actor`).find(`.nc-erd-table-node-actor-column-${colTitle}`).should('exist'); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
// Payment table
|
|
|
|
|
[ |
|
|
|
|
"payment_id", |
|
|
|
|
"customer_id", |
|
|
|
|
"staff_id", |
|
|
|
|
"rental_id", |
|
|
|
|
"amount", |
|
|
|
|
"payment_date", |
|
|
|
|
"last_update", |
|
|
|
|
"customer", |
|
|
|
|
"rental", |
|
|
|
|
"staff", |
|
|
|
|
].forEach((colTitle) => { |
|
|
|
|
cy.get(".nc-erd-vue-flow") |
|
|
|
|
.find(`.nc-erd-table-node-payment`) |
|
|
|
|
.find(`.nc-erd-table-node-payment-column-${colTitle}`) |
|
|
|
|
.should("exist"); |
|
|
|
|
}); |
|
|
|
|
if(dbType === "mysql") { |
|
|
|
|
[ |
|
|
|
|
'payment_id', |
|
|
|
|
'customer_id', |
|
|
|
|
'staff_id', |
|
|
|
|
'rental_id', |
|
|
|
|
'amount', |
|
|
|
|
'payment_date', |
|
|
|
|
'last_update', |
|
|
|
|
'customer', |
|
|
|
|
'rental', |
|
|
|
|
'staff' |
|
|
|
|
] |
|
|
|
|
.forEach((colTitle) => { |
|
|
|
|
cy.get('.nc-erd-vue-flow').find(`.nc-erd-table-node-payment`).find(`.nc-erd-table-node-payment-column-${colTitle}`).should('exist'); |
|
|
|
|
}); |
|
|
|
|
} else if(dbType === "postgres") { |
|
|
|
|
[ |
|
|
|
|
'payment_id', |
|
|
|
|
'customer_id', |
|
|
|
|
'staff_id', |
|
|
|
|
'rental_id', |
|
|
|
|
'amount', |
|
|
|
|
'payment_date', |
|
|
|
|
'customer', |
|
|
|
|
'rental', |
|
|
|
|
'staff' |
|
|
|
|
] |
|
|
|
|
.forEach((colTitle) => { |
|
|
|
|
cy.get('.nc-erd-vue-flow').find(`.nc-erd-table-node-payment`).find(`.nc-erd-table-node-payment-column-${colTitle}`).should('exist'); |
|
|
|
|
}); |
|
|
|
|
} else { |
|
|
|
|
[ |
|
|
|
|
'payment_id', |
|
|
|
|
'customer_id', |
|
|
|
|
'staff_id', |
|
|
|
|
'rental_id', |
|
|
|
|
'amount', |
|
|
|
|
'payment_date', |
|
|
|
|
'last_update', |
|
|
|
|
'customer', |
|
|
|
|
'rental', |
|
|
|
|
'staff' |
|
|
|
|
] |
|
|
|
|
.forEach((colTitle) => { |
|
|
|
|
cy.get('.nc-erd-vue-flow').find(`.nc-erd-table-node-${projectId}payment`).find(`.nc-erd-table-node-${projectId}payment-column-${colTitle}`).should('exist'); |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
it("Verify ERD of all tables view and verify columns of actor and payment with default config with showAllColumn disabled", () => { |
|
|
|
|
cy.get(".nc-erd-context-menu") |
|
|
|
|
.get(".nc-erd-showColumns-checkbox") |
|
|
|
|
.click(); |
|
|
|
|
cy.get(".nc-erd-showPkAndFk-checkbox-disabled").should("exist"); |
|
|
|
|
cy.get(".nc-erd-showPkAndFk-checkbox-unchecked").should("exist"); |
|
|
|
|
cy.get('.nc-erd-context-menu').get('.nc-erd-showColumns-checkbox').click(); |
|
|
|
|
cy.get('.nc-erd-showPkAndFk-checkbox-disabled').should('exist'); |
|
|
|
|
cy.get('.nc-erd-showPkAndFk-checkbox-unchecked').should('exist'); |
|
|
|
|
|
|
|
|
|
// Actor table
|
|
|
|
|
["film_list"].forEach((colTitle) => { |
|
|
|
|
cy.get(".nc-erd-vue-flow") |
|
|
|
|
.find(`.nc-erd-table-node-actor`) |
|
|
|
|
.find(`.nc-erd-table-node-actor-column-${colTitle}`) |
|
|
|
|
.should("exist"); |
|
|
|
|
[ |
|
|
|
|
'film_list' |
|
|
|
|
].forEach((colTitle) => { |
|
|
|
|
if(dbType === "xcdb") { |
|
|
|
|
cy.get('.nc-erd-vue-flow').find(`.nc-erd-table-node-${projectId}actor`).find(`.nc-erd-table-node-${projectId}actor-column-${colTitle}`).should('exist'); |
|
|
|
|
} else { |
|
|
|
|
cy.get('.nc-erd-vue-flow').find(`.nc-erd-table-node-actor`).find(`.nc-erd-table-node-actor-column-${colTitle}`).should('exist'); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
// Payment table
|
|
|
|
|
["customer", "rental", "staff"].forEach((colTitle) => { |
|
|
|
|
cy.get(".nc-erd-vue-flow") |
|
|
|
|
.find(`.nc-erd-table-node-payment`) |
|
|
|
|
.find(`.nc-erd-table-node-payment-column-${colTitle}`) |
|
|
|
|
.should("exist"); |
|
|
|
|
[ |
|
|
|
|
'customer', |
|
|
|
|
'rental', |
|
|
|
|
'staff' |
|
|
|
|
].forEach((colTitle) => { |
|
|
|
|
if(dbType === "xcdb") { |
|
|
|
|
cy.get('.nc-erd-vue-flow').find(`.nc-erd-table-node-${projectId}payment`).find(`.nc-erd-table-node-${projectId}payment-column-${colTitle}`).should('exist'); |
|
|
|
|
} else { |
|
|
|
|
cy.get('.nc-erd-vue-flow').find(`.nc-erd-table-node-payment`).find(`.nc-erd-table-node-payment-column-${colTitle}`).should('exist'); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
it("Verify ERD of all tables view and verify columns of actor and payment with default config with showPkAndFk disabled", () => { |
|
|
|
|
// enable showAllColumn
|
|
|
|
|
cy.get(".nc-erd-context-menu") |
|
|
|
|
.get(".nc-erd-showColumns-checkbox") |
|
|
|
|
.click(); |
|
|
|
|
cy.get(".nc-erd-context-menu") |
|
|
|
|
.get(".nc-erd-showPkAndFk-checkbox") |
|
|
|
|
.click(); |
|
|
|
|
cy.get('.nc-erd-context-menu').get('.nc-erd-showColumns-checkbox').click(); |
|
|
|
|
cy.get('.nc-erd-context-menu').get('.nc-erd-showPkAndFk-checkbox').click(); |
|
|
|
|
|
|
|
|
|
// Actor table
|
|
|
|
|
["last_name", "last_update", "film_list"].forEach((colTitle) => { |
|
|
|
|
cy.get(".nc-erd-vue-flow") |
|
|
|
|
.find(`.nc-erd-table-node-actor`) |
|
|
|
|
.find(`.nc-erd-table-node-actor-column-${colTitle}`) |
|
|
|
|
.should("exist"); |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
// Payment table
|
|
|
|
|
[ |
|
|
|
|
"amount", |
|
|
|
|
"payment_date", |
|
|
|
|
"last_update", |
|
|
|
|
"customer", |
|
|
|
|
"rental", |
|
|
|
|
"staff", |
|
|
|
|
'last_name', |
|
|
|
|
'last_update', |
|
|
|
|
'film_list' |
|
|
|
|
].forEach((colTitle) => { |
|
|
|
|
cy.get(".nc-erd-vue-flow") |
|
|
|
|
.find(`.nc-erd-table-node-payment`) |
|
|
|
|
.find(`.nc-erd-table-node-payment-column-${colTitle}`) |
|
|
|
|
.should("exist"); |
|
|
|
|
if(dbType === "xcdb") { |
|
|
|
|
cy.get('.nc-erd-vue-flow').find(`.nc-erd-table-node-${projectId}actor`).find(`.nc-erd-table-node-${projectId}actor-column-${colTitle}`).should('exist'); |
|
|
|
|
} else { |
|
|
|
|
cy.get('.nc-erd-vue-flow').find(`.nc-erd-table-node-actor`).find(`.nc-erd-table-node-actor-column-${colTitle}`).should('exist'); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
// Payment table
|
|
|
|
|
if(dbType === "mysql") { |
|
|
|
|
[ |
|
|
|
|
'amount', |
|
|
|
|
'payment_date', |
|
|
|
|
'last_update', |
|
|
|
|
'customer', |
|
|
|
|
'rental', |
|
|
|
|
'staff' |
|
|
|
|
].forEach((colTitle) => { |
|
|
|
|
cy.get('.nc-erd-vue-flow').find(`.nc-erd-table-node-payment`).find(`.nc-erd-table-node-payment-column-${colTitle}`).should('exist'); |
|
|
|
|
}); |
|
|
|
|
} else if(dbType === "postgres") { |
|
|
|
|
[ |
|
|
|
|
'amount', |
|
|
|
|
'payment_date', |
|
|
|
|
'customer', |
|
|
|
|
'rental', |
|
|
|
|
'staff' |
|
|
|
|
].forEach((colTitle) => { |
|
|
|
|
cy.get('.nc-erd-vue-flow').find(`.nc-erd-table-node-payment`).find(`.nc-erd-table-node-payment-column-${colTitle}`).should('exist'); |
|
|
|
|
}); |
|
|
|
|
} else { |
|
|
|
|
[ |
|
|
|
|
'amount', |
|
|
|
|
'payment_date', |
|
|
|
|
'last_update', |
|
|
|
|
'customer', |
|
|
|
|
'rental', |
|
|
|
|
'staff' |
|
|
|
|
].forEach((colTitle) => { |
|
|
|
|
cy.get('.nc-erd-vue-flow').find(`.nc-erd-table-node-${projectId}payment`).find(`.nc-erd-table-node-${projectId}payment-column-${colTitle}`).should('exist'); |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
it("Verify ERD of all tables view with sql grid on and verify columns of ActorInfo", () => { |
|
|
|
|
cy.get(".nc-erd-context-menu").get(".nc-erd-showViews-checkbox").click(); |
|
|
|
|
|
|
|
|
|
cy.get(".nc-erd-vue-flow") |
|
|
|
|
.find(".nc-erd-table-node") |
|
|
|
|
.should("have.length", 19); |
|
|
|
|
cy.get(".nc-erd-vue-flow") |
|
|
|
|
.find(".vue-flow__edge") |
|
|
|
|
.should("have.length", 14); |
|
|
|
|
cy.get(".nc-erd-vue-flow") |
|
|
|
|
.find(".nc-erd-edge-circle") |
|
|
|
|
.should("have.length", 11); |
|
|
|
|
cy.get(".nc-erd-vue-flow") |
|
|
|
|
.find(".nc-erd-edge-rect") |
|
|
|
|
.should("have.length", 17); |
|
|
|
|
|
|
|
|
|
for (const tableName of sakilaTables) { |
|
|
|
|
cy.get(".nc-erd-vue-flow") |
|
|
|
|
.find(`.nc-erd-table-node-${tableName}`) |
|
|
|
|
.should("exist"); |
|
|
|
|
cy.get('.nc-erd-context-menu').get('.nc-erd-showViews-checkbox').click(); |
|
|
|
|
|
|
|
|
|
if(dbType === "mysql") { |
|
|
|
|
cy.get('.nc-erd-vue-flow').find('.nc-erd-table-node').should('have.length', 19) |
|
|
|
|
cy.get('.nc-erd-vue-flow').find('.vue-flow__edge').should('have.length', 14) |
|
|
|
|
cy.get('.nc-erd-vue-flow').find('.nc-erd-edge-circle').should('have.length', 11) |
|
|
|
|
cy.get('.nc-erd-vue-flow').find('.nc-erd-edge-rect').should('have.length', 17) |
|
|
|
|
} else if(dbType === "postgres") { |
|
|
|
|
cy.get('.nc-erd-vue-flow').find('.nc-erd-table-node').should('have.length', 24) |
|
|
|
|
cy.get('.nc-erd-vue-flow').find('.vue-flow__edge').should('have.length', 32) |
|
|
|
|
cy.get('.nc-erd-vue-flow').find('.nc-erd-edge-circle').should('have.length', 29) |
|
|
|
|
cy.get('.nc-erd-vue-flow').find('.nc-erd-edge-rect').should('have.length', 35) |
|
|
|
|
} else { |
|
|
|
|
cy.get('.nc-erd-vue-flow').find('.nc-erd-table-node').should('have.length', 19) |
|
|
|
|
cy.get('.nc-erd-vue-flow').find('.vue-flow__edge').should('have.length', 14) |
|
|
|
|
cy.get('.nc-erd-vue-flow').find('.nc-erd-edge-circle').should('have.length', 11) |
|
|
|
|
cy.get('.nc-erd-vue-flow').find('.nc-erd-edge-rect').should('have.length', 17) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
for (const tableName of sakilaSqlViews) { |
|
|
|
|
cy.get(".nc-erd-vue-flow") |
|
|
|
|
.find(`.nc-erd-table-node-${tableName}`) |
|
|
|
|
.should("exist"); |
|
|
|
|
for(const tableName of sakilaTables) { |
|
|
|
|
cy.get('.nc-erd-vue-flow').find(`.nc-erd-table-node-${tableName}`).should('exist'); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
for(const tableName of sakilaSqlViews) { |
|
|
|
|
cy.get('.nc-erd-vue-flow').find(`.nc-erd-table-node-${tableName}`).should('exist'); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// ActorInfo SQL View
|
|
|
|
|
["actor_id", "first_name", "last_name", "film_info"].forEach( |
|
|
|
|
(colTitle) => { |
|
|
|
|
cy.get(".nc-erd-vue-flow") |
|
|
|
|
.find(`.nc-erd-table-node-actor_info`) |
|
|
|
|
.find(`.nc-erd-table-node-actor_info-column-${colTitle}`) |
|
|
|
|
.should("exist"); |
|
|
|
|
let actorInfoColumns; |
|
|
|
|
if(dbType === "xcdb") { |
|
|
|
|
actorInfoColumns = [ |
|
|
|
|
'ID', |
|
|
|
|
'name', |
|
|
|
|
'address', |
|
|
|
|
'zip_code', |
|
|
|
|
'phone', |
|
|
|
|
'city', |
|
|
|
|
'country', |
|
|
|
|
'SID', |
|
|
|
|
]; |
|
|
|
|
} else { |
|
|
|
|
actorInfoColumns = [ |
|
|
|
|
'actor_id', |
|
|
|
|
'first_name', |
|
|
|
|
'last_name', |
|
|
|
|
'film_info' |
|
|
|
|
]; |
|
|
|
|
} |
|
|
|
|
actorInfoColumns.forEach((colTitle) => { |
|
|
|
|
if(dbType === "xcdb") { |
|
|
|
|
cy.get('.nc-erd-vue-flow').find(`.nc-erd-table-node-${projectId}actor_info`).find(`.nc-erd-table-node-${projectId}actor_info-column-${colTitle}`).should('exist'); |
|
|
|
|
} else { |
|
|
|
|
cy.get('.nc-erd-vue-flow').find(`.nc-erd-table-node-actor_info`).find(`.nc-erd-table-node-actor_info-column-${colTitle}`).should('exist'); |
|
|
|
|
} |
|
|
|
|
); |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
it("Verify show MM tables", () => { |
|
|
|
|
cy.get(".nc-erd-vue-flow") |
|
|
|
|
.find(`.nc-erd-table-node-store`) |
|
|
|
|
.should("not.exist"); |
|
|
|
|
if(dbType === "xcdb") { |
|
|
|
|
cy.get('.nc-erd-vue-flow').find(`.nc-erd-table-node-${projectId}store`).should('not.exist'); |
|
|
|
|
} else { |
|
|
|
|
cy.get('.nc-erd-vue-flow').find(`.nc-erd-table-node-store`).should('not.exist'); |
|
|
|
|
} |
|
|
|
|
// disable showViews
|
|
|
|
|
cy.get(".nc-erd-context-menu").get(".nc-erd-showViews-checkbox").click(); |
|
|
|
|
cy.get(".nc-erd-context-menu") |
|
|
|
|
.get(".nc-erd-showMMTables-checkbox") |
|
|
|
|
.click(); |
|
|
|
|
|
|
|
|
|
cy.get(".nc-erd-vue-flow") |
|
|
|
|
.find(".nc-erd-table-node") |
|
|
|
|
.should("have.length", 16); |
|
|
|
|
cy.get(".nc-erd-vue-flow") |
|
|
|
|
.find(".vue-flow__edge") |
|
|
|
|
.should("have.length", 26); |
|
|
|
|
cy.get(".nc-erd-vue-flow") |
|
|
|
|
.find(".nc-erd-edge-circle") |
|
|
|
|
.should("have.length", 22); |
|
|
|
|
cy.get(".nc-erd-vue-flow") |
|
|
|
|
.find(".nc-erd-edge-rect") |
|
|
|
|
.should("have.length", 30); |
|
|
|
|
|
|
|
|
|
cy.get('.nc-erd-context-menu').get('.nc-erd-showViews-checkbox').click(); |
|
|
|
|
cy.get('.nc-erd-context-menu').get('.nc-erd-showMMTables-checkbox').click(); |
|
|
|
|
|
|
|
|
|
if(dbType === "mysql") { |
|
|
|
|
cy.get('.nc-erd-vue-flow').find('.nc-erd-table-node').should('have.length', 16) |
|
|
|
|
cy.get('.nc-erd-vue-flow').find('.vue-flow__edge').should('have.length', 26) |
|
|
|
|
cy.get('.nc-erd-vue-flow').find('.nc-erd-edge-circle').should('have.length', 22) |
|
|
|
|
cy.get('.nc-erd-vue-flow').find('.nc-erd-edge-rect').should('have.length', 30) |
|
|
|
|
} else if(dbType === "postgres") { |
|
|
|
|
cy.get('.nc-erd-vue-flow').find('.nc-erd-table-node').should('have.length', 21) |
|
|
|
|
cy.get('.nc-erd-vue-flow').find('.vue-flow__edge').should('have.length', 44) |
|
|
|
|
cy.get('.nc-erd-vue-flow').find('.nc-erd-edge-circle').should('have.length', 40) |
|
|
|
|
cy.get('.nc-erd-vue-flow').find('.nc-erd-edge-rect').should('have.length', 48) |
|
|
|
|
} else { |
|
|
|
|
cy.get('.nc-erd-vue-flow').find('.nc-erd-table-node').should('have.length', 16) |
|
|
|
|
cy.get('.nc-erd-vue-flow').find('.vue-flow__edge').should('have.length', 26) |
|
|
|
|
cy.get('.nc-erd-vue-flow').find('.nc-erd-edge-circle').should('have.length', 22) |
|
|
|
|
cy.get('.nc-erd-vue-flow').find('.nc-erd-edge-rect').should('have.length', 30) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Check if store table is present
|
|
|
|
|
cy.get(".nc-erd-vue-flow") |
|
|
|
|
.find(`.nc-erd-table-node-store`) |
|
|
|
|
.should("exist"); |
|
|
|
|
}); |
|
|
|
|
if(dbType === "xcdb") { |
|
|
|
|
cy.get('.nc-erd-vue-flow').find(`.nc-erd-table-node-${projectId}store`).should('exist'); |
|
|
|
|
} else { |
|
|
|
|
cy.get('.nc-erd-vue-flow').find(`.nc-erd-table-node-store`).should('exist'); |
|
|
|
|
} |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
it("Verify show junction table names", () => { |
|
|
|
|
// disable showViews
|
|
|
|
|
cy.get(".nc-erd-context-menu") |
|
|
|
|
.get(".nc-erd-showJunctionTableNames-checkbox") |
|
|
|
|
.click(); |
|
|
|
|
cy.get('.nc-erd-context-menu').get('.nc-erd-showJunctionTableNames-checkbox').click(); |
|
|
|
|
|
|
|
|
|
cy.get(".nc-erd-vue-flow") |
|
|
|
|
.get(".nc-erd-table-label-filmactor-film_actor") |
|
|
|
|
.should("exist"); |
|
|
|
|
if(dbType === "xcdb") { |
|
|
|
|
cy.get('.nc-erd-vue-flow').get(`.nc-erd-table-label-filmactor-${projectId}film_actor`).should('exist'); |
|
|
|
|
} else { |
|
|
|
|
cy.get('.nc-erd-vue-flow').get('.nc-erd-table-label-filmactor-film_actor').should('exist'); |
|
|
|
|
} |
|
|
|
|
mainPage.closeMetaTab(); |
|
|
|
|
}); |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
it("Verify table ERD view of country", () => { |
|
|
|
|
it('Verify table ERD view of country', () => { |
|
|
|
|
mainPage.openTableErdView(); |
|
|
|
|
|
|
|
|
|
cy.get(".nc-erd-vue-flow-single-table") |
|
|
|
|
.find(".nc-erd-table-node") |
|
|
|
|
.should("have.length", 2); |
|
|
|
|
cy.get(".nc-erd-vue-flow-single-table") |
|
|
|
|
.find(".vue-flow__edge") |
|
|
|
|
.should("have.length", 1); |
|
|
|
|
cy.get(".nc-erd-vue-flow-single-table") |
|
|
|
|
.find(".nc-erd-edge-circle") |
|
|
|
|
.should("have.length", 1); |
|
|
|
|
cy.get(".nc-erd-vue-flow-single-table") |
|
|
|
|
.find(".nc-erd-edge-rect") |
|
|
|
|
.should("have.length", 1); |
|
|
|
|
cy.get('.nc-erd-vue-flow-single-table').find('.nc-erd-table-node').should('have.length', 2) |
|
|
|
|
cy.get('.nc-erd-vue-flow-single-table').find('.vue-flow__edge').should('have.length', 1) |
|
|
|
|
cy.get('.nc-erd-vue-flow-single-table').find('.nc-erd-edge-circle').should('have.length', 1) |
|
|
|
|
cy.get('.nc-erd-vue-flow-single-table').find('.nc-erd-edge-rect').should('have.length', 1) |
|
|
|
|
|
|
|
|
|
const countryColumns = [ |
|
|
|
|
"country_id", |
|
|
|
|
"country", |
|
|
|
|
"last_update", |
|
|
|
|
"city_list", |
|
|
|
|
]; |
|
|
|
|
'country_id', |
|
|
|
|
'country', |
|
|
|
|
'last_update', |
|
|
|
|
'city_list' |
|
|
|
|
] |
|
|
|
|
|
|
|
|
|
// Country table
|
|
|
|
|
countryColumns.forEach((colTitle) => { |
|
|
|
|
cy.get(".nc-erd-vue-flow-single-table") |
|
|
|
|
.find(`.nc-erd-table-node-country`) |
|
|
|
|
.find(`.nc-erd-table-node-country-column-${colTitle}`) |
|
|
|
|
.should("exist"); |
|
|
|
|
if(dbType === "xcdb") { |
|
|
|
|
cy.get('.nc-erd-vue-flow-single-table').find(`.nc-erd-table-node-${projectId}country`).find(`.nc-erd-table-node-${projectId}country-column-${colTitle}`).should('exist'); |
|
|
|
|
} else { |
|
|
|
|
cy.get('.nc-erd-vue-flow-single-table').find(`.nc-erd-table-node-country`).find(`.nc-erd-table-node-country-column-${colTitle}`).should('exist'); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
const cityColumns = [ |
|
|
|
|
"city_id", |
|
|
|
|
"city", |
|
|
|
|
"last_update", |
|
|
|
|
"country", |
|
|
|
|
"address_list", |
|
|
|
|
]; |
|
|
|
|
'city_id', |
|
|
|
|
'city', |
|
|
|
|
'last_update', |
|
|
|
|
'country', |
|
|
|
|
'address_list' |
|
|
|
|
] |
|
|
|
|
|
|
|
|
|
// City table
|
|
|
|
|
cityColumns.forEach((colTitle) => { |
|
|
|
|
cy.get(".nc-erd-vue-flow-single-table") |
|
|
|
|
.find(`.nc-erd-table-node-city`) |
|
|
|
|
.find(`.nc-erd-table-node-city-column-${colTitle}`) |
|
|
|
|
.should("exist"); |
|
|
|
|
if(dbType === "xcdb") { |
|
|
|
|
cy.get('.nc-erd-vue-flow-single-table').find(`.nc-erd-table-node-${projectId}city`).find(`.nc-erd-table-node-${projectId}city-column-${colTitle}`).should('exist'); |
|
|
|
|
} else { |
|
|
|
|
cy.get('.nc-erd-vue-flow-single-table').find(`.nc-erd-table-node-city`).find(`.nc-erd-table-node-city-column-${colTitle}`).should('exist'); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
it("Verify table ERD view of country showAllColumn disabled", () => { |
|
|
|
|
cy.get(".nc-erd-vue-flow-single-table").within(() => { |
|
|
|
|
cy.get(".nc-erd-context-menu") |
|
|
|
|
.get(".nc-erd-showColumns-checkbox") |
|
|
|
|
.click(); |
|
|
|
|
cy.get(".nc-erd-showPkAndFk-checkbox-disabled").should("exist"); |
|
|
|
|
cy.get(".nc-erd-showPkAndFk-checkbox-unchecked").should("exist"); |
|
|
|
|
|
|
|
|
|
const countryColumns = ["city_list"]; |
|
|
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
it('Verify table ERD view of country showAllColumn disabled', () => { |
|
|
|
|
cy.get('.nc-erd-vue-flow-single-table').within(() => { |
|
|
|
|
cy.get('.nc-erd-context-menu').get('.nc-erd-showColumns-checkbox').click(); |
|
|
|
|
cy.get('.nc-erd-showPkAndFk-checkbox-disabled').should('exist'); |
|
|
|
|
cy.get('.nc-erd-showPkAndFk-checkbox-unchecked').should('exist'); |
|
|
|
|
|
|
|
|
|
const countryColumns = [ |
|
|
|
|
'city_list' |
|
|
|
|
] |
|
|
|
|
|
|
|
|
|
// Country table
|
|
|
|
|
countryColumns.forEach((colTitle) => { |
|
|
|
|
cy.get(`.nc-erd-table-node-country`) |
|
|
|
|
.find(`.nc-erd-table-node-country-column-${colTitle}`) |
|
|
|
|
.should("exist"); |
|
|
|
|
if(dbType === "xcdb") { |
|
|
|
|
cy.get(`.nc-erd-table-node-${projectId}country`).find(`.nc-erd-table-node-${projectId}country-column-${colTitle}`).should('exist'); |
|
|
|
|
} else { |
|
|
|
|
cy.get(`.nc-erd-table-node-country`).find(`.nc-erd-table-node-country-column-${colTitle}`).should('exist'); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
const cityColumns = ["country", "address_list"]; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const cityColumns = [ |
|
|
|
|
'country', |
|
|
|
|
'address_list' |
|
|
|
|
] |
|
|
|
|
|
|
|
|
|
// City table
|
|
|
|
|
cityColumns.forEach((colTitle) => { |
|
|
|
|
cy.get(`.nc-erd-table-node-city`) |
|
|
|
|
.find(`.nc-erd-table-node-city-column-${colTitle}`) |
|
|
|
|
.should("exist"); |
|
|
|
|
if(dbType === "xcdb") { |
|
|
|
|
cy.get(`.nc-erd-table-node-${projectId}city`).find(`.nc-erd-table-node-${projectId}city-column-${colTitle}`).should('exist'); |
|
|
|
|
} else { |
|
|
|
|
cy.get(`.nc-erd-table-node-city`).find(`.nc-erd-table-node-city-column-${colTitle}`).should('exist'); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
cy.get(".nc-erd-context-menu") |
|
|
|
|
.get(".nc-erd-showColumns-checkbox") |
|
|
|
|
.click(); |
|
|
|
|
}); |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
it("Verify table ERD view of country show PK AND FK disabled", () => { |
|
|
|
|
cy.get(".nc-erd-vue-flow-single-table").within(() => { |
|
|
|
|
cy.get(".nc-erd-context-menu") |
|
|
|
|
.get(".nc-erd-showPkAndFk-checkbox") |
|
|
|
|
.click(); |
|
|
|
|
cy.get('.nc-erd-context-menu').get('.nc-erd-showColumns-checkbox').click(); |
|
|
|
|
}) |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
const countryColumns = ["country", "last_update", "city_list"]; |
|
|
|
|
it('Verify table ERD view of country show PK AND FK disabled', () => { |
|
|
|
|
cy.get('.nc-erd-vue-flow-single-table').within(() => { |
|
|
|
|
cy.get('.nc-erd-context-menu').get('.nc-erd-showPkAndFk-checkbox').click(); |
|
|
|
|
|
|
|
|
|
const countryColumns = [ |
|
|
|
|
'country', |
|
|
|
|
'last_update', |
|
|
|
|
'city_list' |
|
|
|
|
] |
|
|
|
|
|
|
|
|
|
// Country table
|
|
|
|
|
countryColumns.forEach((colTitle) => { |
|
|
|
|
cy.get(`.nc-erd-table-node-country`) |
|
|
|
|
.find(`.nc-erd-table-node-country-column-${colTitle}`) |
|
|
|
|
.should("exist"); |
|
|
|
|
if(dbType === "xcdb") { |
|
|
|
|
cy.get(`.nc-erd-table-node-${projectId}country`).find(`.nc-erd-table-node-${projectId}country-column-${colTitle}`).should('exist'); |
|
|
|
|
} else { |
|
|
|
|
cy.get(`.nc-erd-table-node-country`).find(`.nc-erd-table-node-country-column-${colTitle}`).should('exist'); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
const cityColumns = ["city", "last_update", "country", "address_list"]; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const cityColumns = [ |
|
|
|
|
'city', |
|
|
|
|
'last_update', |
|
|
|
|
'country', |
|
|
|
|
'address_list' |
|
|
|
|
] |
|
|
|
|
|
|
|
|
|
// City table
|
|
|
|
|
cityColumns.forEach((colTitle) => { |
|
|
|
|
cy.get(`.nc-erd-table-node-city`) |
|
|
|
|
.find(`.nc-erd-table-node-city-column-${colTitle}`) |
|
|
|
|
.should("exist"); |
|
|
|
|
if(dbType === "xcdb") { |
|
|
|
|
cy.get(`.nc-erd-table-node-${projectId}city`).find(`.nc-erd-table-node-${projectId}city-column-${colTitle}`).should('exist'); |
|
|
|
|
} else { |
|
|
|
|
cy.get(`.nc-erd-table-node-city`).find(`.nc-erd-table-node-city-column-${colTitle}`).should('exist'); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
cy.get(".nc-erd-context-menu") |
|
|
|
|
.get(".nc-erd-showPkAndFk-checkbox") |
|
|
|
|
.click(); |
|
|
|
|
}); |
|
|
|
|
cy.getActiveModal().find(".nc-modal-close").click({ force: true }); |
|
|
|
|
}); |
|
|
|
|
cy.get('.nc-erd-context-menu').get('.nc-erd-showPkAndFk-checkbox').click(); |
|
|
|
|
|
|
|
|
|
}) |
|
|
|
|
cy.getActiveModal().find('.nc-modal-close').click({ force: true }); |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
it("create column and check if the change is in the schema", () => { |
|
|
|
|
mainPage.addColumn("test_column", "country"); |
|
|
|
|
it('create column and check if the change is in the schema', () => { |
|
|
|
|
mainPage.addColumn('test_column', 'country') |
|
|
|
|
|
|
|
|
|
// table view
|
|
|
|
|
mainPage.openTableErdView(); |
|
|
|
|
cy.get(".nc-erd-vue-flow-single-table").within(() => { |
|
|
|
|
cy.get(".nc-erd-table-node-country") |
|
|
|
|
.find(".nc-erd-table-node-country-column-test_column") |
|
|
|
|
.should("exist"); |
|
|
|
|
}); |
|
|
|
|
cy.getActiveModal().find(".nc-modal-close").click({ force: true }); |
|
|
|
|
cy.get('.nc-erd-vue-flow-single-table').within(() => { |
|
|
|
|
if(dbType === "xcdb") { |
|
|
|
|
cy.get(`.nc-erd-table-node-${projectId}country`).find(`.nc-erd-table-node-${projectId}country-column-test_column`).should('exist'); |
|
|
|
|
} else { |
|
|
|
|
cy.get('.nc-erd-table-node-country').find('.nc-erd-table-node-country-column-test_column').should('exist'); |
|
|
|
|
} |
|
|
|
|
}) |
|
|
|
|
cy.getActiveModal().find('.nc-modal-close').click({ force: true }); |
|
|
|
|
|
|
|
|
|
// All table view
|
|
|
|
|
mainPage.openErdTab(); |
|
|
|
|
cy.get(".nc-erd-vue-flow").within(() => { |
|
|
|
|
cy.get(".nc-erd-table-node-country") |
|
|
|
|
.find(".nc-erd-table-node-country-column-test_column") |
|
|
|
|
.should("exist"); |
|
|
|
|
}); |
|
|
|
|
cy.get('.nc-erd-vue-flow').within(() => { |
|
|
|
|
if(dbType === "xcdb") { |
|
|
|
|
cy.get(`.nc-erd-table-node-${projectId}country`).find(`.nc-erd-table-node-${projectId}country-column-test_column`).should('exist'); |
|
|
|
|
} else { |
|
|
|
|
cy.get('.nc-erd-table-node-country').find('.nc-erd-table-node-country-column-test_column').should('exist'); |
|
|
|
|
} |
|
|
|
|
}) |
|
|
|
|
mainPage.closeMetaTab(); |
|
|
|
|
|
|
|
|
|
mainPage.deleteColumn("test_column"); |
|
|
|
|
|
|
|
|
|
mainPage.deleteColumn('test_column') |
|
|
|
|
|
|
|
|
|
// table view
|
|
|
|
|
mainPage.openTableErdView(); |
|
|
|
|
cy.get(".nc-erd-vue-flow-single-table").within(() => { |
|
|
|
|
cy.get(".nc-erd-table-node-country") |
|
|
|
|
.find(".nc-erd-table-node-country-column-test_column") |
|
|
|
|
.should("not.exist"); |
|
|
|
|
}); |
|
|
|
|
cy.getActiveModal().find(".nc-modal-close").click({ force: true }); |
|
|
|
|
cy.get('.nc-erd-vue-flow-single-table').within(() => { |
|
|
|
|
if(dbType === "xcdb") { |
|
|
|
|
cy.get(`.nc-erd-table-node-${projectId}country`).find(`.nc-erd-table-node-${projectId}country-column-test_column`).should('not.exist'); |
|
|
|
|
} else { |
|
|
|
|
cy.get('.nc-erd-table-node-country').find('.nc-erd-table-node-country-column-test_column').should('not.exist'); |
|
|
|
|
} |
|
|
|
|
}) |
|
|
|
|
cy.getActiveModal().find('.nc-modal-close').click({ force: true }); |
|
|
|
|
|
|
|
|
|
// All table view
|
|
|
|
|
mainPage.openErdTab(); |
|
|
|
|
cy.get(".nc-erd-vue-flow").within(() => { |
|
|
|
|
cy.get(".nc-erd-table-node-country") |
|
|
|
|
.find(".nc-erd-table-node-country-column-test_column") |
|
|
|
|
.should("not.exist"); |
|
|
|
|
}); |
|
|
|
|
cy.get('.nc-erd-vue-flow').within(() => { |
|
|
|
|
if(dbType === "xcdb") { |
|
|
|
|
cy.get(`.nc-erd-table-node-${projectId}country`).find(`.nc-erd-table-node-${projectId}country-column-test_column`).should('not.exist'); |
|
|
|
|
} else { |
|
|
|
|
cy.get('.nc-erd-table-node-country').find('.nc-erd-table-node-country-column-test_column').should('not.exist'); |
|
|
|
|
} |
|
|
|
|
}) |
|
|
|
|
mainPage.closeMetaTab(); |
|
|
|
|
}); |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
it("Create table should reflected in ERD", () => { |
|
|
|
|
cy.createTable("new"); |
|
|
|
|
it('Create table should reflected in ERD', () => { |
|
|
|
|
cy.createTable('new') |
|
|
|
|
|
|
|
|
|
mainPage.openErdTab(); |
|
|
|
|
cy.get(".nc-erd-vue-flow").within(() => { |
|
|
|
|
cy.get(".nc-erd-table-node-new").should("exist"); |
|
|
|
|
}); |
|
|
|
|
cy.get('.nc-erd-vue-flow').within(() => { |
|
|
|
|
if(dbType === "xcdb") { |
|
|
|
|
cy.get(`.nc-erd-table-node-${projectId}new`).should('exist'); |
|
|
|
|
} else { |
|
|
|
|
cy.get('.nc-erd-table-node-new').should('exist'); |
|
|
|
|
} |
|
|
|
|
}) |
|
|
|
|
mainPage.closeMetaTab(); |
|
|
|
|
|
|
|
|
|
cy.deleteTable("new"); |
|
|
|
|
|
|
|
|
|
cy.deleteTable('new') |
|
|
|
|
|
|
|
|
|
mainPage.openErdTab(); |
|
|
|
|
cy.get(".nc-erd-vue-flow").within(() => { |
|
|
|
|
cy.get(".nc-erd-table-node-new").should("not.exist"); |
|
|
|
|
}); |
|
|
|
|
cy.get('.nc-erd-vue-flow').within(() => { |
|
|
|
|
if(dbType === "xcdb") { |
|
|
|
|
cy.get(`.nc-erd-table-node-${projectId}new`).should('not.exist'); |
|
|
|
|
} else { |
|
|
|
|
cy.get('.nc-erd-table-node-new').should('not.exist'); |
|
|
|
|
} |
|
|
|
|
}) |
|
|
|
|
mainPage.closeMetaTab(); |
|
|
|
|
}); |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
it(`Disable MM setting Open Table ERD and check easter egg should not work`, () => { |
|
|
|
|
mainPage.toggleShowMMSetting(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mainPage.openErdTab(); |
|
|
|
|
cy.get(".nc-erd-vue-flow").within(() => { |
|
|
|
|
cy.get(".nc-erd-context-menu") |
|
|
|
|
.find(".nc-erd-showColumns-label") |
|
|
|
|
.dblclick(); |
|
|
|
|
cy.get(".nc-erd-context-menu") |
|
|
|
|
.find(".ant-checkbox") |
|
|
|
|
.should("have.length", 3); |
|
|
|
|
}); |
|
|
|
|
cy.get('.nc-erd-vue-flow').within(() => { |
|
|
|
|
cy.get('.nc-erd-context-menu').find('.nc-erd-showColumns-label').dblclick(); |
|
|
|
|
cy.get('.nc-erd-context-menu').find('.ant-checkbox').should('have.length', 3); |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
mainPage.closeMetaTab(); |
|
|
|
|
}); |
|
|
|
@ -470,4 +579,4 @@ export const genTest = (apiType, dbType) => {
|
|
|
|
|
* You should have received a copy of the GNU Affero General Public License |
|
|
|
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
|
* |
|
|
|
|
*/ |
|
|
|
|
*/ |