11import React from 'react' ;
22import { ThemeProvider } from '@mui/material/styles' ;
3+ import { AdapterLuxon } from '@mui/x-date-pickers/AdapterLuxon' ;
4+ import { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider' ;
35import { render } from '@testing-library/react' ;
46import userEvent from '@testing-library/user-event' ;
7+ import { SnackbarProvider } from 'notistack' ;
58import TestRouter from '__tests__/util/TestRouter' ;
69import { GqlMockedProvider } from '__tests__/util/graphqlMocking' ;
710import { AppealsWrapper } from 'pages/accountLists/[accountListId]/tools/appeals/AppealsWrapper' ;
@@ -24,9 +27,10 @@ const router = {
2427 query : { accountListId } ,
2528 isReady : true ,
2629} ;
30+ const contactUrl = `/accountLists/${ accountListId } /tools/appeals/${ appealId } /${ defaultContact . id } ` ;
2731
2832const getContactUrl = jest . fn ( ) . mockReturnValue ( {
29- contactUrl : `/contacts/ ${ defaultContact . id } ` ,
33+ contactUrl,
3034} ) ;
3135const contactDetailsOpen = true ;
3236const toggleSelectionById = jest . fn ( ) ;
@@ -43,29 +47,33 @@ const Components = ({
4347 excludedContacts = [ ] ,
4448} : ComponentsProps ) => (
4549 < TestRouter router = { router } >
46- < GqlMockedProvider >
47- < ThemeProvider theme = { theme } >
48- < AppealsWrapper >
49- < AppealsContext . Provider
50- value = {
51- {
52- appealId,
53- getContactUrl,
54- isRowChecked,
55- contactDetailsOpen,
56- toggleSelectionById,
57- } as unknown as AppealsType
58- }
59- >
60- < ContactRow
61- contact = { contact }
62- appealStatus = { appealStatus }
63- excludedContacts = { excludedContacts }
64- />
65- </ AppealsContext . Provider >
66- </ AppealsWrapper >
67- </ ThemeProvider >
68- </ GqlMockedProvider >
50+ < LocalizationProvider dateAdapter = { AdapterLuxon } >
51+ < SnackbarProvider >
52+ < GqlMockedProvider >
53+ < ThemeProvider theme = { theme } >
54+ < AppealsWrapper >
55+ < AppealsContext . Provider
56+ value = {
57+ {
58+ appealId,
59+ getContactUrl,
60+ isRowChecked,
61+ contactDetailsOpen,
62+ toggleSelectionById,
63+ } as unknown as AppealsType
64+ }
65+ >
66+ < ContactRow
67+ contact = { contact }
68+ appealStatus = { appealStatus }
69+ excludedContacts = { excludedContacts }
70+ />
71+ </ AppealsContext . Provider >
72+ </ AppealsWrapper >
73+ </ ThemeProvider >
74+ </ GqlMockedProvider >
75+ </ SnackbarProvider >
76+ </ LocalizationProvider >
6977 </ TestRouter >
7078) ;
7179
@@ -92,7 +100,17 @@ describe('ContactsRow', () => {
92100
93101 const contact = getByTestId ( 'rowButton' ) ;
94102 expect ( contact ) . toBeInTheDocument ( ) ;
95- expect ( contact ) . toHaveAttribute ( 'href' , `/contacts/${ defaultContact . id } ` ) ;
103+ expect ( contact ) . toHaveAttribute ( 'href' , contactUrl ) ;
104+ } ) ;
105+
106+ it ( 'should open commitment modal' , async ( ) => {
107+ const { getByTestId, findByRole } = render ( < Components /> ) ;
108+
109+ const addCommitment = getByTestId ( 'AddIcon' ) ;
110+ userEvent . click ( addCommitment ) ;
111+ expect (
112+ await findByRole ( 'heading' , { name : 'Add Commitment' } ) ,
113+ ) . toBeInTheDocument ( ) ;
96114 } ) ;
97115
98116 describe ( 'Contact Row by status type' , ( ) => {
0 commit comments