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' ;
@@ -106,29 +107,31 @@ const section: XBlock = {
106107const onEditSubectionSubmit = jest . fn ( ) ;
107108
108109const renderComponent = ( props ?: object , entry = '/course/:courseId' ) => render (
109- < SubsectionCard
110- section = { section }
111- subsection = { subsection }
112- index = { 1 }
113- isSelfPaced = { false }
114- getPossibleMoves = { jest . fn ( ) }
115- onOrderChange = { jest . fn ( ) }
116- onOpenPublishModal = { jest . fn ( ) }
117- onOpenDeleteModal = { jest . fn ( ) }
118- onOpenUnlinkModal = { jest . fn ( ) }
119- onNewUnitSubmit = { jest . fn ( ) }
120- onAddUnitFromLibrary = { handleOnAddUnitFromLibrary }
121- isCustomRelativeDatesActive = { false }
122- onEditSubmit = { onEditSubectionSubmit }
123- onDuplicateSubmit = { jest . fn ( ) }
124- onOpenConfigureModal = { jest . fn ( ) }
125- onPasteClick = { jest . fn ( ) }
126- resetScrollState = { jest . fn ( ) }
127- isSectionsExpanded = { false }
128- { ...props }
129- >
130- < span > children</ span >
131- </ SubsectionCard > ,
110+ < SidebarProvider >
111+ < SubsectionCard
112+ section = { section }
113+ subsection = { subsection }
114+ index = { 1 }
115+ isSelfPaced = { false }
116+ getPossibleMoves = { jest . fn ( ) }
117+ onOrderChange = { jest . fn ( ) }
118+ onOpenPublishModal = { jest . fn ( ) }
119+ onOpenDeleteModal = { jest . fn ( ) }
120+ onOpenUnlinkModal = { jest . fn ( ) }
121+ onNewUnitSubmit = { jest . fn ( ) }
122+ onAddUnitFromLibrary = { handleOnAddUnitFromLibrary }
123+ isCustomRelativeDatesActive = { false }
124+ onEditSubmit = { onEditSubectionSubmit }
125+ onDuplicateSubmit = { jest . fn ( ) }
126+ onOpenConfigureModal = { jest . fn ( ) }
127+ onPasteClick = { jest . fn ( ) }
128+ resetScrollState = { jest . fn ( ) }
129+ isSectionsExpanded = { false }
130+ { ...props }
131+ >
132+ < span > children</ span >
133+ </ SubsectionCard >
134+ </ SidebarProvider > ,
132135 {
133136 path : '/course/:courseId' ,
134137 params : { courseId : '5' } ,
@@ -148,6 +151,28 @@ describe('<SubsectionCard />', () => {
148151 renderComponent ( ) ;
149152
150153 expect ( screen . getByTestId ( 'subsection-card-header' ) ) . toBeInTheDocument ( ) ;
154+
155+ // The card is not selected
156+ const card = screen . getByTestId ( 'subsection-card' ) ;
157+ expect ( card ) . not . toHaveClass ( 'outline-card-selected' ) ;
158+ } ) ;
159+
160+ it ( 'render SubsectionCard component in selected state' , ( ) => {
161+ const { container } = renderComponent ( ) ;
162+
163+ expect ( screen . getByTestId ( 'subsection-card-header' ) ) . toBeInTheDocument ( ) ;
164+
165+ // The card is not selected
166+ const card = screen . getByTestId ( 'subsection-card' ) ;
167+ expect ( card ) . not . toHaveClass ( 'outline-card-selected' ) ;
168+
169+ // Get the <Row> that contains the card and click it to select the card
170+ const el = container . querySelector ( 'div.row.mx-0' ) as HTMLInputElement ;
171+ expect ( el ) . not . toBeNull ( ) ;
172+ fireEvent . click ( el ! ) ;
173+
174+ // The card is selected
175+ expect ( card ) . toHaveClass ( 'outline-card-selected' ) ;
151176 } ) ;
152177
153178 it ( 'expands/collapses the card when the subsection button is clicked' , async ( ) => {
0 commit comments