55import { XBlock } from '@src/data/types' ;
66import cardHeaderMessages from '../card-header/messages' ;
77import SubsectionCard from './SubsectionCard' ;
8+ import { SidebarProvider } from '../common/context/SidebarContext' ;
89
910let store ;
1011const containerKey = 'lct:org:lib:unit:1' ;
@@ -105,29 +106,31 @@ const section: XBlock = {
105106const onEditSubectionSubmit = jest . fn ( ) ;
106107
107108const renderComponent = ( props ?: object , entry = '/course/:courseId' ) => render (
108- < SubsectionCard
109- section = { section }
110- subsection = { subsection }
111- index = { 1 }
112- isSelfPaced = { false }
113- getPossibleMoves = { jest . fn ( ) }
114- onOrderChange = { jest . fn ( ) }
115- onOpenPublishModal = { jest . fn ( ) }
116- onOpenDeleteModal = { jest . fn ( ) }
117- onOpenUnlinkModal = { jest . fn ( ) }
118- onNewUnitSubmit = { jest . fn ( ) }
119- onAddUnitFromLibrary = { handleOnAddUnitFromLibrary }
120- isCustomRelativeDatesActive = { false }
121- onEditSubmit = { onEditSubectionSubmit }
122- onDuplicateSubmit = { jest . fn ( ) }
123- onOpenConfigureModal = { jest . fn ( ) }
124- onPasteClick = { jest . fn ( ) }
125- resetScrollState = { jest . fn ( ) }
126- isSectionsExpanded = { false }
127- { ...props }
128- >
129- < span > children</ span >
130- </ SubsectionCard > ,
109+ < SidebarProvider >
110+ < SubsectionCard
111+ section = { section }
112+ subsection = { subsection }
113+ index = { 1 }
114+ isSelfPaced = { false }
115+ getPossibleMoves = { jest . fn ( ) }
116+ onOrderChange = { jest . fn ( ) }
117+ onOpenPublishModal = { jest . fn ( ) }
118+ onOpenDeleteModal = { jest . fn ( ) }
119+ onOpenUnlinkModal = { jest . fn ( ) }
120+ onNewUnitSubmit = { jest . fn ( ) }
121+ onAddUnitFromLibrary = { handleOnAddUnitFromLibrary }
122+ isCustomRelativeDatesActive = { false }
123+ onEditSubmit = { onEditSubectionSubmit }
124+ onDuplicateSubmit = { jest . fn ( ) }
125+ onOpenConfigureModal = { jest . fn ( ) }
126+ onPasteClick = { jest . fn ( ) }
127+ resetScrollState = { jest . fn ( ) }
128+ isSectionsExpanded = { false }
129+ { ...props }
130+ >
131+ < span > children</ span >
132+ </ SubsectionCard >
133+ </ SidebarProvider > ,
131134 {
132135 path : '/course/:courseId' ,
133136 params : { courseId : '5' } ,
@@ -147,6 +150,28 @@ describe('<SubsectionCard />', () => {
147150 renderComponent ( ) ;
148151
149152 expect ( screen . getByTestId ( 'subsection-card-header' ) ) . toBeInTheDocument ( ) ;
153+
154+ // The card is not selected
155+ const card = screen . getByTestId ( 'subsection-card' ) ;
156+ expect ( card ) . not . toHaveClass ( 'outline-card-selected' ) ;
157+ } ) ;
158+
159+ it ( 'render SubsectionCard component in selected state' , ( ) => {
160+ const { container } = renderComponent ( ) ;
161+
162+ expect ( screen . getByTestId ( 'subsection-card-header' ) ) . toBeInTheDocument ( ) ;
163+
164+ // The card is not selected
165+ const card = screen . getByTestId ( 'subsection-card' ) ;
166+ expect ( card ) . not . toHaveClass ( 'outline-card-selected' ) ;
167+
168+ // Get the <Row> that contains the card and click it to select the card
169+ const el = container . querySelector ( 'div.row.mx-0' ) as HTMLInputElement ;
170+ expect ( el ) . not . toBeNull ( ) ;
171+ fireEvent . click ( el ! ) ;
172+
173+ // The card is selected
174+ expect ( card ) . toHaveClass ( 'outline-card-selected' ) ;
150175 } ) ;
151176
152177 it ( 'expands/collapses the card when the subsection button is clicked' , async ( ) => {
0 commit comments