mirror of
https://github.com/ansible/awx.git
synced 2026-01-13 11:00:03 -03:30
* working: rename OrganizationTeamsList to PaginatedDataList * convert org notifications list fully to PaginatedDataList * update NotificationList tests * refactor org access to use PaginatedDataList * update tests for org access refactor; fix pagination & sorting * restore Add Role functionality to Org roles * fix displayed text when list of items is empty * preserve query params when navigating through pagination * fix bugs after RBAC rebase * fix lint errors, fix add org access button
109 lines
3.0 KiB
JavaScript
109 lines
3.0 KiB
JavaScript
import React from 'react';
|
|
import { mountWithContexts } from '../enzymeHelpers';
|
|
import NotificationListItem from '../../src/components/NotificationsList/NotificationListItem';
|
|
|
|
describe('<NotificationListItem canToggleNotifications />', () => {
|
|
let wrapper;
|
|
let toggleNotification;
|
|
|
|
beforeEach(() => {
|
|
toggleNotification = jest.fn();
|
|
});
|
|
|
|
afterEach(() => {
|
|
if (wrapper) {
|
|
wrapper.unmount();
|
|
wrapper = null;
|
|
}
|
|
jest.clearAllMocks();
|
|
});
|
|
|
|
test('initially renders succesfully', () => {
|
|
wrapper = mountWithContexts(
|
|
<NotificationListItem
|
|
notification={{
|
|
id: 9000,
|
|
name: 'Foo',
|
|
notification_type: 'slack',
|
|
}}
|
|
toggleNotification={toggleNotification}
|
|
detailUrl="/foo"
|
|
canToggleNotifications
|
|
/>
|
|
);
|
|
expect(wrapper.find('NotificationListItem')).toMatchSnapshot();
|
|
});
|
|
|
|
test('handles success click when toggle is on', () => {
|
|
wrapper = mountWithContexts(
|
|
<NotificationListItem
|
|
notification={{
|
|
id: 9000,
|
|
name: 'Foo',
|
|
notification_type: 'slack',
|
|
}}
|
|
successTurnedOn
|
|
toggleNotification={toggleNotification}
|
|
detailUrl="/foo"
|
|
canToggleNotifications
|
|
/>
|
|
);
|
|
wrapper.find('Switch').first().find('input').simulate('change');
|
|
expect(toggleNotification).toHaveBeenCalledWith(9000, true, 'success');
|
|
});
|
|
|
|
test('handles success click when toggle is off', () => {
|
|
wrapper = mountWithContexts(
|
|
<NotificationListItem
|
|
notification={{
|
|
id: 9000,
|
|
name: 'Foo',
|
|
notification_type: 'slack',
|
|
}}
|
|
successTurnedOn={false}
|
|
toggleNotification={toggleNotification}
|
|
detailUrl="/foo"
|
|
canToggleNotifications
|
|
/>
|
|
);
|
|
wrapper.find('Switch').first().find('input').simulate('change');
|
|
expect(toggleNotification).toHaveBeenCalledWith(9000, false, 'success');
|
|
});
|
|
|
|
test('handles error click when toggle is on', () => {
|
|
wrapper = mountWithContexts(
|
|
<NotificationListItem
|
|
notification={{
|
|
id: 9000,
|
|
name: 'Foo',
|
|
notification_type: 'slack',
|
|
}}
|
|
errorTurnedOn
|
|
toggleNotification={toggleNotification}
|
|
detailUrl="/foo"
|
|
canToggleNotifications
|
|
/>
|
|
);
|
|
wrapper.find('Switch').at(1).find('input').simulate('change');
|
|
expect(toggleNotification).toHaveBeenCalledWith(9000, true, 'error');
|
|
});
|
|
|
|
test('handles error click when toggle is off', () => {
|
|
wrapper = mountWithContexts(
|
|
<NotificationListItem
|
|
notification={{
|
|
id: 9000,
|
|
name: 'Foo',
|
|
notification_type: 'slack',
|
|
}}
|
|
errorTurnedOn={false}
|
|
toggleNotification={toggleNotification}
|
|
detailUrl="/foo"
|
|
canToggleNotifications
|
|
/>
|
|
);
|
|
wrapper.find('Switch').at(1).find('input').simulate('change');
|
|
expect(toggleNotification).toHaveBeenCalledWith(9000, false, 'error');
|
|
});
|
|
});
|