export const defaultDbParams = { databaseType: 0, // MySQL hostAddress: "localhost", portNumber: "3306", username: "root", password: "password", databaseName: "sakila", }; // database // validation details // advSettings: left navigation bar (audit, metadata, auth, transient view modes) // editSchema: create table, add/update/delete column // editData: add/ update/ delete row, cell contents // editComment: add comment // shareView: right navigation bar (share options) export const roles = { owner: { name: "owner", credentials: { username: "user@nocodb.com", password: "Password123." }, validations: { advSettings: true, editSchema: true, editData: true, editComment: true, shareView: true, }, }, creator: { name: "creator", credentials: { username: "creator@nocodb.com", password: "Password123." }, validations: { advSettings: true, editSchema: true, editData: true, editComment: true, shareView: true, }, }, editor: { name: "editor", credentials: { username: "editor@nocodb.com", password: "Password123." }, validations: { advSettings: false, editSchema: false, editData: true, editComment: true, shareView: false, }, }, commenter: { name: "commenter", credentials: { username: "commenter@nocodb.com", password: "Password123." }, validations: { advSettings: false, editSchema: false, editData: false, editComment: true, shareView: false, }, }, viewer: { name: "viewer", credentials: { username: "viewer@nocodb.com", password: "Password123." }, validations: { advSettings: false, editSchema: false, editData: false, editComment: false, shareView: false, }, }, }; // default projects // export const staticProjects = { sampleREST: { basic: { dbType: "none", apiType: "REST", name: "sampleREST" }, config: {}, }, sampleGQL: { basic: { dbType: "none", apiType: "GQL", name: "sampleGQL" }, config: {}, }, externalREST: { basic: { dbType: "external", apiType: "REST", name: "externalREST" }, config: defaultDbParams, }, externalGQL: { basic: { dbType: "external", apiType: "GQL", name: "externalGQL" }, config: defaultDbParams, }, }; // return TRUE if test suite specified is activated from env-variables // export const isTestSuiteActive = (type, xcdb) => { const env = Cypress.env("testMode"); if (!xcdb) { switch (type) { case "rest": return env.includes("extREST") ? true : false; case "graphql": return env.includes("extGQL") ? true : false; } } else { switch (type) { case "rest": return env.includes("xcdbREST") ? true : false; case "graphql": return env.includes("xcdbGQL") ? true : false; } } }; // expecting different modes to be seperated by a . export const getPrimarySuite = () => { const env = Cypress.env("testMode").split("."); switch (env[0]) { case "extREST": return staticProjects.externalREST; case "extGQL": return staticProjects.externalGQL; case "xcdbREST": return staticProjects.sampleREST; case "xcdbGQL": return staticProjects.sampleGQL; } }; export const isSecondarySuite = (proj, xcdb) => { if (!isTestSuiteActive(proj, xcdb)) return false; const env = Cypress.env("testMode").split("."); switch (env[0]) { case "extREST": return proj == "rest" && !xcdb ? false : true; case "extGQL": return proj == "graphql" && !xcdb ? false : true; case "xcdbREST": return proj == "rest" && xcdb ? false : true; case "xcdbGQL": return proj == "graphql" && xcdb ? false : true; } }; let currentTestMode = ``; let xcdbProjectString = ``; export function setCurrentMode(proj, xcdb) { if (!xcdb) { if (proj == "rest") currentTestMode = "extREST"; else currentTestMode = "extGQL"; } else { if (proj == "rest") currentTestMode = "xcdbREST"; else currentTestMode = "xcdbGQL"; } } export function getCurrentMode() { return currentTestMode; } export function isXcdb() { if (currentTestMode === "xcdbREST" || currentTestMode === "xcdbGQL") return true; return false; } export function setProjectString(projStr) { xcdbProjectString = projStr; } export function getProjectString() { return xcdbProjectString; }