mirror of https://github.com/nocodb/nocodb
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
165 lines
5.0 KiB
165 lines
5.0 KiB
export const genTest = (apiType, dbType) => { |
|
describe(`${apiType.toUpperCase()} api - Super user test`, () => { |
|
before(() => { |
|
}); |
|
|
|
beforeEach(() => { |
|
cy.restoreLocalStorage(); |
|
}); |
|
|
|
afterEach(() => { |
|
cy.saveLocalStorage(); |
|
}); |
|
|
|
after(() => { |
|
}); |
|
|
|
it(`Open App store page and check slack app`, () => { |
|
cy.visit('/#/apps').then((win) => { |
|
cy.get('.nc-app-store-title').should('exist'); |
|
cy.get('.nc-app-store-card-Slack').should('exist'); |
|
|
|
// install slack app |
|
cy.get('.nc-app-store-card-Slack .install-btn').invoke( |
|
'attr', |
|
'style', |
|
'right: 10px' |
|
); |
|
|
|
cy.get( |
|
'.nc-app-store-card-Slack .install-btn .nc-app-store-card-install' |
|
).click(); |
|
|
|
cy.getActiveModal('.nc-modal-plugin-install') |
|
.find('[placeholder="Channel Name"]') |
|
.type('Test channel'); |
|
|
|
cy.getActiveModal('.nc-modal-plugin-install') |
|
.find('[placeholder="Webhook URL"]') |
|
.type('http://test.com'); |
|
|
|
cy.getActiveModal('.nc-modal-plugin-install') |
|
.find('button:contains("Save")') |
|
.click(); |
|
|
|
cy.toastWait('Successfully installed'); |
|
|
|
cy.get( |
|
'.nc-app-store-card-Slack .install-btn .nc-app-store-card-install' |
|
).should('not.exist'); |
|
|
|
// update slack app config |
|
cy.get('.nc-app-store-card-Slack .install-btn .nc-app-store-card-edit') |
|
.should('exist') |
|
.click(); |
|
cy.getActiveModal('.nc-modal-plugin-install') |
|
.should('exist') |
|
.find('[placeholder="Channel Name"]') |
|
.should('have.value', 'Test channel') |
|
.clear() |
|
.type('Test channel 2'); |
|
|
|
cy.getActiveModal('.nc-modal-plugin-install') |
|
.get('button:contains("Save")') |
|
.click(); |
|
|
|
cy.toastWait('Successfully installed'); |
|
|
|
// reset slack app |
|
cy.get('.nc-app-store-card-Slack .install-btn .nc-app-store-card-reset') |
|
.should('exist') |
|
.click(); |
|
|
|
cy.getActiveModal('.nc-modal-plugin-uninstall') |
|
.should('exist') |
|
.find('button:contains("Confirm")') |
|
.click(); |
|
|
|
cy.toastWait('Plugin uninstalled successfully'); |
|
}); |
|
}); |
|
|
|
it(`Open super user management page and add/delete user`, () => { |
|
// delay for avoiding error related to vue router change |
|
cy.wait(500); |
|
|
|
cy.visit('/#/account/users').then((win) => { |
|
cy.get('[data-cy="nc-super-user-list"]').should('exist') |
|
.find('tbody tr').then((rows) => { |
|
const initialUserCount = rows.length; |
|
|
|
cy.get('[data-cy=\'nc-super-user-invite\'') |
|
.click(); |
|
|
|
// additional wait to ensure the modal is fully loaded |
|
cy.getActiveModal('.nc-modal-invite-user').should('exist'); |
|
cy.getActiveModal('.nc-modal-invite-user') |
|
.find('input[placeholder="E-mail"]') |
|
.should('exist'); |
|
|
|
cy.getActiveModal('.nc-modal-invite-user') |
|
.find('input[placeholder="E-mail"]') |
|
.type('test@nocodb.com'); |
|
cy.getActiveModal('.nc-modal-invite-user') |
|
.find('.ant-select.nc-user-roles') |
|
.click(); |
|
|
|
cy.getActiveModal('.nc-modal-invite-user') |
|
.find('button.ant-btn-primary') |
|
.click(); |
|
|
|
cy.toastWait('Successfully added user'); |
|
|
|
|
|
cy.getActiveModal().find('[data-cy="nc-root-user-invite-modal-close"]').click(); |
|
|
|
|
|
cy.get('[data-cy="nc-super-user-list"]').should('exist') |
|
.find('tbody tr').should('have.length', initialUserCount +1) |
|
.last().find('[data-cy="nc-super-user-delete"]').click(); |
|
|
|
cy.getActiveModal().find('.ant-modal-confirm-btns .ant-btn-primary').click(); |
|
|
|
cy.toastWait('User deleted successfully'); |
|
|
|
|
|
cy.get('[data-cy="nc-super-user-list"]').should('exist') |
|
.find('tbody tr').should('have.length', initialUserCount); |
|
}); |
|
}); |
|
}); |
|
|
|
it('User management settings', () => { |
|
|
|
}); |
|
|
|
it(`Token management`, () => { |
|
// delay for avoiding error related to vue router change |
|
cy.wait(500); |
|
cy.visit('/#/account/tokens').then((win) => { |
|
|
|
cy.get('[data-cy="nc-token-list"]').should('exist').find(':contains("No Data")').should('exist'); |
|
cy.get('[data-cy="nc-token-create"]').click(); |
|
cy.get('[data-cy="nc-token-modal-description"]').type('Descriptqion'); |
|
cy.get('[data-cy="nc-token-modal-save"]').click(); |
|
cy.toastWait('Token generated successfully'); |
|
|
|
cy.get('[data-cy="nc-token-list"]').should('exist') |
|
.find('tbody tr').should('have.length', 1); |
|
|
|
cy.get('.nc-token-menu').click(); |
|
|
|
cy.getActiveMenu('.nc-dropdown-api-token-mgmt').find('.ant-dropdown-menu-item:contains("Remove")').click(); |
|
|
|
|
|
cy.getActiveModal().find('.ant-modal-confirm-btns .ant-btn-primary').click(); |
|
|
|
cy.toastWait('Token deleted successfully'); |
|
|
|
}); |
|
}); |
|
|
|
|
|
}); |
|
|
|
};
|
|
|