import m from 'mithril' ; import assert from 'assert' ; import { Drawer , IDrawerAttrs , Classes } from '@/' ; import { hasChildClass , hasClass } from '@test-utils' ; describe ( 'drawer' , ( ) => { const drawer = ( ) => document . body . querySelector ( `.${ Classes . DRAWER }` ) as HTMLElement ; afterEach ( ( ) => m . mount ( document . body , null ) ) ; it ( 'Renders correctly' , ( ) => { mount ( { class : Classes . POSITIVE , style : 'color: red' , position : 'right' } ) ; assert ( hasClass ( drawer ( ) , Classes . DRAWER ) ) ; assert ( hasClass ( drawer ( ) , `${ Classes . DRAWER }-right` ) ) ; } ) ; it ( 'Renders children' , ( ) => { mount ( { content : 'content' } ) ; assert ( hasChildClass ( drawer ( ) , Classes . DRAWER_CONTENT ) ) ; } ) ; it ( 'Sets correct position class' , ( ) => { const position = 'top' ; mount ( { position } ) ; assert ( hasClass ( drawer ( ) , `${ Classes . DRAWER }-${ position }` ) ) ; } ) ; function mount ( attrs ) { const component = { view : ( ) => m ( Drawer , { isOpen : true , transitionDuration : 0 , ... attrs } ) } ; m . mount ( document . body , component ) ; } } ) ;