from . import APIDoc, APIRouter, BaseController, CRUDCollectionMethod, \
CRUDEndpoint, Endpoint, EndpointDoc, ReadPermission, RESTController, \
UIRouter, allow_empty_body
-from ._crud import CRUDMeta, Form, FormField, FormTaskInfo, Icon, \
- MethodType, TableAction, Validator, VerticalContainer
+from ._crud import CRUDMeta, Form, FormField, FormTaskInfo, Icon, MethodType, \
+ TableAction, Validator, VerticalContainer
from ._version import APIVersion
logger = logging.getLogger("controllers.rgw")
});
describe('Cluster users table', () => {
+ const entityName = 'client.test';
+ const entity = 'mgr';
+ const caps = 'allow r';
it('should verify the table is not empty', () => {
users.checkForUsers();
});
it('should verify the keys are hidden', () => {
users.verifyKeysAreHidden();
});
+
+ it('should create a new user', () => {
+ users.navigateTo('create');
+ users.create(entityName, entity, caps);
+ users.existTableCell(entityName, true);
+ });
+
+ it('should edit a user', () => {
+ const newCaps = 'allow *';
+ users.edit(entityName, 'allow *');
+ users.existTableCell(entityName, true);
+ users.checkCaps(entityName, [`${entity}: ${newCaps}`]);
+ });
+
+ it('should delete a user', () => {
+ users.delete(entityName);
+ });
});
});
import { PageHelper } from '../page-helper.po';
const pages = {
- index: { url: '#/ceph-users', id: 'cd-crud-table' }
+ index: { url: '#/ceph-users', id: 'cd-crud-table' },
+ create: { url: '#/cluster/user/create', id: 'cd-crud-form' }
};
export class UsersPageHelper extends PageHelper {
expect(serviceInstances).not.contains(/^[a-z0-9]+$/i);
});
}
+
+ @PageHelper.restrictTo(pages.create.url)
+ create(entityName: string, entityType: string, caps: string) {
+ cy.get('#formly_2_string_user_entity_0').type(entityName);
+ cy.get('#formly_5_string_entity_0').type(entityType);
+ cy.get('#formly_5_string_cap_1').type(caps);
+ cy.get("[aria-label='Create User']").should('exist').click();
+ cy.get('cd-crud-table').should('exist');
+ }
+
+ edit(name: string, newCaps: string) {
+ this.navigateEdit(name);
+ cy.get('#formly_5_string_cap_1').clear().type(newCaps);
+ cy.get("[aria-label='Edit User']").should('exist').click();
+ cy.get('cd-crud-table').should('exist');
+ }
+
+ checkCaps(entityName: string, capabilities: string[]) {
+ this.getTableCell(this.columnIndex.entity, entityName)
+ .click()
+ .parent()
+ .find(`datatable-body-cell:nth-child(${this.columnIndex.capabilities}) .badge`)
+ .should(($ele) => {
+ const newCaps = $ele.toArray().map((v) => v.innerText);
+ for (const cap of capabilities) {
+ expect(newCaps).to.include(cap);
+ }
+ });
+ }
}