diff --git a/__tests__/components/NotificationList.test.jsx b/__tests__/components/NotificationList.test.jsx index 1990dfab8e..47ae953746 100644 --- a/__tests__/components/NotificationList.test.jsx +++ b/__tests__/components/NotificationList.test.jsx @@ -1,139 +1,107 @@ import React from 'react'; -import { mount } from 'enzyme'; -import { MemoryRouter } from 'react-router-dom'; -import { I18nProvider } from '@lingui/react'; +import { mountWithContexts } from '../enzymeHelpers'; import Notifications, { _Notifications } from '../../src/components/NotificationsList/Notifications.list'; describe('', () => { test('initially renders succesfully', () => { - mount( - - - {}} - /> - - + mountWithContexts( + {}} + onReadNotifications={() => {}} + onReadSuccess={() => {}} + onCreateError={() => {}} + onCreateSuccess={() => {}} + /> ); }); test('fetches notifications on mount', () => { const spy = jest.spyOn(_Notifications.prototype, 'readNotifications'); - mount( - - <_Notifications - match={{ path: '/organizations/:id/?tab=notifications', url: '/organizations/:id/?tab=notifications' }} - location={{ search: '', pathname: '/organizations/:id/?tab=notifications' }} - onReadError={jest.fn()} - onReadNotifications={jest.fn()} - onReadSuccess={jest.fn()} - onCreateError={jest.fn()} - onCreateSuccess={jest.fn()} - handleHttpError={() => {}} - /> - + mountWithContexts( + {}} + onReadNotifications={() => {}} + onReadSuccess={() => {}} + onCreateError={() => {}} + onCreateSuccess={() => {}} + /> ); expect(spy).toHaveBeenCalled(); }); test('toggle success calls post', () => { const spy = jest.spyOn(_Notifications.prototype, 'createSuccess'); - const wrapper = mount( - - <_Notifications - match={{ path: '/organizations/:id/?tab=notifications', url: '/organizations/:id/?tab=notifications' }} - location={{ search: '', pathname: '/organizations/:id/?tab=notifications' }} - onReadError={jest.fn()} - onReadNotifications={jest.fn()} - onReadSuccess={jest.fn()} - onCreateError={jest.fn()} - onCreateSuccess={jest.fn()} - handleHttpError={() => {}} - /> - + const wrapper = mountWithContexts( + {}} + onReadNotifications={() => {}} + onReadSuccess={() => {}} + onCreateError={() => {}} + onCreateSuccess={() => {}} + /> ).find('Notifications'); wrapper.instance().toggleNotification(1, true, 'success'); expect(spy).toHaveBeenCalledWith(1, true); }); test('post success makes request and updates state properly', async () => { - const createSuccess = jest.fn(); - const wrapper = mount( - - - {}} - /> - - + const onCreateSuccess = jest.fn(); + const wrapper = mountWithContexts( + <_Notifications + match={{ path: '/organizations/:id/?tab=notifications', url: '/organizations/:id/?tab=notifications', params: { id: 1 } }} + location={{ search: '', pathname: '/organizations/:id/?tab=notifications' }} + handleHttpError={() => {}} + onReadError={() => {}} + onReadNotifications={() => {}} + onReadSuccess={() => {}} + onCreateError={() => {}} + onCreateSuccess={onCreateSuccess} + /> ).find('Notifications'); wrapper.setState({ successTemplateIds: [44] }); await wrapper.instance().createSuccess(44, true); - expect(createSuccess).toHaveBeenCalledWith(1, { id: 44, disassociate: true }); + expect(onCreateSuccess).toHaveBeenCalledWith(1, { id: 44, disassociate: true }); expect(wrapper.state('successTemplateIds')).not.toContain(44); await wrapper.instance().createSuccess(44, false); - expect(createSuccess).toHaveBeenCalledWith(1, { id: 44 }); + expect(onCreateSuccess).toHaveBeenCalledWith(1, { id: 44 }); expect(wrapper.state('successTemplateIds')).toContain(44); }); test('toggle error calls post', () => { const spy = jest.spyOn(_Notifications.prototype, 'createError'); - const wrapper = mount( - - <_Notifications - match={{ path: '/organizations/:id/?tab=notifications', url: '/organizations/:id/?tab=notifications' }} - location={{ search: '', pathname: '/organizations/:id/?tab=notifications' }} - onReadError={jest.fn()} - onReadNotifications={jest.fn()} - onReadSuccess={jest.fn()} - onCreateError={jest.fn()} - onCreateSuccess={jest.fn()} - handleHttpError={() => {}} - /> - + const wrapper = mountWithContexts( + {}} + onReadNotifications={() => {}} + onReadSuccess={() => {}} + onCreateError={() => {}} + onCreateSuccess={() => {}} + /> ).find('Notifications'); wrapper.instance().toggleNotification(1, true, 'error'); expect(spy).toHaveBeenCalledWith(1, true); }); test('post error makes request and updates state properly', async () => { - const createError = jest.fn(); - const wrapper = mount( - - - {}} - /> - - + const onCreateError = jest.fn(); + const wrapper = mountWithContexts( + <_Notifications + match={{ path: '/organizations/:id/?tab=notifications', url: '/organizations/:id/?tab=notifications', params: { id: 1 } }} + location={{ search: '', pathname: '/organizations/:id/?tab=notifications' }} + handleHttpError={() => {}} + onReadError={() => {}} + onReadNotifications={() => {}} + onReadSuccess={() => {}} + onCreateError={onCreateError} + onCreateSuccess={() => {}} + /> ).find('Notifications'); wrapper.setState({ errorTemplateIds: [44] }); await wrapper.instance().createError(44, true); - expect(createError).toHaveBeenCalledWith(1, { id: 44, disassociate: true }); + expect(onCreateError).toHaveBeenCalledWith(1, { id: 44, disassociate: true }); expect(wrapper.state('errorTemplateIds')).not.toContain(44); await wrapper.instance().createError(44, false); - expect(createError).toHaveBeenCalledWith(1, { id: 44 }); + expect(onCreateError).toHaveBeenCalledWith(1, { id: 44 }); expect(wrapper.state('errorTemplateIds')).toContain(44); }); @@ -159,28 +127,24 @@ describe('', () => { ] } }); - const readError = jest.fn().mockResolvedValue({ + const onReadError = jest.fn().mockResolvedValue({ data: { results: [ { id: 2 } ] } }); - const wrapper = mount( - - - {}} - /> - - + const wrapper = mountWithContexts( + <_Notifications + match={{ path: '/organizations/:id/?tab=notifications', url: '/organizations/:id/?tab=notifications', params: { id: 1 } }} + location={{ search: '', pathname: '/organizations/:id/?tab=notifications' }} + handleHttpError={() => {}} + onReadError={onReadError} + onReadNotifications={onReadNotifications} + onReadSuccess={onReadSuccess} + onCreateError={() => {}} + onCreateSuccess={() => {}} + /> ).find('Notifications'); wrapper.instance().updateUrl = jest.fn(); await wrapper.instance().readNotifications(mockQueryParams); @@ -188,7 +152,7 @@ describe('', () => { expect(onReadSuccess).toHaveBeenCalledWith(1, { id__in: '1,2,3' }); - expect(readError).toHaveBeenCalledWith(1, { + expect(onReadError).toHaveBeenCalledWith(1, { id__in: '1,2,3' }); expect(wrapper.state('successTemplateIds')).toContain(1);