mirror of https://github.com/nocodb/nocodb
7 changed files with 227 additions and 87 deletions
@ -1,10 +1,11 @@ |
|||||||
{ |
{ |
||||||
"baseUrl": "http://localhost:3000", |
"baseUrl": "http://localhost:3000/", |
||||||
"defaultCommandTimeout": 13000, |
"defaultCommandTimeout": 13000, |
||||||
"pageLoadTimeout": 600000, |
"pageLoadTimeout": 600000, |
||||||
"viewportWidth": 1980, |
"viewportWidth": 1980, |
||||||
"viewportHeight": 1000, |
"viewportHeight": 1000, |
||||||
"video": false, |
"video": false, |
||||||
"retries": 2, |
"retries": 2, |
||||||
"screenshotOnRunFailure": false |
"screenshotOnRunFailure": false, |
||||||
|
"numTestsKeptInMemory": 5 |
||||||
} |
} |
||||||
|
@ -0,0 +1,93 @@ |
|||||||
|
|
||||||
|
// Cypress test suite: project pre-configurations
|
||||||
|
//
|
||||||
|
|
||||||
|
import { loginPage, projectsPage } from "../../support/page_objects/navigation" |
||||||
|
import { mainPage } from "../../support/page_objects/mainpage" |
||||||
|
import { staticProjects, roles } from "../../support/page_objects/projectConstants" |
||||||
|
|
||||||
|
describe(`Project pre-configurations`, () => { |
||||||
|
|
||||||
|
it('Admin SignUp', ()=> { |
||||||
|
cy.waitForSpinners(); |
||||||
|
cy.signinOrSignup(roles.owner.credentials) |
||||||
|
cy.wait(2000) |
||||||
|
}) |
||||||
|
|
||||||
|
const createProject = (proj) => { |
||||||
|
it(`Create ${proj.basic.name} project`, () => { |
||||||
|
|
||||||
|
// click home button
|
||||||
|
mainPage.toolBarTopLeft(mainPage.HOME).click() |
||||||
|
// create requested project
|
||||||
|
projectsPage.createProject( proj.basic, proj.config ) |
||||||
|
})
|
||||||
|
} |
||||||
|
|
||||||
|
createProject(staticProjects.sampleREST) |
||||||
|
createProject(staticProjects.sampleGQL) |
||||||
|
createProject(staticProjects.externalREST) |
||||||
|
createProject(staticProjects.externalGQL) |
||||||
|
}) |
||||||
|
|
||||||
|
describe('Static user creations (different roles)', () => { |
||||||
|
|
||||||
|
beforeEach(()=> { |
||||||
|
loginPage.signIn(roles.owner.credentials) |
||||||
|
projectsPage.openProject(staticProjects.sampleREST.basic.name) |
||||||
|
}) |
||||||
|
|
||||||
|
const addUser = (user) => { |
||||||
|
it(`RoleType: ${user.name}`, () => { |
||||||
|
mainPage.addNewUserToProject(user.credentials, user.name) |
||||||
|
}) |
||||||
|
} |
||||||
|
|
||||||
|
addUser(roles.creator) |
||||||
|
addUser(roles.editor) |
||||||
|
addUser(roles.commenter) |
||||||
|
addUser(roles.viewer)
|
||||||
|
}) |
||||||
|
|
||||||
|
describe('Static users- add to other static projects', () => { |
||||||
|
|
||||||
|
const addUserToProject = (proj) => { |
||||||
|
it(`Add users to ${proj.basic.name}`, () => { |
||||||
|
loginPage.signIn(roles.owner.credentials) |
||||||
|
projectsPage.openProject(proj.basic.name) |
||||||
|
|
||||||
|
mainPage.addExistingUserToProject(roles.creator.credentials.username, roles.creator.name) |
||||||
|
mainPage.addExistingUserToProject(roles.editor.credentials.username, roles.editor.name) |
||||||
|
mainPage.addExistingUserToProject(roles.commenter.credentials.username, roles.commenter.name) |
||||||
|
mainPage.addExistingUserToProject(roles.viewer.credentials.username, roles.viewer.name) |
||||||
|
}) |
||||||
|
} |
||||||
|
|
||||||
|
addUserToProject(staticProjects.sampleGQL) |
||||||
|
addUserToProject(staticProjects.externalREST) |
||||||
|
addUserToProject(staticProjects.externalGQL) |
||||||
|
}) |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* @copyright Copyright (c) 2021, Xgene Cloud Ltd |
||||||
|
* |
||||||
|
* @author Raju Udava <sivadstala@gmail.com> |
||||||
|
* |
||||||
|
* @license GNU AGPL version 3 or any later version |
||||||
|
* |
||||||
|
* This program is free software: you can redistribute it and/or modify |
||||||
|
* it under the terms of the GNU Affero General Public License as |
||||||
|
* published by the Free Software Foundation, either version 3 of the |
||||||
|
* License, or (at your option) any later version. |
||||||
|
* |
||||||
|
* This program is distributed in the hope that it will be useful, |
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||||
|
* GNU Affero General Public License for more details. |
||||||
|
* |
||||||
|
* 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/>.
|
||||||
|
* |
||||||
|
*/ |
@ -1,9 +1,65 @@ |
|||||||
|
|
||||||
export const defaultDbParams = { |
export const defaultDbParams = { |
||||||
databaseType: 0, |
databaseType: 0, // MySQL
|
||||||
hostAddress: 'localhost', |
hostAddress: 'localhost', |
||||||
portNumber: '3306', |
portNumber: '3306', |
||||||
username: 'root', |
username: 'root', |
||||||
password: 'password', |
password: 'password', |
||||||
databaseName: 'sakila' |
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 |
||||||
|
} |
||||||
} |
} |
Loading…
Reference in new issue