123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- import {render, screen} from 'sentry-test/reactTestingLibrary';
- import Form from 'sentry/components/forms/form';
- import Subscriptions from 'sentry/views/settings/organizationDeveloperSettings/resourceSubscriptions';
- describe('Resource Subscriptions', function () {
- describe('initial no-access permissions', function () {
- it('renders disabled checkbox with no issue permission', function () {
- render(
- <Form>
- <Subscriptions
- events={[]}
- permissions={{
- Event: 'no-access',
- Team: 'no-access',
- Project: 'write',
- Release: 'admin',
- Organization: 'admin',
- Member: 'admin',
- }}
- onChange={jest.fn()}
- />
- </Form>
- );
- expect(screen.getAllByRole('checkbox')).toHaveLength(3);
- expect(screen.getByRole('checkbox', {name: 'issue'})).toBeDisabled();
- expect(screen.getByRole('checkbox', {name: 'error'})).toBeDisabled();
- expect(screen.getByRole('checkbox', {name: 'comment'})).toBeDisabled();
- });
- it('updates events state when new permissions props is passed', function () {
- render(
- <Form>
- <Subscriptions
- events={[]}
- permissions={{
- Event: 'read',
- Team: 'no-access',
- Project: 'write',
- Release: 'admin',
- Organization: 'admin',
- Member: 'admin',
- }}
- onChange={jest.fn()}
- />
- </Form>
- );
- expect(screen.getByRole('checkbox', {name: 'issue'})).toBeEnabled();
- expect(screen.getByRole('checkbox', {name: 'error'})).toBeDisabled();
- expect(screen.getByRole('checkbox', {name: 'comment'})).toBeEnabled();
- });
- });
- describe('initial access to permissions', function () {
- it('renders nondisabled checkbox with correct permissions', function () {
- render(
- <Form>
- <Subscriptions
- events={['issue']}
- permissions={{
- Event: 'read',
- Team: 'no-access',
- Project: 'write',
- Release: 'admin',
- Organization: 'admin',
- Member: 'admin',
- }}
- onChange={jest.fn()}
- />
- </Form>
- );
- expect(screen.getByRole('checkbox', {name: 'issue'})).toBeEnabled();
- expect(screen.getByRole('checkbox', {name: 'error'})).toBeDisabled();
- expect(screen.getByRole('checkbox', {name: 'comment'})).toBeEnabled();
- });
- it('revoked permissions also revokes access to corresponding subscriptions', function () {
- render(
- <Form>
- <Subscriptions
- events={['issue']}
- permissions={{
- Event: 'no-access',
- Team: 'no-access',
- Project: 'write',
- Release: 'admin',
- Organization: 'admin',
- Member: 'admin',
- }}
- onChange={jest.fn()}
- />
- </Form>
- );
- expect(screen.getByRole('checkbox', {name: 'issue'})).toBeDisabled();
- expect(screen.getByRole('checkbox', {name: 'error'})).toBeDisabled();
- expect(screen.getByRole('checkbox', {name: 'comment'})).toBeDisabled();
- });
- });
- });
|