Files
grafana/public/app/features/users/UsersTable.test.tsx
T

70 lines
1.9 KiB
TypeScript
Raw Normal View History

import { render, screen } from '@testing-library/react';
import userEvent from '@testing-library/user-event';
2022-04-22 14:33:13 +01:00
import React from 'react';
2018-10-03 09:43:10 +02:00
import { OrgUser } from 'app/types';
2022-04-22 14:33:13 +01:00
import { UsersTable, Props } from './UsersTable';
2018-10-03 09:43:10 +02:00
import { getMockUsers } from './__mocks__/userMocks';
jest.mock('app/core/core', () => ({
contextSrv: {
hasPermission: () => true,
hasPermissionInMetadata: () => true,
licensedAccessControlEnabled: () => false,
},
}));
2018-10-03 09:43:10 +02:00
const setup = (propOverrides?: object) => {
const props: Props = {
users: [] as OrgUser[],
onRoleChange: jest.fn(),
onRemoveUser: jest.fn(),
};
Object.assign(props, propOverrides);
render(<UsersTable {...props} />);
2018-10-03 09:43:10 +02:00
};
describe('Render', () => {
it('should render component', () => {
expect(() => setup()).not.toThrow();
2018-10-03 09:43:10 +02:00
});
it('should render users in table', () => {
const usersData = getMockUsers(5);
setup({ users: usersData });
2018-10-03 09:43:10 +02:00
usersData.forEach((user) => {
expect(screen.getByText(user.name)).toBeInTheDocument();
});
2018-10-03 09:43:10 +02:00
});
it('should render disabled flag when any of the Users are disabled', () => {
const usersData = getMockUsers(5);
usersData[0].isDisabled = true;
setup({ users: usersData });
expect(screen.getByText('Disabled')).toBeInTheDocument();
});
it('should render LDAP label', () => {
const usersData = getMockUsers(5);
usersData[0].authLabels = ['LDAP'];
setup({ users: usersData });
expect(screen.getByText(usersData[0].authLabels[0])).toBeInTheDocument();
});
2018-10-03 09:43:10 +02:00
});
2020-04-15 16:49:20 +02:00
describe('Remove modal', () => {
it('should render confirm check on delete', async () => {
const usersData = getMockUsers(3);
setup({ users: usersData });
const user = userEvent.setup();
await user.click(screen.getAllByRole('button', { name: /delete/i })[0]);
expect(screen.getByText(/are you sure/i)).toBeInTheDocument();
2020-04-15 16:49:20 +02:00
});
});